cloudconvert 0.0.5 → 1.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 +5 -5
- data/LICENSE.txt +17 -18
- data/README.md +234 -39
- data/cloudconvert.gemspec +34 -22
- data/lib/cloudconvert.rb +33 -10
- data/lib/cloudconvert/base.rb +173 -0
- data/lib/cloudconvert/client.rb +107 -0
- data/lib/cloudconvert/collection.rb +15 -0
- data/lib/cloudconvert/entity.rb +21 -0
- data/lib/cloudconvert/error.rb +108 -0
- data/lib/cloudconvert/event.rb +14 -0
- data/lib/cloudconvert/file.rb +9 -0
- data/lib/cloudconvert/job.rb +18 -0
- data/lib/cloudconvert/middleware.rb +9 -0
- data/lib/cloudconvert/resource.rb +9 -0
- data/lib/cloudconvert/resources/jobs.rb +54 -0
- data/lib/cloudconvert/resources/tasks.rb +80 -0
- data/lib/cloudconvert/resources/users.rb +10 -0
- data/lib/cloudconvert/task.rb +43 -0
- data/lib/cloudconvert/user.rb +18 -0
- data/lib/cloudconvert/version.rb +2 -2
- data/lib/cloudconvert/webhook.rb +54 -0
- data/lib/cloudconvert/webhook/processor.rb +29 -0
- metadata +303 -24
- data/.gitignore +0 -21
- data/Gemfile +0 -7
- data/Rakefile +0 -1
- data/lib/cloudconvert/configuration.rb +0 -21
- data/lib/cloudconvert/conversion.rb +0 -105
@@ -0,0 +1,18 @@
|
|
1
|
+
module CloudConvert
|
2
|
+
class Job < Entity
|
3
|
+
# @return [String]
|
4
|
+
attr_reader :id, :tag
|
5
|
+
|
6
|
+
# @return [Symbol]
|
7
|
+
symbol_attr_reader :status
|
8
|
+
|
9
|
+
# @return [CloudConvert::Collection<CloudConvert::Task>]
|
10
|
+
collection_attr_reader :Task, :tasks
|
11
|
+
|
12
|
+
# @return [OpenStruct]
|
13
|
+
struct_attr_reader :links
|
14
|
+
|
15
|
+
# @return [Time]
|
16
|
+
time_attr_reader :created_at, :started_at, :ended_at
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module CloudConvert
|
2
|
+
module Resources
|
3
|
+
class Jobs < Resource
|
4
|
+
# @param params [Hash]
|
5
|
+
# @return [Collection<Job>]
|
6
|
+
def all(params = {})
|
7
|
+
Job.collection(client.get("/v2/jobs", params))
|
8
|
+
end
|
9
|
+
|
10
|
+
# @param id [String]
|
11
|
+
# @param params [Hash]
|
12
|
+
# @return [Job]
|
13
|
+
def find(id, params = {})
|
14
|
+
Job.result(client.get("/v2/jobs/#{id}", params))
|
15
|
+
end
|
16
|
+
|
17
|
+
# @param params [Hash]
|
18
|
+
# @return [Job]
|
19
|
+
def create(params)
|
20
|
+
schema = Schemacop::Schema.new do
|
21
|
+
type :hash, allow_obsolete_keys: true do
|
22
|
+
req :tasks, :array, min: 1 do
|
23
|
+
type :hash, allow_obsolete_keys: true do
|
24
|
+
req :operation, :string
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
schema.validate! params
|
31
|
+
|
32
|
+
payload = params.dup
|
33
|
+
|
34
|
+
payload[:tasks] = payload[:tasks].to_h do |task|
|
35
|
+
[task[:name], task.reject { |k| k == :name }]
|
36
|
+
end
|
37
|
+
|
38
|
+
Job.result(client.post("/v2/jobs", payload))
|
39
|
+
end
|
40
|
+
|
41
|
+
# @param id [String]
|
42
|
+
# @return [Job]
|
43
|
+
def wait(id)
|
44
|
+
Job.result(client.get("/v2/jobs/#{id}/wait", {}))
|
45
|
+
end
|
46
|
+
|
47
|
+
# @param id [String]
|
48
|
+
# @return [void]
|
49
|
+
def delete(id)
|
50
|
+
client.delete("/v2/jobs/#{id}")
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module CloudConvert
|
2
|
+
module Resources
|
3
|
+
class Tasks < Resource
|
4
|
+
# @param params [Hash]
|
5
|
+
# @return [Collection<Task>]
|
6
|
+
def all(params = {})
|
7
|
+
Task.collection(client.get("/v2/tasks", params))
|
8
|
+
end
|
9
|
+
|
10
|
+
# @param id [String]
|
11
|
+
# @param params [Hash]
|
12
|
+
# @return [Task]
|
13
|
+
def find(id, params = {})
|
14
|
+
Task.result(client.get("/v2/tasks/#{id}", params))
|
15
|
+
end
|
16
|
+
|
17
|
+
# @param operation [String]
|
18
|
+
# @param params [Hash]
|
19
|
+
# @return [Task]
|
20
|
+
def create(params = {})
|
21
|
+
schema = Schemacop::Schema.new do
|
22
|
+
type :hash, allow_obsolete_keys: true do
|
23
|
+
req :operation, :string
|
24
|
+
req :input, :string unless params[:operation].nil? || params[:operation].start_with?("import")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
schema.validate! params
|
29
|
+
|
30
|
+
Task.result(client.post("/v2/#{params[:operation]}", params))
|
31
|
+
end
|
32
|
+
|
33
|
+
# @param params [Hash]
|
34
|
+
# @return [Task]
|
35
|
+
def cancel(id)
|
36
|
+
Task.result(client.post("/v2/tasks/#{id}/cancel"))
|
37
|
+
end
|
38
|
+
|
39
|
+
# @param id [String]
|
40
|
+
# @return [void]
|
41
|
+
def delete(id)
|
42
|
+
client.delete("/v2/tasks/#{id}")
|
43
|
+
end
|
44
|
+
|
45
|
+
# @param params [Hash]
|
46
|
+
# @return [Task]
|
47
|
+
def retry(id)
|
48
|
+
Task.result(client.post("/v2/tasks/#{id}/retry"))
|
49
|
+
end
|
50
|
+
|
51
|
+
# @param id [String]
|
52
|
+
# @return [Task]
|
53
|
+
def wait(id)
|
54
|
+
Task.result(client.get("/v2/tasks/#{id}/wait"))
|
55
|
+
end
|
56
|
+
|
57
|
+
# @param file [File, String, IO] Either a String filename to a local file or an open IO object.
|
58
|
+
# @param task [Task] The "import/upload" Task to upload the file to.
|
59
|
+
# @return [void]
|
60
|
+
def upload(file, task)
|
61
|
+
unless task.operation == "import/upload"
|
62
|
+
raise ArgumentError.new("The task operation is not import/upload")
|
63
|
+
end
|
64
|
+
|
65
|
+
unless task.result && task.result.form && task.waiting?
|
66
|
+
raise ArgumentError.new("The task is not ready for uploading")
|
67
|
+
end
|
68
|
+
|
69
|
+
file = File.new(file) unless file.is_a? File
|
70
|
+
|
71
|
+
client.post(task.result.form.url, task.result.form.parameters.to_h.merge(file: file)) do |request|
|
72
|
+
request.headers.delete("Authorization")
|
73
|
+
request.headers["Content-Type"] = "multipart/form-data"
|
74
|
+
end
|
75
|
+
|
76
|
+
nil
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module CloudConvert
|
2
|
+
class Task < Entity
|
3
|
+
# @return [String]
|
4
|
+
attr_reader :id, :name, :operation, :message, :code,
|
5
|
+
:engine, :engine_version, :host_name, :storage,
|
6
|
+
:job_id, :copy_of_task_id, :retry_of_task_id
|
7
|
+
|
8
|
+
# @return [Symbol]
|
9
|
+
symbol_attr_reader :status
|
10
|
+
|
11
|
+
# @return [Integer]
|
12
|
+
attr_reader :percent, :priority
|
13
|
+
|
14
|
+
# @return [CloudConvert::Collection<CloudConvert::Task>]
|
15
|
+
collection_attr_reader :Task, :depends_on_tasks, :retries
|
16
|
+
|
17
|
+
# @return [OpenStruct]
|
18
|
+
struct_attr_reader :payload, :result, :links
|
19
|
+
|
20
|
+
# @return [Time]
|
21
|
+
time_attr_reader :created_at, :started_at, :ended_at
|
22
|
+
|
23
|
+
# @return [Boolean]
|
24
|
+
def error?
|
25
|
+
status == :error
|
26
|
+
end
|
27
|
+
|
28
|
+
# @return [Boolean]
|
29
|
+
def finished?
|
30
|
+
status == :finished
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [Boolean]
|
34
|
+
def processing?
|
35
|
+
status == :processing
|
36
|
+
end
|
37
|
+
|
38
|
+
# @return [Boolean]
|
39
|
+
def waiting?
|
40
|
+
status == :waiting
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module CloudConvert
|
2
|
+
class User < Entity
|
3
|
+
# @return [Integer]
|
4
|
+
attr_reader :id, :credits
|
5
|
+
|
6
|
+
# @return [String]
|
7
|
+
attr_reader :username, :email
|
8
|
+
|
9
|
+
# @return [Boolean]
|
10
|
+
predicate_attr_reader :paying
|
11
|
+
|
12
|
+
# @return [OpenStruct]
|
13
|
+
struct_attr_reader :links
|
14
|
+
|
15
|
+
# @return [Time]
|
16
|
+
time_attr_reader :created_at
|
17
|
+
end
|
18
|
+
end
|
data/lib/cloudconvert/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
module
|
2
|
-
VERSION = "0.0
|
1
|
+
module CloudConvert
|
2
|
+
VERSION = "1.0.0"
|
3
3
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module CloudConvert
|
2
|
+
class Webhook
|
3
|
+
# Raised when a webhook is malformed
|
4
|
+
Error = Class.new(CloudConvert::Error)
|
5
|
+
|
6
|
+
# Raised when a webhook does not match the CloudConvert-Signature
|
7
|
+
InvalidSignature = Class.new(Error)
|
8
|
+
|
9
|
+
# Raised when a webhook does not have a CloudConvert-Signature
|
10
|
+
MissingSignature = Class.new(Error)
|
11
|
+
|
12
|
+
class << self
|
13
|
+
# @param payload [String] The full request body (the JSON string) of our request to the webhook URL.
|
14
|
+
# @return [Event]
|
15
|
+
def event(payload)
|
16
|
+
Event.new(JSON.parse(payload, object_class: OpenStruct))
|
17
|
+
end
|
18
|
+
|
19
|
+
# @param payload [String] The full request body (the JSON string) of our request to the webhook URL.
|
20
|
+
# @param signature [String] The value from the CloudConvert-Signature.
|
21
|
+
# @param secret [String] The signing secret from for your webhook settings.
|
22
|
+
# @return [Boolean]
|
23
|
+
def verify(payload, signature, secret)
|
24
|
+
OpenSSL::HMAC.hexdigest("SHA256", secret.to_s, payload.to_s) == signature
|
25
|
+
end
|
26
|
+
|
27
|
+
# @param payload [String] The full request body (the JSON string) of our request to the webhook URL.
|
28
|
+
# @param signature [String] The value from the CloudConvert-Signature.
|
29
|
+
# @param secret [String] The signing secret from for your webhook settings.
|
30
|
+
# @raise [MissingSignature, InvalidSignature]
|
31
|
+
# @return [Boolean]
|
32
|
+
def verify!(payload, signature, secret)
|
33
|
+
raise MissingSignature.new("Missing webhook signature") if signature.to_s.empty?
|
34
|
+
raise InvalidSignature.new("Invalid webhook signature") unless verify(payload, signature, secret)
|
35
|
+
true
|
36
|
+
end
|
37
|
+
|
38
|
+
# @param request [Request] The request to the webhook URL from CloudConvert.
|
39
|
+
# @param secret [String] The signing secret from for your webhook settings.
|
40
|
+
# @return [Boolean]
|
41
|
+
def verify_request(request, secret)
|
42
|
+
verify request.body.rewind && request.body.read, request.get_header("HTTP_CLOUDCONVERT_SIGNATURE"), secret
|
43
|
+
end
|
44
|
+
|
45
|
+
# @param request [Request] The request to the webhook URL from CloudConvert.
|
46
|
+
# @param secret [String] The signing secret from for your webhook settings.
|
47
|
+
# @raise [MissingSignature, InvalidSignature]
|
48
|
+
# @return [Boolean]
|
49
|
+
def verify_request!(request, secret)
|
50
|
+
verify! request.body.rewind && request.body.read, request.get_header("HTTP_CLOUDCONVERT_SIGNATURE"), secret
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module CloudConvert::Webhook::Processor
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
# Raised when the webhook_secret has not been supplied
|
5
|
+
UnspecifiedSecret = Class.new(CloudConvert::Webhook::Error)
|
6
|
+
|
7
|
+
included do
|
8
|
+
before_action :authenticate_cloudconvert_request!, only: :create
|
9
|
+
skip_before_action :verify_authenticity_token, only: :create
|
10
|
+
end
|
11
|
+
|
12
|
+
def create
|
13
|
+
method = event.name.gsub(".", "_")
|
14
|
+
raise NoMethodError.new("#{name}##{method} not implemented") unless respond_to?(method, true)
|
15
|
+
send(method, event)
|
16
|
+
head(:ok)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def authenticate_cloudconvert_request!
|
22
|
+
raise UnspecifiedSecret.new unless respond_to?(:webhook_secret, true)
|
23
|
+
head(:bad_request) unless CloudConvert::Webhook.verify_request(request, webhook_secret(event))
|
24
|
+
end
|
25
|
+
|
26
|
+
def event
|
27
|
+
@event ||= CloudConvert::Webhook.event(request.body.read)
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,37 +1,52 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudconvert
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
|
7
|
+
- Josias Montag
|
8
|
+
- Steve Lacey
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2021-01-12 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
15
|
+
name: activesupport
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '4.0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '4.0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: down
|
15
30
|
requirement: !ruby/object:Gem::Requirement
|
16
31
|
requirements:
|
17
32
|
- - "~>"
|
18
33
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
type: :
|
34
|
+
version: '5.0'
|
35
|
+
type: :runtime
|
21
36
|
prerelease: false
|
22
37
|
version_requirements: !ruby/object:Gem::Requirement
|
23
38
|
requirements:
|
24
39
|
- - "~>"
|
25
40
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
41
|
+
version: '5.0'
|
27
42
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
43
|
+
name: equalizer
|
29
44
|
requirement: !ruby/object:Gem::Requirement
|
30
45
|
requirements:
|
31
46
|
- - ">="
|
32
47
|
- !ruby/object:Gem::Version
|
33
48
|
version: '0'
|
34
|
-
type: :
|
49
|
+
type: :runtime
|
35
50
|
prerelease: false
|
36
51
|
version_requirements: !ruby/object:Gem::Requirement
|
37
52
|
requirements:
|
@@ -40,6 +55,34 @@ dependencies:
|
|
40
55
|
version: '0'
|
41
56
|
- !ruby/object:Gem::Dependency
|
42
57
|
name: faraday
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '1.0'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '1.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: faraday_middleware
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '1.0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '1.0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: forwardable
|
43
86
|
requirement: !ruby/object:Gem::Requirement
|
44
87
|
requirements:
|
45
88
|
- - ">="
|
@@ -66,28 +109,265 @@ dependencies:
|
|
66
109
|
- - ">="
|
67
110
|
- !ruby/object:Gem::Version
|
68
111
|
version: '0'
|
69
|
-
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: memoizable
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0.4'
|
119
|
+
type: :runtime
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0.4'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: mimemagic
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 0.3.5
|
133
|
+
type: :runtime
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 0.3.5
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: openssl
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
type: :runtime
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: ostruct
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :runtime
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: schemacop
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - "~>"
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '2.4'
|
175
|
+
type: :runtime
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - "~>"
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '2.4'
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: dotenv
|
184
|
+
requirement: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - "~>"
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '2.7'
|
189
|
+
type: :development
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - "~>"
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: '2.7'
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: rake
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - "~>"
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '13.0'
|
203
|
+
type: :development
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - "~>"
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '13.0'
|
210
|
+
- !ruby/object:Gem::Dependency
|
211
|
+
name: climate_control
|
212
|
+
requirement: !ruby/object:Gem::Requirement
|
213
|
+
requirements:
|
214
|
+
- - ">="
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: '0'
|
217
|
+
type: :development
|
218
|
+
prerelease: false
|
219
|
+
version_requirements: !ruby/object:Gem::Requirement
|
220
|
+
requirements:
|
221
|
+
- - ">="
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
version: '0'
|
224
|
+
- !ruby/object:Gem::Dependency
|
225
|
+
name: pry
|
226
|
+
requirement: !ruby/object:Gem::Requirement
|
227
|
+
requirements:
|
228
|
+
- - ">="
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: '0'
|
231
|
+
type: :development
|
232
|
+
prerelease: false
|
233
|
+
version_requirements: !ruby/object:Gem::Requirement
|
234
|
+
requirements:
|
235
|
+
- - ">="
|
236
|
+
- !ruby/object:Gem::Version
|
237
|
+
version: '0'
|
238
|
+
- !ruby/object:Gem::Dependency
|
239
|
+
name: rack
|
240
|
+
requirement: !ruby/object:Gem::Requirement
|
241
|
+
requirements:
|
242
|
+
- - "~>"
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: '2.2'
|
245
|
+
type: :development
|
246
|
+
prerelease: false
|
247
|
+
version_requirements: !ruby/object:Gem::Requirement
|
248
|
+
requirements:
|
249
|
+
- - "~>"
|
250
|
+
- !ruby/object:Gem::Version
|
251
|
+
version: '2.2'
|
252
|
+
- !ruby/object:Gem::Dependency
|
253
|
+
name: rspec
|
254
|
+
requirement: !ruby/object:Gem::Requirement
|
255
|
+
requirements:
|
256
|
+
- - "~>"
|
257
|
+
- !ruby/object:Gem::Version
|
258
|
+
version: '3.0'
|
259
|
+
type: :development
|
260
|
+
prerelease: false
|
261
|
+
version_requirements: !ruby/object:Gem::Requirement
|
262
|
+
requirements:
|
263
|
+
- - "~>"
|
264
|
+
- !ruby/object:Gem::Version
|
265
|
+
version: '3.0'
|
266
|
+
- !ruby/object:Gem::Dependency
|
267
|
+
name: rubocop
|
268
|
+
requirement: !ruby/object:Gem::Requirement
|
269
|
+
requirements:
|
270
|
+
- - "~>"
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
version: '1.5'
|
273
|
+
type: :development
|
274
|
+
prerelease: false
|
275
|
+
version_requirements: !ruby/object:Gem::Requirement
|
276
|
+
requirements:
|
277
|
+
- - "~>"
|
278
|
+
- !ruby/object:Gem::Version
|
279
|
+
version: '1.5'
|
280
|
+
- !ruby/object:Gem::Dependency
|
281
|
+
name: securerandom
|
282
|
+
requirement: !ruby/object:Gem::Requirement
|
283
|
+
requirements:
|
284
|
+
- - ">="
|
285
|
+
- !ruby/object:Gem::Version
|
286
|
+
version: '0'
|
287
|
+
type: :development
|
288
|
+
prerelease: false
|
289
|
+
version_requirements: !ruby/object:Gem::Requirement
|
290
|
+
requirements:
|
291
|
+
- - ">="
|
292
|
+
- !ruby/object:Gem::Version
|
293
|
+
version: '0'
|
294
|
+
- !ruby/object:Gem::Dependency
|
295
|
+
name: simplecov
|
296
|
+
requirement: !ruby/object:Gem::Requirement
|
297
|
+
requirements:
|
298
|
+
- - "~>"
|
299
|
+
- !ruby/object:Gem::Version
|
300
|
+
version: '0.16'
|
301
|
+
type: :development
|
302
|
+
prerelease: false
|
303
|
+
version_requirements: !ruby/object:Gem::Requirement
|
304
|
+
requirements:
|
305
|
+
- - "~>"
|
306
|
+
- !ruby/object:Gem::Version
|
307
|
+
version: '0.16'
|
308
|
+
- !ruby/object:Gem::Dependency
|
309
|
+
name: webmock
|
310
|
+
requirement: !ruby/object:Gem::Requirement
|
311
|
+
requirements:
|
312
|
+
- - ">="
|
313
|
+
- !ruby/object:Gem::Version
|
314
|
+
version: '0'
|
315
|
+
type: :development
|
316
|
+
prerelease: false
|
317
|
+
version_requirements: !ruby/object:Gem::Requirement
|
318
|
+
requirements:
|
319
|
+
- - ">="
|
320
|
+
- !ruby/object:Gem::Version
|
321
|
+
version: '0'
|
322
|
+
- !ruby/object:Gem::Dependency
|
323
|
+
name: vcr
|
324
|
+
requirement: !ruby/object:Gem::Requirement
|
325
|
+
requirements:
|
326
|
+
- - "~>"
|
327
|
+
- !ruby/object:Gem::Version
|
328
|
+
version: '6.0'
|
329
|
+
type: :development
|
330
|
+
prerelease: false
|
331
|
+
version_requirements: !ruby/object:Gem::Requirement
|
332
|
+
requirements:
|
333
|
+
- - "~>"
|
334
|
+
- !ruby/object:Gem::Version
|
335
|
+
version: '6.0'
|
336
|
+
description: A Ruby interface to the CloudConvert API v2.
|
70
337
|
email:
|
71
|
-
-
|
338
|
+
- josias@montag.info
|
339
|
+
- steve@steve.ly
|
72
340
|
executables: []
|
73
341
|
extensions: []
|
74
342
|
extra_rdoc_files: []
|
75
343
|
files:
|
76
|
-
- ".gitignore"
|
77
|
-
- Gemfile
|
78
344
|
- LICENSE.txt
|
79
345
|
- README.md
|
80
|
-
- Rakefile
|
81
346
|
- cloudconvert.gemspec
|
82
347
|
- lib/cloudconvert.rb
|
83
|
-
- lib/cloudconvert/
|
84
|
-
- lib/cloudconvert/
|
348
|
+
- lib/cloudconvert/base.rb
|
349
|
+
- lib/cloudconvert/client.rb
|
350
|
+
- lib/cloudconvert/collection.rb
|
351
|
+
- lib/cloudconvert/entity.rb
|
352
|
+
- lib/cloudconvert/error.rb
|
353
|
+
- lib/cloudconvert/event.rb
|
354
|
+
- lib/cloudconvert/file.rb
|
355
|
+
- lib/cloudconvert/job.rb
|
356
|
+
- lib/cloudconvert/middleware.rb
|
357
|
+
- lib/cloudconvert/resource.rb
|
358
|
+
- lib/cloudconvert/resources/jobs.rb
|
359
|
+
- lib/cloudconvert/resources/tasks.rb
|
360
|
+
- lib/cloudconvert/resources/users.rb
|
361
|
+
- lib/cloudconvert/task.rb
|
362
|
+
- lib/cloudconvert/user.rb
|
85
363
|
- lib/cloudconvert/version.rb
|
86
|
-
|
364
|
+
- lib/cloudconvert/webhook.rb
|
365
|
+
- lib/cloudconvert/webhook/processor.rb
|
366
|
+
homepage: https://cloudconvert.com/api/v2
|
87
367
|
licenses:
|
88
368
|
- MIT
|
89
369
|
metadata: {}
|
90
|
-
post_install_message:
|
370
|
+
post_install_message:
|
91
371
|
rdoc_options: []
|
92
372
|
require_paths:
|
93
373
|
- lib
|
@@ -95,16 +375,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
95
375
|
requirements:
|
96
376
|
- - ">="
|
97
377
|
- !ruby/object:Gem::Version
|
98
|
-
version: '
|
378
|
+
version: '2.7'
|
99
379
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
380
|
requirements:
|
101
381
|
- - ">="
|
102
382
|
- !ruby/object:Gem::Version
|
103
383
|
version: '0'
|
104
384
|
requirements: []
|
105
|
-
|
106
|
-
|
107
|
-
signing_key:
|
385
|
+
rubygems_version: 3.1.4
|
386
|
+
signing_key:
|
108
387
|
specification_version: 4
|
109
|
-
summary: Ruby
|
388
|
+
summary: A Ruby interface to the CloudConvert API v2.
|
110
389
|
test_files: []
|