convert_api 1.3.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +4 -2
- data/.github/workflows/publish.yml +21 -0
- data/.ruby-version +1 -1
- data/README.md +34 -10
- data/lib/convert_api/client.rb +10 -3
- data/lib/convert_api/configuration.rb +1 -0
- data/lib/convert_api/errors.rb +1 -1
- data/lib/convert_api/task.rb +15 -6
- data/lib/convert_api/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e87ee021afbce241b24e28e70245ec318a6c6ae799c1ff769cd6437a4065536f
|
4
|
+
data.tar.gz: b385c3030e308d7dde8d711f3b2f30d48303f5af6bc5208437b09ae329b50519
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0447ac667edc5df34913612ff81003dfbcdea39a345b1fc111ecfd28dd123651d0fa2218b4942258e4aecd32266438ae2768e593ceb5c0ff7573fbb4f389d26e
|
7
|
+
data.tar.gz: 57a409748204a607373d4b1d2a6db8b8d7ad68a02f4da5a6aab1bf023358e6d727972f29113c606d940686c854b3a261f2e690921a3345785c394f321364a32c
|
data/.github/workflows/main.yml
CHANGED
@@ -9,8 +9,9 @@ jobs:
|
|
9
9
|
- 2.0
|
10
10
|
- 2.6
|
11
11
|
- 2.7
|
12
|
-
- 3.
|
13
|
-
-
|
12
|
+
- 3.1
|
13
|
+
- 3.2
|
14
|
+
- 3.3
|
14
15
|
- jruby-9.1
|
15
16
|
- jruby-head
|
16
17
|
name: Ruby ${{ matrix.ruby-version }} sample
|
@@ -23,4 +24,5 @@ jobs:
|
|
23
24
|
- run: bundle install
|
24
25
|
- env:
|
25
26
|
CONVERT_API_SECRET: ${{ secrets.CONVERTAPI_SECRET }}
|
27
|
+
CONVERT_API_TOKEN: ${{ secrets.CONVERTAPI_TOKEN }}
|
26
28
|
run: bundle exec rake spec
|
@@ -0,0 +1,21 @@
|
|
1
|
+
name: Publish gem to rubygems
|
2
|
+
on:
|
3
|
+
release:
|
4
|
+
types: [published]
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
steps:
|
9
|
+
- uses: actions/checkout@v4
|
10
|
+
- uses: ruby/setup-ruby@v1
|
11
|
+
|
12
|
+
# setup .gem/credentials
|
13
|
+
- run: mkdir -p ~/.gem
|
14
|
+
- env:
|
15
|
+
RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
|
16
|
+
run: >-
|
17
|
+
echo -e "---\n:rubygems_api_key: ${RUBYGEMS_API_KEY}" > ~/.gem/credentials
|
18
|
+
- run: chmod 0600 ~/.gem/credentials
|
19
|
+
|
20
|
+
- run: gem build convert_api.gemspec --output=release.gem
|
21
|
+
- run: gem push release.gem
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
3.3.4
|
data/README.md
CHANGED
@@ -23,7 +23,7 @@ gem 'convert_api'
|
|
23
23
|
|
24
24
|
### Configuration
|
25
25
|
|
26
|
-
You can get your secret at https://www.convertapi.com/a
|
26
|
+
You can get your secret at https://www.convertapi.com/a/auth
|
27
27
|
|
28
28
|
```ruby
|
29
29
|
ConvertApi.configure do |config|
|
@@ -31,13 +31,22 @@ ConvertApi.configure do |config|
|
|
31
31
|
end
|
32
32
|
```
|
33
33
|
|
34
|
+
Or
|
35
|
+
|
36
|
+
You can get your token at https://www.convertapi.com/a/access-tokens
|
37
|
+
```ruby
|
38
|
+
ConvertApi.configure do |config|
|
39
|
+
config.token = 'your-token'
|
40
|
+
end
|
41
|
+
```
|
42
|
+
|
34
43
|
### File conversion
|
35
44
|
|
36
|
-
Example to convert file to PDF. All supported formats and options can be found
|
45
|
+
Example to convert file to PDF. All supported formats and options can be found
|
37
46
|
[here](https://www.convertapi.com/doc/supported-formats).
|
38
47
|
|
39
48
|
```ruby
|
40
|
-
result = ConvertApi.convert('pdf', File: '/path/to/my_file.docx')
|
49
|
+
result = ConvertApi.convert('pdf', { File: '/path/to/my_file.docx' })
|
41
50
|
|
42
51
|
# save to file
|
43
52
|
result.file.save('/path/to/save/file.pdf')
|
@@ -59,7 +68,7 @@ conversion_cost = result.conversion_cost
|
|
59
68
|
#### Convert file url
|
60
69
|
|
61
70
|
```ruby
|
62
|
-
result = ConvertApi.convert('pdf', File: 'https://website/my_file.docx')
|
71
|
+
result = ConvertApi.convert('pdf', { File: 'https://website/my_file.docx' })
|
63
72
|
```
|
64
73
|
|
65
74
|
#### Specifying from format
|
@@ -67,7 +76,7 @@ result = ConvertApi.convert('pdf', File: 'https://website/my_file.docx')
|
|
67
76
|
```ruby
|
68
77
|
result = ConvertApi.convert(
|
69
78
|
'pdf',
|
70
|
-
{
|
79
|
+
{File: /path/to/my_file'},
|
71
80
|
from_format: 'docx'
|
72
81
|
)
|
73
82
|
```
|
@@ -75,14 +84,14 @@ result = ConvertApi.convert(
|
|
75
84
|
#### Additional conversion parameters
|
76
85
|
|
77
86
|
ConvertAPI accepts extra conversion parameters depending on converted formats. All conversion
|
78
|
-
parameters and explanations can be found [here](https://www.convertapi.com).
|
87
|
+
parameters and explanations can be found [here](https://www.convertapi.com/doc/supported-formats).
|
79
88
|
|
80
89
|
```ruby
|
81
90
|
result = ConvertApi.convert(
|
82
91
|
'pdf',
|
83
|
-
File: /path/to/my_file.docx',
|
92
|
+
{File: /path/to/my_file.docx',
|
84
93
|
PageRange: '1-10',
|
85
|
-
PdfResolution: '150'
|
94
|
+
PdfResolution: '150'}
|
86
95
|
)
|
87
96
|
```
|
88
97
|
|
@@ -91,7 +100,7 @@ result = ConvertApi.convert(
|
|
91
100
|
You can access result file collection like this:
|
92
101
|
|
93
102
|
```ruby
|
94
|
-
result = ConvertApi.convert('pdf', File: 'https://website/my_file.docx')
|
103
|
+
result = ConvertApi.convert('pdf', { File: 'https://website/my_file.docx' })
|
95
104
|
|
96
105
|
puts result.files[0].url
|
97
106
|
puts result.files[0].size
|
@@ -104,9 +113,20 @@ You can always check your remaining seconds programmatically by fetching [user i
|
|
104
113
|
```ruby
|
105
114
|
user_info = ConvertApi.user
|
106
115
|
|
107
|
-
puts user_info['
|
116
|
+
puts user_info['ConversionsConsumed']
|
117
|
+
```
|
118
|
+
|
119
|
+
### Alternative domain
|
120
|
+
|
121
|
+
Set config `base_uri` attribute to use other service domains. Dedicated to the region [domain list](https://www.convertapi.com/doc/servers-location).
|
122
|
+
|
123
|
+
```ruby
|
124
|
+
ConvertApi.configure do |config|
|
125
|
+
config.base_uri = URI('https://eu-v2.convertapi.com/')
|
126
|
+
end
|
108
127
|
```
|
109
128
|
|
129
|
+
|
110
130
|
### More examples
|
111
131
|
|
112
132
|
Find more advanced examples in the [examples/](https://github.com/ConvertAPI/convertapi-ruby/tree/master/examples) folder.
|
@@ -116,6 +136,10 @@ Find more advanced examples in the [examples/](https://github.com/ConvertAPI/con
|
|
116
136
|
|
117
137
|
Run `CONVERT_API_SECRET=your_secret rake spec` to run the tests.
|
118
138
|
|
139
|
+
Or
|
140
|
+
|
141
|
+
Run `CONVERT_API_TOKEN=your_token rake spec` to run the tests.
|
142
|
+
|
119
143
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
120
144
|
|
121
145
|
## Contributing
|
data/lib/convert_api/client.rb
CHANGED
@@ -101,10 +101,10 @@ module ConvertApi
|
|
101
101
|
end
|
102
102
|
|
103
103
|
def request_uri(path, params = {})
|
104
|
-
raise(
|
104
|
+
raise(AuthenticationError, 'API secret or Token not configured') if authentication.nil?
|
105
105
|
|
106
|
-
|
107
|
-
query = URI.encode_www_form(
|
106
|
+
params_with_authentication = params.merge(authentication)
|
107
|
+
query = URI.encode_www_form(params_with_authentication)
|
108
108
|
|
109
109
|
base_uri.path + path + '?' + query
|
110
110
|
end
|
@@ -123,6 +123,13 @@ module ConvertApi
|
|
123
123
|
data
|
124
124
|
end
|
125
125
|
|
126
|
+
def authentication
|
127
|
+
return { Secret: config.api_secret } unless config.api_secret.nil?
|
128
|
+
return { Token: config.token } unless config.token.nil?
|
129
|
+
|
130
|
+
nil
|
131
|
+
end
|
132
|
+
|
126
133
|
def base_uri
|
127
134
|
config.base_uri
|
128
135
|
end
|
data/lib/convert_api/errors.rb
CHANGED
data/lib/convert_api/task.rb
CHANGED
@@ -15,10 +15,11 @@ module ConvertApi
|
|
15
15
|
|
16
16
|
from_format = @from_format || detect_format(params)
|
17
17
|
read_timeout = @conversion_timeout + config.conversion_timeout_delta if @conversion_timeout
|
18
|
-
converter = params
|
18
|
+
converter = detect_converter(params)
|
19
|
+
converter_path = converter ? "/converter/#{converter}" : ''
|
19
20
|
|
20
21
|
response = ConvertApi.client.post(
|
21
|
-
"convert/#{from_format}/to/#{@to_format}#{
|
22
|
+
"convert/#{from_format}/to/#{@to_format}#{converter_path}",
|
22
23
|
params,
|
23
24
|
read_timeout: read_timeout,
|
24
25
|
)
|
@@ -32,10 +33,10 @@ module ConvertApi
|
|
32
33
|
result = {}
|
33
34
|
|
34
35
|
symbolize_keys(params).each do |key, value|
|
35
|
-
case
|
36
|
-
when :File
|
37
|
-
result[
|
38
|
-
when :Files
|
36
|
+
case
|
37
|
+
when key != :StoreFile && key.to_s.end_with?('File')
|
38
|
+
result[key] = FileParam.build(value)
|
39
|
+
when key == :Files
|
39
40
|
result[:Files] = files_batch(value)
|
40
41
|
else
|
41
42
|
result[key] = value
|
@@ -69,6 +70,14 @@ module ConvertApi
|
|
69
70
|
FormatDetector.new(resource, @to_format).run
|
70
71
|
end
|
71
72
|
|
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
|
+
|
72
81
|
def config
|
73
82
|
ConvertApi.config
|
74
83
|
end
|
data/lib/convert_api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: convert_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomas Rutkauskas
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -63,6 +63,7 @@ extensions: []
|
|
63
63
|
extra_rdoc_files: []
|
64
64
|
files:
|
65
65
|
- ".github/workflows/main.yml"
|
66
|
+
- ".github/workflows/publish.yml"
|
66
67
|
- ".gitignore"
|
67
68
|
- ".rspec"
|
68
69
|
- ".ruby-version"
|
@@ -86,7 +87,7 @@ homepage: https://github.com/ConvertAPI/convertapi-ruby
|
|
86
87
|
licenses:
|
87
88
|
- MIT
|
88
89
|
metadata: {}
|
89
|
-
post_install_message:
|
90
|
+
post_install_message:
|
90
91
|
rdoc_options: []
|
91
92
|
require_paths:
|
92
93
|
- lib
|
@@ -101,8 +102,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
102
|
- !ruby/object:Gem::Version
|
102
103
|
version: '0'
|
103
104
|
requirements: []
|
104
|
-
rubygems_version: 3.
|
105
|
-
signing_key:
|
105
|
+
rubygems_version: 3.5.11
|
106
|
+
signing_key:
|
106
107
|
specification_version: 4
|
107
108
|
summary: ConvertAPI client library
|
108
109
|
test_files: []
|