rev-api 1.0.3 → 1.0.4
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 +7 -0
- data/Gemfile.lock +11 -10
- data/Rakefile +1 -1
- data/examples/cli.rb +69 -18
- data/lib/rev-api/exceptions.rb +5 -2
- data/lib/rev-api/models/order.rb +23 -4
- data/lib/rev-api/models/order_request.rb +70 -27
- data/lib/rev-api/version.rb +1 -1
- data/rev-api.gemspec +7 -7
- data/spec/fixtures/api_cassettes/submit_cp_order.yml +45 -0
- data/spec/lib/rev/exceptions_spec.rb +8 -0
- data/spec/lib/rev/models/order_request_spec.rb +93 -0
- data/spec/lib/rev/models/order_spec.rb +58 -0
- data/spec/lib/rev/post_order_spec.rb +39 -1
- metadata +56 -35
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: eaa50b9d9b8d001373ae19d4ae4e399ab21cb2e5
|
4
|
+
data.tar.gz: 8cb9bda20cd2cfca393614398dcc668ba1b6ebe2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9bb0071290cbab2b0ba7000fe4465efc839d47af99ed4d9de0c18de23557563924d6a1d4b71e7f14266d39996fbac7edc50a32048472e9ed3a9694d23258843c
|
7
|
+
data.tar.gz: 24dd6b5479d6287d7886299e1ce5b770048f85f95eda4a885324a8168972515035641a7e4417ccfb45889a200963a46636a80f54e9865e747acbbebb09c18406
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rev-api (1.0.
|
5
|
-
httparty (>= 0.11.0)
|
4
|
+
rev-api (1.0.4)
|
5
|
+
httparty (~> 0.11, >= 0.11.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
@@ -17,9 +17,10 @@ GEM
|
|
17
17
|
thor
|
18
18
|
crack (0.4.1)
|
19
19
|
safe_yaml (~> 0.9.0)
|
20
|
-
httparty (0.
|
21
|
-
|
20
|
+
httparty (0.13.1)
|
21
|
+
json (~> 1.8)
|
22
22
|
multi_xml (>= 0.5.2)
|
23
|
+
json (1.8.1)
|
23
24
|
mime-types (1.25)
|
24
25
|
multi_json (1.8.0)
|
25
26
|
multi_xml (0.5.5)
|
@@ -50,11 +51,11 @@ PLATFORMS
|
|
50
51
|
|
51
52
|
DEPENDENCIES
|
52
53
|
coveralls
|
53
|
-
rake (>= 10.1.0)
|
54
|
+
rake (~> 10.1, >= 10.1.0)
|
54
55
|
redcarpet
|
55
56
|
rev-api!
|
56
|
-
rubygems-tasks
|
57
|
-
turn (~> 0.9.6)
|
58
|
-
vcr (~> 2.6.0)
|
59
|
-
webmock (~> 1.11.0)
|
60
|
-
yard
|
57
|
+
rubygems-tasks (~> 0)
|
58
|
+
turn (~> 0.9.6, ~> 0.9)
|
59
|
+
vcr (~> 2.6.0, ~> 2.6)
|
60
|
+
webmock (~> 1.11.0, ~> 1.11)
|
61
|
+
yard (~> 0)
|
data/Rakefile
CHANGED
data/examples/cli.rb
CHANGED
@@ -11,7 +11,7 @@ require 'pp'
|
|
11
11
|
# ruby examples/cli.rb --sandbox --client-key your_client_key --user-key your_user_key
|
12
12
|
|
13
13
|
class RevCLI
|
14
|
-
COMMANDS = %w{help get list transcripts dl_transcripts dl_sources
|
14
|
+
COMMANDS = %w{help get list transcripts captions dl_transcripts dl_captions dl_sources place_tc place_cp cancel}
|
15
15
|
|
16
16
|
def initialize
|
17
17
|
options = { :environment => Rev::Api::PRODUCTION_HOST, :verbatim => false, :timestamps => false }
|
@@ -115,6 +115,27 @@ class RevCLI
|
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
118
|
+
def captions(args)
|
119
|
+
begin
|
120
|
+
order_num = args[0]
|
121
|
+
order = @rev_client.get_order order_num
|
122
|
+
|
123
|
+
if order.captions.empty?
|
124
|
+
puts "There are no captions for order #{order_num}"
|
125
|
+
return
|
126
|
+
end
|
127
|
+
|
128
|
+
order.captions.each do |t|
|
129
|
+
puts "Contents of #{t.name}"
|
130
|
+
puts "-----------------------------------"
|
131
|
+
puts @rev_client.get_attachment_content(t.id).body
|
132
|
+
puts
|
133
|
+
end
|
134
|
+
rescue Rev::BadRequestError => e
|
135
|
+
puts "Displaying captions failed with error code #{e.code}, message #{e.message}"
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
118
139
|
def dl_transcripts(args)
|
119
140
|
begin
|
120
141
|
order_num = args[0]
|
@@ -135,6 +156,26 @@ class RevCLI
|
|
135
156
|
end
|
136
157
|
end
|
137
158
|
|
159
|
+
def dl_captions(args)
|
160
|
+
begin
|
161
|
+
order_num = args[0]
|
162
|
+
order = @rev_client.get_order order_num
|
163
|
+
|
164
|
+
if order.captions.empty?
|
165
|
+
puts "There are no captions for order #{order_num}"
|
166
|
+
return
|
167
|
+
end
|
168
|
+
|
169
|
+
filenames = order.captions.map { |t| t.name}.join(',')
|
170
|
+
puts "Downloading files: #{filenames}"
|
171
|
+
order.captions.each do |t|
|
172
|
+
@rev_client.save_attachment_content t.id, t.name
|
173
|
+
end
|
174
|
+
rescue Rev::BadRequestError => e
|
175
|
+
puts "Downloading captions failed with error code #{e.code}, message #{e.message}"
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
138
179
|
def dl_sources(args)
|
139
180
|
begin
|
140
181
|
order_num = args[0]
|
@@ -165,24 +206,37 @@ class RevCLI
|
|
165
206
|
end
|
166
207
|
end
|
167
208
|
|
168
|
-
def
|
209
|
+
def place_tc(args)
|
210
|
+
inputs = upload(args, 'audio/mpeg')
|
211
|
+
tc_options = Rev::TranscriptionOptions.new(inputs)
|
212
|
+
place_helper(inputs, { :transcription_options => tc_options })
|
213
|
+
end
|
214
|
+
|
215
|
+
def place_cp(args)
|
216
|
+
inputs = upload(args, 'video/mpeg')
|
217
|
+
cp_options = Rev::CaptionOptions.new(inputs, {:output_file_formats => [Rev::CaptionOptions::OUTPUT_FILE_FORMATS[:scc]] })
|
218
|
+
place_helper(inputs, { :caption_options => cp_options })
|
219
|
+
end
|
220
|
+
|
221
|
+
def help(*args)
|
222
|
+
puts "commands are: #{COMMANDS.join(' ')} help exit"
|
223
|
+
end
|
224
|
+
|
225
|
+
private
|
226
|
+
|
227
|
+
def upload(args, type)
|
169
228
|
input_urls = args.map do |f|
|
170
229
|
puts "Uploading #{f}"
|
171
|
-
@rev_client.upload_input(f,
|
230
|
+
@rev_client.upload_input(f, type)
|
172
231
|
end
|
173
|
-
|
232
|
+
input_urls.map { |url| Rev::Input.new(:uri => url, :audio_length => 3) }
|
233
|
+
end
|
234
|
+
|
235
|
+
def place_helper(inputs, options)
|
174
236
|
payment = Rev::Payment.with_credit_card_on_file
|
175
|
-
|
176
|
-
|
237
|
+
options = options.merge({ :payment => payment, :client_ref => 'XB432423', :comment => 'Please work quickly' })
|
238
|
+
request = Rev::OrderRequest.new(payment, options)
|
177
239
|
|
178
|
-
request = Rev::OrderRequest.new(
|
179
|
-
payment,
|
180
|
-
:transcription_options => tc_options,
|
181
|
-
:client_ref => 'XB432423',
|
182
|
-
:comment => 'Please work quickly'
|
183
|
-
)
|
184
|
-
|
185
|
-
# act!
|
186
240
|
begin
|
187
241
|
new_order = @rev_client.submit_order(request)
|
188
242
|
puts "New order: #{new_order}"
|
@@ -190,10 +244,7 @@ class RevCLI
|
|
190
244
|
puts "Order placement failed with error code #{e.code}, message #{e.message}"
|
191
245
|
end
|
192
246
|
end
|
193
|
-
|
194
|
-
def help(*args)
|
195
|
-
puts "commands are: #{COMMANDS.join(' ')} help exit"
|
196
|
-
end
|
247
|
+
|
197
248
|
end
|
198
249
|
|
199
250
|
cli = RevCLI.new
|
data/lib/rev-api/exceptions.rb
CHANGED
@@ -53,8 +53,11 @@ module Rev
|
|
53
53
|
# 10006 Input Location is not specified - neither of External Link and URI set for input media
|
54
54
|
EXTERNAL_LINK_OR_URI_NOT_SPECIFIED = 10006
|
55
55
|
|
56
|
-
# 20001 Invalid
|
57
|
-
|
56
|
+
# 20001 Invalid Media Length - If one of the input medias has a specified length that is not a positive integer
|
57
|
+
INVALID_MEDIA_LENGTH = 20001
|
58
|
+
|
59
|
+
# @deprecated Use {#OrderRequestErrorCodes.INVALID_MEDIA_LENGTH} instead
|
60
|
+
INVALID_AUDIO_LENGTH = INVALID_MEDIA_LENGTH
|
58
61
|
|
59
62
|
# 20002 Invalid Word Count - word counts for translation are missing or inaccurate
|
60
63
|
INVALID_WORD_COUNT = 20002
|
data/lib/rev-api/models/order.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
require 'rev-api/api_serializable'
|
2
2
|
|
3
3
|
module Rev
|
4
|
-
# Represents Translation or Transcription order.
|
5
|
-
# Should have TranslationInfo or TranscriptionInfo, list
|
4
|
+
# Represents Translation, Caption, or Transcription order.
|
5
|
+
# Should have TranslationInfo, CaptionInfo, or TranscriptionInfo, list
|
6
6
|
# of comments and attachments. Attributes names reflect
|
7
7
|
# API exposed names, but occasional hyphens are replaced
|
8
8
|
# with underscores
|
9
9
|
class Order < ApiSerializable
|
10
10
|
attr_reader :order_number, :price, :status, :attachments, :comments,
|
11
|
-
:translation, :transcription, :client_ref
|
11
|
+
:translation, :transcription, :caption, :client_ref
|
12
12
|
|
13
13
|
# @param fields [Hash] hash of order fields parsed from JSON API response
|
14
14
|
def initialize(fields)
|
@@ -17,6 +17,7 @@ module Rev
|
|
17
17
|
@comments = fields['comments'].map { |comment_fields| Comment.new(comment_fields) }
|
18
18
|
@translation = TranslationInfo.new(fields['translation']) if fields['translation']
|
19
19
|
@transcription = TranscriptionInfo.new(fields['transcription']) if fields['transcription']
|
20
|
+
@caption = CaptionInfo.new(fields['caption']) if fields['caption']
|
20
21
|
end
|
21
22
|
|
22
23
|
# @return [Array of Attachment] with the kind of "transcript"
|
@@ -29,6 +30,11 @@ module Rev
|
|
29
30
|
@attachments.select { |a| a.kind == Attachment::KINDS[:translation]}
|
30
31
|
end
|
31
32
|
|
33
|
+
# @return [Array of Attachment] with the kind of "caption"
|
34
|
+
def captions
|
35
|
+
@attachments.select { |a| a.kind == Attachment::KINDS[:caption] }
|
36
|
+
end
|
37
|
+
|
32
38
|
# @return [Array of Attachment] with the kind of "sources"
|
33
39
|
def sources
|
34
40
|
@attachments.select { |a| a.kind == Attachment::KINDS[:media]}
|
@@ -61,6 +67,11 @@ module Rev
|
|
61
67
|
class TranscriptionInfo < ApiSerializable
|
62
68
|
attr_reader :total_length, :verbatim, :timestamps
|
63
69
|
end
|
70
|
+
|
71
|
+
# Additional information specific to caption orders
|
72
|
+
class CaptionInfo < ApiSerializable
|
73
|
+
attr_reader :total_length
|
74
|
+
end
|
64
75
|
|
65
76
|
# Represents order attachment - logical document associated with order
|
66
77
|
class Attachment < ApiSerializable
|
@@ -69,17 +80,25 @@ module Rev
|
|
69
80
|
KINDS = {
|
70
81
|
:transcript => 'transcript',
|
71
82
|
:translation => 'translation',
|
83
|
+
:caption => 'caption',
|
72
84
|
:media => 'media'
|
73
85
|
}
|
74
86
|
|
75
87
|
# List of supported mime-types used to request attachment's content
|
76
88
|
# within 'Accept' header
|
77
89
|
REPRESENTATIONS = {
|
90
|
+
# Supported by :transcript and :translation
|
78
91
|
:docx => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
79
92
|
:doc => 'application/msword',
|
80
93
|
:pdf => 'application/pdf',
|
81
94
|
:txt => 'text/plain',
|
82
|
-
:youtube => 'text/plain; format=youtube-transcript'
|
95
|
+
:youtube => 'text/plain; format=youtube-transcript',
|
96
|
+
|
97
|
+
# Supported by :caption
|
98
|
+
:srt => 'application/x-subrip',
|
99
|
+
:scc => 'text/x-scc',
|
100
|
+
:ttml => 'application/ttml+xml',
|
101
|
+
:qt => 'application/x-quicktime-timedtext'
|
83
102
|
}
|
84
103
|
|
85
104
|
# @param fields [Hash] fields of attachment fields parsed from JSON API response
|
@@ -3,9 +3,9 @@ require 'rev-api/api_serializable'
|
|
3
3
|
module Rev
|
4
4
|
# OrderRequest is used for constructing order 'spec' in consumer code and passing it into.
|
5
5
|
# It consists of three main elements: :payment, :transcription_options and :notification.
|
6
|
-
# You can also supply reference number and customer comment
|
6
|
+
# You can also supply priority, reference number, and customer comment
|
7
7
|
#
|
8
|
-
# @note http://www.rev.com/api/ordersposttranscription, http://www.rev.com/api/ordersposttranslation
|
8
|
+
# @note http://www.rev.com/api/ordersposttranscription, http://www.rev.com/api/ordersposttranslation, http://www.rev.com/api/orderspostcaption
|
9
9
|
class OrderRequest < ApiSerializable
|
10
10
|
# see {Rev::Payment}
|
11
11
|
attr_reader :payment
|
@@ -15,6 +15,9 @@ module Rev
|
|
15
15
|
|
16
16
|
# see {Rev::TranslationOptions}
|
17
17
|
attr_reader :translation_options
|
18
|
+
|
19
|
+
# see {Rev::CaptionOptions}
|
20
|
+
attr_reader :caption_options
|
18
21
|
|
19
22
|
# see {Rev::Notification}
|
20
23
|
attr_reader :notification
|
@@ -24,10 +27,20 @@ module Rev
|
|
24
27
|
|
25
28
|
# a comment with any special messages about the order (optional)
|
26
29
|
attr_reader :comment
|
30
|
+
|
31
|
+
# a requested priority for the order, defaults to normal (optional)
|
32
|
+
attr_reader :priority
|
33
|
+
|
34
|
+
# use to correctly set priority
|
35
|
+
PRIORITY = {
|
36
|
+
:normal => 'Normal',
|
37
|
+
:time_insensitivie => 'TimeInsensitivie'
|
38
|
+
}
|
27
39
|
|
28
40
|
# @param payment [Payment] payment info
|
29
41
|
# @param fields [Hash] of fields to initialize instance. See instance attributes for available fields.
|
30
42
|
def initialize(payment, fields = {})
|
43
|
+
fields = { :priority => PRIORITY[:normal] }.merge(fields)
|
31
44
|
super fields
|
32
45
|
@payment = payment
|
33
46
|
end
|
@@ -84,23 +97,30 @@ module Rev
|
|
84
97
|
attr_reader :number, :expiration_month, :expiration_year, :cardholder, :billing_address, :saved_id
|
85
98
|
end
|
86
99
|
|
87
|
-
#
|
88
|
-
|
89
|
-
|
90
|
-
# - For each input, you must provide either uri or external_link, but not both. If both or neither is provided,
|
91
|
-
# error is returned.
|
92
|
-
# - You should only provide an external_link if it links to page where the media can be found, rather than directly to
|
93
|
-
# the media file, and that we will not attempt to do anything with the link when the API call is made.
|
94
|
-
# This is in contrast to when you post to /inputs with a link to a media file - in that case we do download the file.
|
95
|
-
# So the external_link should only be used when you can't link to the media file directly.
|
96
|
-
# - The external_link can contain anything you want, but if it's a YouTube link, we will attempt to determine the
|
97
|
-
# duration of the video on that page.
|
98
|
-
# We also allow users of the api to specify if translation should be done using our Verbatim option (:verbatim => true)
|
99
|
-
# and to specify if Time stamps should be included (:timestamps => true).
|
100
|
-
class TranscriptionOptions < ApiSerializable
|
101
|
-
# Mandatory, contains list of media to transcribe. Must have at least one element.
|
100
|
+
# Superclass for the business-line options that handles capture and common validation of inputs.
|
101
|
+
class InputOptions < ApiSerializable
|
102
|
+
# Mandatory, contains list of inputs. Must have at least one element.
|
102
103
|
attr_reader :inputs
|
103
104
|
|
105
|
+
# @param inputs [Array] list of inputs
|
106
|
+
# @param info [Hash] of fields to initialize instance.
|
107
|
+
def initialize(inputs, info = {})
|
108
|
+
super info
|
109
|
+
raise(ArgumentError, "inputs must have at least one element") unless validate_inputs(inputs)
|
110
|
+
@inputs = inputs
|
111
|
+
end
|
112
|
+
|
113
|
+
private
|
114
|
+
|
115
|
+
def validate_inputs(inputs)
|
116
|
+
!inputs.nil? && inputs.length > 0
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
# Transcription options. This section contains the input media that must be transferred to our servers
|
121
|
+
# using a POST to /inputs, and are referenced using the URIs returned by that call. We also support external links.
|
122
|
+
# @see http://www.rev.com/api/ordersposttranscription
|
123
|
+
class TranscriptionOptions < InputOptions
|
104
124
|
# Optional, should we transcribe the provided files verbatim? If true,
|
105
125
|
# all filler words (i.e. umm, huh) will be included.
|
106
126
|
attr_reader :verbatim
|
@@ -113,8 +133,7 @@ module Rev
|
|
113
133
|
# - :verbatim => true/false
|
114
134
|
# - :timestams => true/false
|
115
135
|
def initialize(inputs, info = {})
|
116
|
-
super info
|
117
|
-
@inputs = inputs
|
136
|
+
super inputs, info
|
118
137
|
end
|
119
138
|
end
|
120
139
|
|
@@ -122,10 +141,8 @@ module Rev
|
|
122
141
|
# servers using a POST to /inputs, and are referenced using the URIs returned by that call.
|
123
142
|
# For each media, word count must be specified. The language code for the source and desitination
|
124
143
|
# languages must also be specified.
|
125
|
-
|
126
|
-
|
127
|
-
attr_reader :inputs
|
128
|
-
|
144
|
+
# @see http://www.rev.com/api/ordersposttranslation
|
145
|
+
class TranslationOptions < InputOptions
|
129
146
|
# Mandatory, source language code
|
130
147
|
attr_reader :source_language_code
|
131
148
|
|
@@ -138,8 +155,34 @@ module Rev
|
|
138
155
|
# - :destination_language_code
|
139
156
|
# @note For language codes refer to http://www.loc.gov/standards/iso639-2/php/code_list.php
|
140
157
|
def initialize(inputs, info = {})
|
141
|
-
super
|
142
|
-
|
158
|
+
super inputs, info
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
# Caption options. This section contains the input media that must be transferred to our servers
|
163
|
+
# using a POST to /inputs, and are referenced using the URIs returned by that call. We also support external links.
|
164
|
+
# @see http://www.rev.com/api/orderspostcaption
|
165
|
+
class CaptionOptions < InputOptions
|
166
|
+
# Array of file formats the captions should be delivered as. (Optional, default is SubRip)
|
167
|
+
attr_reader :output_file_formats
|
168
|
+
|
169
|
+
# All supported output file formats
|
170
|
+
OUTPUT_FILE_FORMATS = {
|
171
|
+
:subrip => 'SubRip',
|
172
|
+
:scc => 'Scc',
|
173
|
+
:ttml => 'Ttml',
|
174
|
+
:qttext => 'QTtext'
|
175
|
+
}
|
176
|
+
|
177
|
+
def initialize(inputs, info = {})
|
178
|
+
super(inputs, info)
|
179
|
+
raise(ArgumentError, "invalid format(s)") unless validate_output_formats(info[:output_file_formats])
|
180
|
+
end
|
181
|
+
|
182
|
+
private
|
183
|
+
|
184
|
+
def validate_output_formats(formats)
|
185
|
+
formats.nil? || formats.select{|f| !OUTPUT_FILE_FORMATS.has_value?(f) }.empty?
|
143
186
|
end
|
144
187
|
end
|
145
188
|
|
@@ -149,11 +192,11 @@ module Rev
|
|
149
192
|
attr_reader :word_length
|
150
193
|
|
151
194
|
# Length of audio, in minutes (mandatory in case of inability to determine it automatically).
|
152
|
-
# Used within {Rev::OrderRequest::TranscriptionInfo}
|
195
|
+
# Used within {Rev::OrderRequest::TranscriptionInfo} and {Rev::OrderRequest::CaptionInfo}
|
153
196
|
attr_reader :audio_length
|
154
197
|
|
155
198
|
# Mandatory, URI of the media, as returned from the call to POST /inputs.
|
156
|
-
# :external_link might substitute :uri for Transcription.
|
199
|
+
# :external_link might substitute :uri for Transcription or Caption.
|
157
200
|
attr_reader :uri
|
158
201
|
|
159
202
|
# External URL, if sources wasn't POSTed as input (YouTube, Vimeo, Dropbox, etc)
|
data/lib/rev-api/version.rb
CHANGED
data/rev-api.gemspec
CHANGED
@@ -19,15 +19,15 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
20
|
s.require_paths = [ "lib", "spec" ]
|
21
21
|
|
22
|
-
s.add_runtime_dependency('httparty', '>= 0.11.0')
|
22
|
+
s.add_runtime_dependency('httparty', '~> 0.11', '>= 0.11.0')
|
23
23
|
|
24
|
-
s.add_development_dependency('webmock', '~> 1.11.0')
|
25
|
-
s.add_development_dependency('vcr', '~> 2.6.0')
|
26
|
-
s.add_development_dependency('turn', '~> 0.9.6')
|
27
|
-
s.add_development_dependency('rake', '>= 10.1.0')
|
28
|
-
s.add_development_dependency('yard')
|
24
|
+
s.add_development_dependency('webmock', '~> 1.11', '~> 1.11.0')
|
25
|
+
s.add_development_dependency('vcr', '~> 2.6', '~> 2.6.0')
|
26
|
+
s.add_development_dependency('turn', '~> 0.9', '~> 0.9.6')
|
27
|
+
s.add_development_dependency('rake', '~> 10.1', '>= 10.1.0')
|
28
|
+
s.add_development_dependency('yard', '~> 0')
|
29
29
|
s.add_development_dependency('redcarpet')
|
30
|
-
s.add_development_dependency('rubygems-tasks')
|
30
|
+
s.add_development_dependency('rubygems-tasks', '~> 0')
|
31
31
|
|
32
32
|
s.has_rdoc = 'yard'
|
33
33
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://www.revtrunk.com/api/v1/orders
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ! '{"payment":{"type":"AccountBalance","credit_card":null},"caption_options":{"inputs":[{"external_link":"http://www.youtube.com/watch?v=UF8uR6Z6KLc"},{"audio_length":15,"external_link":"https://vimeo.com/7976699"}],"output_file_formats":["SubRip"]},"client_ref":"XB432423","comment":"Please
|
9
|
+
work quickly"}'
|
10
|
+
headers:
|
11
|
+
Content-Type:
|
12
|
+
- application/json
|
13
|
+
Authorization:
|
14
|
+
- Rev welcome:AAAAAu/YjZ3phXU5FsF35yIcgiA=
|
15
|
+
User-Agent:
|
16
|
+
- RevOfficialRubySDK/1.0.0
|
17
|
+
response:
|
18
|
+
status:
|
19
|
+
code: 201
|
20
|
+
message: Created
|
21
|
+
headers:
|
22
|
+
Cache-Control:
|
23
|
+
- no-cache
|
24
|
+
Pragma:
|
25
|
+
- no-cache
|
26
|
+
Expires:
|
27
|
+
- '-1'
|
28
|
+
Location:
|
29
|
+
- https://www.revtrunk.com/api/v1/orders/CP12345
|
30
|
+
Server:
|
31
|
+
- Microsoft-IIS/7.5
|
32
|
+
X-Miniprofiler-Ids:
|
33
|
+
- ! '["43bcb320-a1c9-4e9f-96c1-320e01a31549","ad8a37cd-e5ea-4134-ac9e-0390f722d6f6"]'
|
34
|
+
X-Powered-By:
|
35
|
+
- ASP.NET
|
36
|
+
Date:
|
37
|
+
- Wed, 18 Sep 2013 00:21:27 GMT
|
38
|
+
Content-Length:
|
39
|
+
- '0'
|
40
|
+
body:
|
41
|
+
encoding: US-ASCII
|
42
|
+
string: ''
|
43
|
+
http_version:
|
44
|
+
recorded_at: Wed, 18 Sep 2013 00:21:27 GMT
|
45
|
+
recorded_with: VCR 2.5.0
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require_relative '../../../spec_helper'
|
2
|
+
|
3
|
+
describe 'OrderRequest' do
|
4
|
+
|
5
|
+
it 'has normal priority' do
|
6
|
+
Rev::OrderRequest::PRIORITY[:normal].must_equal 'Normal'
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'has time insensitivie priority' do
|
10
|
+
Rev::OrderRequest::PRIORITY[:time_insensitivie].must_equal 'TimeInsensitivie'
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'defaults to normal priority' do
|
14
|
+
order = Rev::OrderRequest.new(Rev::Payment.with_credit_card_on_file, {})
|
15
|
+
order.priority.must_equal Rev::OrderRequest::PRIORITY[:normal]
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'accepts priority during init' do
|
19
|
+
priority = Rev::OrderRequest::PRIORITY[:time_insensitivie]
|
20
|
+
order = Rev::OrderRequest.new(Rev::Payment.with_credit_card_on_file, { 'priority' => priority })
|
21
|
+
order.priority.must_equal priority
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'has caption options' do
|
25
|
+
order = Rev::OrderRequest.new(Rev::Payment.with_credit_card_on_file, {})
|
26
|
+
order.must_respond_to :caption_options
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'InputOptions' do
|
30
|
+
it 'is ApiSerializable' do
|
31
|
+
options = Rev::InputOptions.new([{}], {})
|
32
|
+
options.must_be_kind_of Rev::ApiSerializable
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'requires non-empty inputs' do
|
36
|
+
proc { Rev::InputOptions.new([]) }.must_raise ArgumentError
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'requires non-nil inputs' do
|
40
|
+
proc { Rev::InputOptions.new(nil) }.must_raise ArgumentError
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'sets inputs from init' do
|
44
|
+
inputs = ['foo']
|
45
|
+
options = Rev::InputOptions.new(inputs)
|
46
|
+
options.inputs.must_equal inputs
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe 'TranscriptionOptions' do
|
51
|
+
it 'is InputOptions' do
|
52
|
+
options = Rev::TranscriptionOptions.new([{}], {})
|
53
|
+
options.must_be_kind_of Rev::InputOptions
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe 'TranslationOptions' do
|
58
|
+
it 'is InputOptions' do
|
59
|
+
options = Rev::TranslationOptions.new([{}], {})
|
60
|
+
options.must_be_kind_of Rev::InputOptions
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe 'CaptionOptions' do
|
65
|
+
it 'is InputOptions' do
|
66
|
+
options = Rev::CaptionOptions.new([{}], {})
|
67
|
+
options.must_be_kind_of Rev::InputOptions
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'has output file formats attribute' do
|
71
|
+
options = Rev::CaptionOptions.new([{}], {})
|
72
|
+
options.must_respond_to :output_file_formats
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'has output file formats hash' do
|
76
|
+
Rev::CaptionOptions::OUTPUT_FILE_FORMATS[:subrip].must_equal 'SubRip'
|
77
|
+
Rev::CaptionOptions::OUTPUT_FILE_FORMATS[:scc].must_equal 'Scc'
|
78
|
+
Rev::CaptionOptions::OUTPUT_FILE_FORMATS[:ttml].must_equal 'Ttml'
|
79
|
+
Rev::CaptionOptions::OUTPUT_FILE_FORMATS[:qttext].must_equal 'QTtext'
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'rejects unknowns file formats' do
|
83
|
+
proc { Rev::CaptionOptions.new([{}], { :output_file_formats => ['invalid'] }) }.must_raise ArgumentError
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'accepts valid file formats' do
|
87
|
+
order = Rev::CaptionOptions.new([{}], { :output_file_formats => [Rev::CaptionOptions::OUTPUT_FILE_FORMATS[:scc]] })
|
88
|
+
order.output_file_formats.length.must_equal 1
|
89
|
+
order.output_file_formats[0].must_equal Rev::CaptionOptions::OUTPUT_FILE_FORMATS[:scc];
|
90
|
+
end
|
91
|
+
end # CaptionOptions
|
92
|
+
end
|
93
|
+
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require_relative '../../../spec_helper'
|
2
|
+
|
3
|
+
describe 'Order' do
|
4
|
+
let(:cp_order) {
|
5
|
+
Rev::Order.new (
|
6
|
+
{ 'attachments' => { },
|
7
|
+
'comments' => {},
|
8
|
+
'caption' => { 'total_length' => 5 }
|
9
|
+
}
|
10
|
+
)
|
11
|
+
}
|
12
|
+
|
13
|
+
it 'has caption info' do
|
14
|
+
assert_respond_to cp_order, 'caption'
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'parses caption info' do
|
18
|
+
assert_kind_of Rev::CaptionInfo, cp_order.caption
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'has captions attachments' do
|
22
|
+
assert_respond_to cp_order, 'captions'
|
23
|
+
end
|
24
|
+
|
25
|
+
describe 'Attachments' do
|
26
|
+
describe 'REPRESENTATIONS' do
|
27
|
+
it 'has srt' do
|
28
|
+
Rev::Attachment::REPRESENTATIONS[:srt].must_equal 'application/x-subrip'
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'has scc' do
|
32
|
+
Rev::Attachment::REPRESENTATIONS[:scc].must_equal 'text/x-scc'
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'has ttml' do
|
36
|
+
Rev::Attachment::REPRESENTATIONS[:ttml].must_equal 'application/ttml+xml'
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'has qt' do
|
40
|
+
Rev::Attachment::REPRESENTATIONS[:qt].must_equal 'application/x-quicktime-timedtext'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe 'KINDS' do
|
45
|
+
it 'has caption' do
|
46
|
+
Rev::Attachment::KINDS[:caption].must_equal 'caption'
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end # Attachments
|
50
|
+
|
51
|
+
describe 'CaptionInfo' do
|
52
|
+
it 'has total_length' do
|
53
|
+
info = Rev::CaptionInfo.new({})
|
54
|
+
assert_respond_to info, 'total_length'
|
55
|
+
end
|
56
|
+
end # CaptionInfo
|
57
|
+
end
|
58
|
+
|
@@ -32,10 +32,17 @@ describe 'POST /orders' do
|
|
32
32
|
inputs = []
|
33
33
|
inputs << Rev::Input.new(:word_length => 1000, :uri => 'urn:foxtranslate:inputmedia:SnVwbG9hZHMvMjAxMy0wOS0xNy9lMzk4MWIzNS0wNzM1LTRlMDAtODY1NC1jNWY4ZjE4MzdlMTIvc291cmNlZG9jdW1lbnQucG5n')
|
34
34
|
}
|
35
|
+
let(:caption_inputs) {
|
36
|
+
inputs = []
|
37
|
+
inputs << Rev::Input.new(:external_link => 'http://www.youtube.com/watch?v=UF8uR6Z6KLc')
|
38
|
+
}
|
35
39
|
let(:transcription_options) { Rev::TranscriptionOptions.new(transcription_inputs,
|
36
40
|
:verbatim => true, :timestamps => true) }
|
37
41
|
let(:translation_options) { Rev::TranslationOptions.new(translation_inputs,
|
38
42
|
:source_language_code => 'es', :destination_language_code => 'en') }
|
43
|
+
let(:caption_options) {
|
44
|
+
Rev::CaptionOptions.new(caption_inputs, :output_file_formats => ['SubRip'])
|
45
|
+
}
|
39
46
|
|
40
47
|
it 'must submit order using Credit Card including all attributes' do
|
41
48
|
VCR.insert_cassette 'submit_tc_order_with_cc_and_all_attributes'
|
@@ -79,6 +86,7 @@ describe 'POST /orders' do
|
|
79
86
|
},
|
80
87
|
'client_ref' => 'XB432423',
|
81
88
|
'comment' => 'Please work quickly',
|
89
|
+
'priority' => Rev::OrderRequest::PRIORITY[:normal],
|
82
90
|
'notification' => {
|
83
91
|
'url' => 'http://www.example.com',
|
84
92
|
'level' => 'Detailed'
|
@@ -109,6 +117,7 @@ describe 'POST /orders' do
|
|
109
117
|
'saved_id' => 1
|
110
118
|
}
|
111
119
|
},
|
120
|
+
'priority' => Rev::OrderRequest::PRIORITY[:normal],
|
112
121
|
'transcription_options' => {
|
113
122
|
'inputs' => [
|
114
123
|
{ 'external_link' => 'http://www.youtube.com/watch?v=UF8uR6Z6KLc' },
|
@@ -140,6 +149,7 @@ describe 'POST /orders' do
|
|
140
149
|
'payment' => {
|
141
150
|
'type' => 'AccountBalance'
|
142
151
|
},
|
152
|
+
'priority' => Rev::OrderRequest::PRIORITY[:normal],
|
143
153
|
'transcription_options' => {
|
144
154
|
'inputs' => [
|
145
155
|
{ 'external_link' => 'http://www.youtube.com/watch?v=UF8uR6Z6KLc' },
|
@@ -170,7 +180,7 @@ describe 'POST /orders' do
|
|
170
180
|
exception.code.must_equal Rev::OrderRequestErrorCodes::TC_OR_TR_OPTIONS_NOT_SPECIFIED
|
171
181
|
end
|
172
182
|
|
173
|
-
it 'must submit translation order with
|
183
|
+
it 'must submit translation order with options' do
|
174
184
|
VCR.insert_cassette 'submit_tr_order'
|
175
185
|
|
176
186
|
request = Rev::OrderRequest.new(
|
@@ -185,6 +195,7 @@ describe 'POST /orders' do
|
|
185
195
|
'payment' => {
|
186
196
|
'type' => 'AccountBalance'
|
187
197
|
},
|
198
|
+
'priority' => Rev::OrderRequest::PRIORITY[:normal],
|
188
199
|
'translation_options' => {
|
189
200
|
'inputs'=> [
|
190
201
|
{ 'word_length' => 1000, 'uri' => 'urn:foxtranslate:inputmedia:SnVwbG9hZHMvMjAxMy0wOS0xNy9lMzk4MWIzNS0wNzM1LTRlMDAtODY1NC1jNWY4ZjE4MzdlMTIvc291cmNlZG9jdW1lbnQucG5n' },
|
@@ -199,6 +210,33 @@ describe 'POST /orders' do
|
|
199
210
|
actual_body.must_equal expected_body
|
200
211
|
end
|
201
212
|
end
|
213
|
+
|
214
|
+
it 'must submit caption order with options' do
|
215
|
+
VCR.insert_cassette 'submit_cp_order'
|
216
|
+
|
217
|
+
request = Rev::OrderRequest.new(balance_payment, :caption_options => caption_options)
|
218
|
+
|
219
|
+
new_order_num = client.submit_order(request)
|
220
|
+
|
221
|
+
new_order_num.must_equal 'CP12345'
|
222
|
+
expected_body = {
|
223
|
+
'payment' => {
|
224
|
+
'type' => 'AccountBalance'
|
225
|
+
},
|
226
|
+
'priority' => Rev::OrderRequest::PRIORITY[:normal],
|
227
|
+
'caption_options' => {
|
228
|
+
'inputs'=> [
|
229
|
+
{ 'external_link' => 'http://www.youtube.com/watch?v=UF8uR6Z6KLc' }
|
230
|
+
],
|
231
|
+
'output_file_formats' => [Rev::CaptionOptions::OUTPUT_FILE_FORMATS[:subrip]]
|
232
|
+
}
|
233
|
+
}
|
234
|
+
assert_requested(:post, /.*\/orders/, :times => 1) do |req|
|
235
|
+
req.headers['Content-Type'] == 'application/json'
|
236
|
+
actual_body = JSON.load req.body
|
237
|
+
actual_body.must_equal expected_body
|
238
|
+
end
|
239
|
+
end
|
202
240
|
|
203
241
|
after do
|
204
242
|
VCR.eject_cassette
|
metadata
CHANGED
@@ -1,142 +1,155 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rev-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Rev.com, Inc
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-30 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: httparty
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.11'
|
20
|
+
- - '>='
|
20
21
|
- !ruby/object:Gem::Version
|
21
22
|
version: 0.11.0
|
22
23
|
type: :runtime
|
23
24
|
prerelease: false
|
24
25
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.11'
|
30
|
+
- - '>='
|
28
31
|
- !ruby/object:Gem::Version
|
29
32
|
version: 0.11.0
|
30
33
|
- !ruby/object:Gem::Dependency
|
31
34
|
name: webmock
|
32
35
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
36
|
requirements:
|
37
|
+
- - ~>
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '1.11'
|
35
40
|
- - ~>
|
36
41
|
- !ruby/object:Gem::Version
|
37
42
|
version: 1.11.0
|
38
43
|
type: :development
|
39
44
|
prerelease: false
|
40
45
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
46
|
requirements:
|
47
|
+
- - ~>
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '1.11'
|
43
50
|
- - ~>
|
44
51
|
- !ruby/object:Gem::Version
|
45
52
|
version: 1.11.0
|
46
53
|
- !ruby/object:Gem::Dependency
|
47
54
|
name: vcr
|
48
55
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
56
|
requirements:
|
57
|
+
- - ~>
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '2.6'
|
51
60
|
- - ~>
|
52
61
|
- !ruby/object:Gem::Version
|
53
62
|
version: 2.6.0
|
54
63
|
type: :development
|
55
64
|
prerelease: false
|
56
65
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
66
|
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '2.6'
|
59
70
|
- - ~>
|
60
71
|
- !ruby/object:Gem::Version
|
61
72
|
version: 2.6.0
|
62
73
|
- !ruby/object:Gem::Dependency
|
63
74
|
name: turn
|
64
75
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
76
|
requirements:
|
77
|
+
- - ~>
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0.9'
|
67
80
|
- - ~>
|
68
81
|
- !ruby/object:Gem::Version
|
69
82
|
version: 0.9.6
|
70
83
|
type: :development
|
71
84
|
prerelease: false
|
72
85
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
86
|
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.9'
|
75
90
|
- - ~>
|
76
91
|
- !ruby/object:Gem::Version
|
77
92
|
version: 0.9.6
|
78
93
|
- !ruby/object:Gem::Dependency
|
79
94
|
name: rake
|
80
95
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
96
|
requirements:
|
83
|
-
- -
|
97
|
+
- - ~>
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '10.1'
|
100
|
+
- - '>='
|
84
101
|
- !ruby/object:Gem::Version
|
85
102
|
version: 10.1.0
|
86
103
|
type: :development
|
87
104
|
prerelease: false
|
88
105
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
106
|
requirements:
|
91
|
-
- -
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '10.1'
|
110
|
+
- - '>='
|
92
111
|
- !ruby/object:Gem::Version
|
93
112
|
version: 10.1.0
|
94
113
|
- !ruby/object:Gem::Dependency
|
95
114
|
name: yard
|
96
115
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
116
|
requirements:
|
99
|
-
- -
|
117
|
+
- - ~>
|
100
118
|
- !ruby/object:Gem::Version
|
101
119
|
version: '0'
|
102
120
|
type: :development
|
103
121
|
prerelease: false
|
104
122
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
123
|
requirements:
|
107
|
-
- -
|
124
|
+
- - ~>
|
108
125
|
- !ruby/object:Gem::Version
|
109
126
|
version: '0'
|
110
127
|
- !ruby/object:Gem::Dependency
|
111
128
|
name: redcarpet
|
112
129
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
130
|
requirements:
|
115
|
-
- -
|
131
|
+
- - '>='
|
116
132
|
- !ruby/object:Gem::Version
|
117
133
|
version: '0'
|
118
134
|
type: :development
|
119
135
|
prerelease: false
|
120
136
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
137
|
requirements:
|
123
|
-
- -
|
138
|
+
- - '>='
|
124
139
|
- !ruby/object:Gem::Version
|
125
140
|
version: '0'
|
126
141
|
- !ruby/object:Gem::Dependency
|
127
142
|
name: rubygems-tasks
|
128
143
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
144
|
requirements:
|
131
|
-
- -
|
145
|
+
- - ~>
|
132
146
|
- !ruby/object:Gem::Version
|
133
147
|
version: '0'
|
134
148
|
type: :development
|
135
149
|
prerelease: false
|
136
150
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
151
|
requirements:
|
139
|
-
- -
|
152
|
+
- - ~>
|
140
153
|
- !ruby/object:Gem::Version
|
141
154
|
version: '0'
|
142
155
|
description: Communicate with Rev.com API using plain Ruby objects without bothering
|
@@ -183,6 +196,7 @@ files:
|
|
183
196
|
- spec/fixtures/api_cassettes/link_input.yml
|
184
197
|
- spec/fixtures/api_cassettes/link_input_with_all_attributes.yml
|
185
198
|
- spec/fixtures/api_cassettes/not_found_order.yml
|
199
|
+
- spec/fixtures/api_cassettes/submit_cp_order.yml
|
186
200
|
- spec/fixtures/api_cassettes/submit_tc_order_with_account_balance.yml
|
187
201
|
- spec/fixtures/api_cassettes/submit_tc_order_with_cc_and_all_attributes.yml
|
188
202
|
- spec/fixtures/api_cassettes/submit_tc_order_with_invalid_request.yml
|
@@ -194,39 +208,41 @@ files:
|
|
194
208
|
- spec/fixtures/sourcedocument.png
|
195
209
|
- spec/lib/rev/api_spec.rb
|
196
210
|
- spec/lib/rev/cancel_order_spec.rb
|
211
|
+
- spec/lib/rev/exceptions_spec.rb
|
197
212
|
- spec/lib/rev/get_attachment_content_spec.rb
|
198
213
|
- spec/lib/rev/get_attachment_metadata_spec.rb
|
199
214
|
- spec/lib/rev/get_order_spec.rb
|
200
215
|
- spec/lib/rev/get_orders_spec.rb
|
201
216
|
- spec/lib/rev/http_client_spec.rb
|
217
|
+
- spec/lib/rev/models/order_request_spec.rb
|
218
|
+
- spec/lib/rev/models/order_spec.rb
|
202
219
|
- spec/lib/rev/post_inputs_spec.rb
|
203
220
|
- spec/lib/rev/post_order_spec.rb
|
204
221
|
- spec/spec_helper.rb
|
205
222
|
homepage: http://www.rev.com/api
|
206
223
|
licenses:
|
207
224
|
- Apache License 2.0
|
225
|
+
metadata: {}
|
208
226
|
post_install_message:
|
209
227
|
rdoc_options: []
|
210
228
|
require_paths:
|
211
229
|
- lib
|
212
230
|
- spec
|
213
231
|
required_ruby_version: !ruby/object:Gem::Requirement
|
214
|
-
none: false
|
215
232
|
requirements:
|
216
|
-
- -
|
233
|
+
- - '>='
|
217
234
|
- !ruby/object:Gem::Version
|
218
235
|
version: 1.9.3
|
219
236
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
220
|
-
none: false
|
221
237
|
requirements:
|
222
|
-
- -
|
238
|
+
- - '>='
|
223
239
|
- !ruby/object:Gem::Version
|
224
240
|
version: '0'
|
225
241
|
requirements: []
|
226
242
|
rubyforge_project:
|
227
|
-
rubygems_version:
|
243
|
+
rubygems_version: 2.0.6
|
228
244
|
signing_key:
|
229
|
-
specification_version:
|
245
|
+
specification_version: 4
|
230
246
|
summary: Ruby wrapper for Rev.com API
|
231
247
|
test_files:
|
232
248
|
- spec/fixtures/api_cassettes/cancel_order.yml
|
@@ -246,6 +262,7 @@ test_files:
|
|
246
262
|
- spec/fixtures/api_cassettes/link_input.yml
|
247
263
|
- spec/fixtures/api_cassettes/link_input_with_all_attributes.yml
|
248
264
|
- spec/fixtures/api_cassettes/not_found_order.yml
|
265
|
+
- spec/fixtures/api_cassettes/submit_cp_order.yml
|
249
266
|
- spec/fixtures/api_cassettes/submit_tc_order_with_account_balance.yml
|
250
267
|
- spec/fixtures/api_cassettes/submit_tc_order_with_cc_and_all_attributes.yml
|
251
268
|
- spec/fixtures/api_cassettes/submit_tc_order_with_invalid_request.yml
|
@@ -257,11 +274,15 @@ test_files:
|
|
257
274
|
- spec/fixtures/sourcedocument.png
|
258
275
|
- spec/lib/rev/api_spec.rb
|
259
276
|
- spec/lib/rev/cancel_order_spec.rb
|
277
|
+
- spec/lib/rev/exceptions_spec.rb
|
260
278
|
- spec/lib/rev/get_attachment_content_spec.rb
|
261
279
|
- spec/lib/rev/get_attachment_metadata_spec.rb
|
262
280
|
- spec/lib/rev/get_order_spec.rb
|
263
281
|
- spec/lib/rev/get_orders_spec.rb
|
264
282
|
- spec/lib/rev/http_client_spec.rb
|
283
|
+
- spec/lib/rev/models/order_request_spec.rb
|
284
|
+
- spec/lib/rev/models/order_spec.rb
|
265
285
|
- spec/lib/rev/post_inputs_spec.rb
|
266
286
|
- spec/lib/rev/post_order_spec.rb
|
267
287
|
- spec/spec_helper.rb
|
288
|
+
has_rdoc: yard
|