Skip to content

Commit e613089

Browse files
Make converter param name case insensitive (#24)
1 parent d2bea1e commit e613089

File tree

2 files changed

+28
-9
lines changed

2 files changed

+28
-9
lines changed

lib/convert_api/task.rb

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@ def run
1515

1616
from_format = @from_format || detect_format(params)
1717
read_timeout = @conversion_timeout + config.conversion_timeout_delta if @conversion_timeout
18-
converter = params[:converter] ? "/converter/#{params[:converter]}" : ''
18+
converter = detect_converter(params)
19+
converter_path = converter ? "/converter/#{converter}" : ''
1920

2021
response = ConvertApi.client.post(
21-
"convert/#{from_format}/to/#{@to_format}#{converter}",
22+
"convert/#{from_format}/to/#{@to_format}#{converter_path}",
2223
params,
2324
read_timeout: read_timeout,
2425
)
@@ -69,6 +70,14 @@ def detect_format(params)
6970
FormatDetector.new(resource, @to_format).run
7071
end
7172

73+
def detect_converter(params)
74+
params.each do |key, value|
75+
return value if key.to_s.downcase == 'converter'
76+
end
77+
78+
nil
79+
end
80+
7281
def config
7382
ConvertApi.config
7483
end

spec/convert_api/task_spec.rb

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,27 @@
1-
RSpec.describe ConvertApi::Task do
1+
RSpec.describe ConvertApi::Task, '#run' do
2+
subject { task.run }
3+
24
let(:task) { described_class.new(from_format, to_format, params) }
35
let(:from_format) { 'txt' }
46
let(:to_format) { 'pdf' }
5-
let(:params) { { File: 'https://www.w3.org/TR/2003/REC-PNG-20031110/iso_8859-1.txt' } }
7+
let(:params) { { File: file } }
8+
let(:file) { 'https://www.w3.org/TR/2003/REC-PNG-20031110/iso_8859-1.txt' }
9+
let(:result) { double }
10+
11+
it 'executes task and returns result' do
12+
expect(ConvertApi.client).to(
13+
receive(:post).with('convert/txt/to/pdf', instance_of(Hash), instance_of(Hash)).and_return(result)
14+
)
615

7-
describe '#run' do
8-
subject { task.run }
16+
expect(subject).to be_instance_of(ConvertApi::Result)
17+
end
918

10-
let(:result) { double }
19+
context 'with converter' do
20+
let(:params) { { File: file, Converter: 'openoffice' } }
1121

12-
it 'executes task and returns result' do
22+
it 'adds converter to the path' do
1323
expect(ConvertApi.client).to(
14-
receive(:post).with('convert/txt/to/pdf', instance_of(Hash), instance_of(Hash)).and_return(result)
24+
receive(:post).with('convert/txt/to/pdf/converter/openoffice', instance_of(Hash), instance_of(Hash)).and_return(result)
1525
)
1626

1727
expect(subject).to be_instance_of(ConvertApi::Result)

0 commit comments

Comments
 (0)