docraptor 1.3.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +5 -1
- data/.swagger-codegen/VERSION +1 -1
- data/.swagger-revision +1 -1
- data/CHANGELOG.md +4 -0
- data/Gemfile +1 -1
- data/docraptor.gemspec +6 -6
- data/docraptor.yaml +112 -18
- data/examples/hosted_async.rb +75 -0
- data/examples/hosted_sync.rb +62 -0
- data/lib/docraptor.rb +4 -4
- data/lib/docraptor/api/doc_api.rb +173 -36
- data/lib/docraptor/api_client.rb +14 -12
- data/lib/docraptor/api_error.rb +3 -3
- data/lib/docraptor/configuration.rb +4 -4
- data/lib/docraptor/models/async_doc.rb +11 -15
- data/lib/docraptor/models/doc.rb +51 -36
- data/lib/docraptor/models/{async_doc_status.rb → doc_status.rb} +12 -16
- data/lib/docraptor/models/prince_options.rb +15 -18
- data/lib/docraptor/version.rb +4 -4
- data/script/fix_gemspec.rb +3 -2
- data/script/swagger +6 -1
- data/spec/api_client_spec.rb +55 -38
- data/spec/configuration_spec.rb +12 -12
- data/spec/spec_helper.rb +4 -4
- data/swagger-config.json +1 -1
- data/test/async.rb +11 -2
- data/test/expire_hosted.rb +50 -0
- data/test/hosted_async.rb +34 -0
- data/test/hosted_sync.rb +33 -0
- data/test/sync.rb +10 -2
- data/test/xlsx.rb +10 -2
- metadata +27 -30
- data/spec/api/doc_api_spec.rb +0 -83
- data/spec/models/async_doc_spec.rb +0 -42
- data/spec/models/async_doc_status_spec.rb +0 -72
- data/spec/models/doc_spec.rb +0 -128
- data/spec/models/prince_options_spec.rb +0 -214
data/test/async.rb
CHANGED
@@ -8,10 +8,12 @@ end
|
|
8
8
|
|
9
9
|
$docraptor = DocRaptor::DocApi.new
|
10
10
|
|
11
|
+
output_file = "ruby-async.pdf"
|
12
|
+
|
11
13
|
create_response = $docraptor.create_async_doc(
|
12
14
|
test: true,
|
13
15
|
document_content: "<html><body>Hello from Ruby</body></html>",
|
14
|
-
name:
|
16
|
+
name: output_file,
|
15
17
|
document_type: "pdf",
|
16
18
|
)
|
17
19
|
|
@@ -22,4 +24,11 @@ status_response = nil
|
|
22
24
|
sleep 1
|
23
25
|
end
|
24
26
|
|
25
|
-
$docraptor.get_async_doc(status_response.download_id)
|
27
|
+
output_payload = $docraptor.get_async_doc(status_response.download_id)
|
28
|
+
|
29
|
+
File.write(output_file, output_payload)
|
30
|
+
output_type = `file -b #{output_file}`
|
31
|
+
File.delete output_file
|
32
|
+
|
33
|
+
raise "Output was not a PDF" unless output_type.start_with?("PDF")
|
34
|
+
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require "bundler/setup"
|
2
|
+
Bundler.require
|
3
|
+
require 'open-uri'
|
4
|
+
|
5
|
+
api_key = File.read("#{__dir__}/../.docraptor_key").strip
|
6
|
+
unless api_key
|
7
|
+
raise "Please put a valid (paid plan) api key in the .docraptor_key file when testing this feature."
|
8
|
+
end
|
9
|
+
|
10
|
+
DocRaptor.configure do |dr|
|
11
|
+
dr.username = api_key
|
12
|
+
# dr.debugging = true
|
13
|
+
end
|
14
|
+
|
15
|
+
$docraptor = DocRaptor::DocApi.new
|
16
|
+
|
17
|
+
output_file = "expire-hosted-ruby-sync.pdf"
|
18
|
+
|
19
|
+
output_payload = $docraptor.create_hosted_async_doc(
|
20
|
+
test: true,
|
21
|
+
document_content: "<html><body>Hello from Ruby</body></html>",
|
22
|
+
name: output_file,
|
23
|
+
document_type: "pdf",
|
24
|
+
hosted_expires_at: (Time.now + 86400).strftime('%FT%T%:z'), # 1 day from now
|
25
|
+
)
|
26
|
+
|
27
|
+
status_response = nil
|
28
|
+
30.times do
|
29
|
+
status_response = $docraptor.get_async_doc_status(output_payload.status_id)
|
30
|
+
break if status_response.status == "completed"
|
31
|
+
sleep 1
|
32
|
+
end
|
33
|
+
|
34
|
+
actual_document = open status_response.download_url
|
35
|
+
IO.copy_stream(actual_document, output_file)
|
36
|
+
|
37
|
+
output_type = `file -b #{output_file}`
|
38
|
+
File.delete output_file
|
39
|
+
|
40
|
+
raise "Output was not a PDF" unless output_type.start_with?("PDF")
|
41
|
+
|
42
|
+
$docraptor.expire(status_response.download_id)
|
43
|
+
|
44
|
+
begin
|
45
|
+
actual_document = open status_response.download_url
|
46
|
+
rescue OpenURI::HTTPError => http_error
|
47
|
+
exit 0
|
48
|
+
end
|
49
|
+
|
50
|
+
exit 1
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require "bundler/setup"
|
2
|
+
Bundler.require
|
3
|
+
require "open-uri"
|
4
|
+
|
5
|
+
api_key = File.read("#{__dir__}/../.docraptor_key").strip
|
6
|
+
unless api_key
|
7
|
+
raise "Please put a valid (paid plan) api key in the .docraptor_key file when testing this feature."
|
8
|
+
end
|
9
|
+
|
10
|
+
DocRaptor.configure do |dr|
|
11
|
+
dr.username = api_key
|
12
|
+
# dr.debugging = true
|
13
|
+
end
|
14
|
+
|
15
|
+
$docraptor = DocRaptor::DocApi.new
|
16
|
+
|
17
|
+
output_file = "hosted-ruby-sync.pdf"
|
18
|
+
|
19
|
+
output_payload = $docraptor.create_hosted_async_doc(
|
20
|
+
test: true,
|
21
|
+
document_content: "<html><body>Hello from Ruby</body></html>",
|
22
|
+
name: output_file,
|
23
|
+
document_type: "pdf",
|
24
|
+
hosted_expires_at: (Time.now + 86400).strftime('%FT%T%:z'), # 1 day from now
|
25
|
+
)
|
26
|
+
|
27
|
+
status_response = nil
|
28
|
+
30.times do
|
29
|
+
status_response = $docraptor.get_async_doc_status(output_payload.status_id)
|
30
|
+
break if status_response.status == "completed"
|
31
|
+
sleep 1
|
32
|
+
end
|
33
|
+
|
34
|
+
|
data/test/hosted_sync.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require "bundler/setup"
|
2
|
+
Bundler.require
|
3
|
+
require "open-uri"
|
4
|
+
|
5
|
+
api_key = File.read("#{__dir__}/../.docraptor_key").strip
|
6
|
+
unless api_key
|
7
|
+
raise "Please put a valid (paid plan) api key in the .docraptor_key file when testing this feature."
|
8
|
+
end
|
9
|
+
|
10
|
+
DocRaptor.configure do |dr|
|
11
|
+
dr.username = api_key
|
12
|
+
# dr.debugging = true
|
13
|
+
end
|
14
|
+
|
15
|
+
$docraptor = DocRaptor::DocApi.new
|
16
|
+
|
17
|
+
output_file = "hosted-ruby-sync.pdf"
|
18
|
+
|
19
|
+
output_payload = $docraptor.create_hosted_doc(
|
20
|
+
test: true,
|
21
|
+
document_content: "<html><body>Hello from Ruby</body></html>",
|
22
|
+
name: output_file,
|
23
|
+
document_type: "pdf",
|
24
|
+
hosted_expires_at: (Time.now + 86400).strftime('%FT%T%:z'), # 1 day from now
|
25
|
+
)
|
26
|
+
|
27
|
+
actual_document = open output_payload.download_url
|
28
|
+
IO.copy_stream(actual_document, output_file)
|
29
|
+
|
30
|
+
output_type = `file -b #{output_file}`
|
31
|
+
File.delete output_file
|
32
|
+
|
33
|
+
raise "Output was not a PDF" unless output_type.start_with?("PDF")
|
data/test/sync.rb
CHANGED
@@ -8,9 +8,17 @@ end
|
|
8
8
|
|
9
9
|
$docraptor = DocRaptor::DocApi.new
|
10
10
|
|
11
|
-
|
11
|
+
output_file = "ruby-sync.pdf"
|
12
|
+
|
13
|
+
output_payload = $docraptor.create_doc(
|
12
14
|
test: true,
|
13
15
|
document_content: "<html><body>Hello from Ruby</body></html>",
|
14
|
-
name:
|
16
|
+
name: output_file,
|
15
17
|
document_type: "pdf",
|
16
18
|
)
|
19
|
+
|
20
|
+
File.write(output_file, output_payload)
|
21
|
+
output_type = `file -b #{output_file}`
|
22
|
+
File.delete output_file
|
23
|
+
|
24
|
+
raise "Output was not a PDF" unless output_type.start_with?("PDF")
|
data/test/xlsx.rb
CHANGED
@@ -8,9 +8,17 @@ end
|
|
8
8
|
|
9
9
|
$docraptor = DocRaptor::DocApi.new
|
10
10
|
|
11
|
-
|
11
|
+
output_file = "ruby-xlsx.xlsx"
|
12
|
+
|
13
|
+
output_payload = $docraptor.create_doc(
|
12
14
|
test: true,
|
13
15
|
document_content: "<html><body><table><tr><td>Hello from Ruby</td></tr></table></body></html>",
|
14
|
-
name:
|
16
|
+
name: output_file,
|
15
17
|
document_type: "xlsx",
|
16
18
|
)
|
19
|
+
|
20
|
+
File.write(output_file, output_payload)
|
21
|
+
output_type = `file -b #{output_file}`
|
22
|
+
File.delete output_file
|
23
|
+
|
24
|
+
raise "Output was not an XLSX (zip)" unless output_type.start_with?("Zip")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docraptor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Expected Behavior
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typhoeus
|
@@ -34,42 +34,42 @@ dependencies:
|
|
34
34
|
name: json
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '2.1'
|
40
37
|
- - ">="
|
41
38
|
- !ruby/object:Gem::Version
|
42
39
|
version: 2.1.0
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '2.1'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '2.1'
|
50
47
|
- - ">="
|
51
48
|
- !ruby/object:Gem::Version
|
52
49
|
version: 2.1.0
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '2.1'
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: rspec
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- - "~>"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '3.6'
|
60
57
|
- - ">="
|
61
58
|
- !ruby/object:Gem::Version
|
62
59
|
version: 3.6.0
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '3.6'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '3.6'
|
70
67
|
- - ">="
|
71
68
|
- !ruby/object:Gem::Version
|
72
69
|
version: 3.6.0
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '3.6'
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: vcr
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -250,6 +250,8 @@ files:
|
|
250
250
|
- docraptor.gemspec
|
251
251
|
- docraptor.yaml
|
252
252
|
- examples/async.rb
|
253
|
+
- examples/hosted_async.rb
|
254
|
+
- examples/hosted_sync.rb
|
253
255
|
- examples/sync.rb
|
254
256
|
- lib/docraptor.rb
|
255
257
|
- lib/docraptor/api/doc_api.rb
|
@@ -257,8 +259,8 @@ files:
|
|
257
259
|
- lib/docraptor/api_error.rb
|
258
260
|
- lib/docraptor/configuration.rb
|
259
261
|
- lib/docraptor/models/async_doc.rb
|
260
|
-
- lib/docraptor/models/async_doc_status.rb
|
261
262
|
- lib/docraptor/models/doc.rb
|
263
|
+
- lib/docraptor/models/doc_status.rb
|
262
264
|
- lib/docraptor/models/prince_options.rb
|
263
265
|
- lib/docraptor/version.rb
|
264
266
|
- script/clean
|
@@ -268,16 +270,14 @@ files:
|
|
268
270
|
- script/swagger
|
269
271
|
- script/test
|
270
272
|
- script/update_from_upstream
|
271
|
-
- spec/api/doc_api_spec.rb
|
272
273
|
- spec/api_client_spec.rb
|
273
274
|
- spec/configuration_spec.rb
|
274
|
-
- spec/models/async_doc_spec.rb
|
275
|
-
- spec/models/async_doc_status_spec.rb
|
276
|
-
- spec/models/doc_spec.rb
|
277
|
-
- spec/models/prince_options_spec.rb
|
278
275
|
- spec/spec_helper.rb
|
279
276
|
- swagger-config.json
|
280
277
|
- test/async.rb
|
278
|
+
- test/expire_hosted.rb
|
279
|
+
- test/hosted_async.rb
|
280
|
+
- test/hosted_sync.rb
|
281
281
|
- test/invalid_async.rb
|
282
282
|
- test/invalid_sync.rb
|
283
283
|
- test/sync.rb
|
@@ -286,7 +286,7 @@ homepage: https://github.com/docraptor/docraptor-ruby
|
|
286
286
|
licenses:
|
287
287
|
- MIT
|
288
288
|
metadata: {}
|
289
|
-
post_install_message:
|
289
|
+
post_install_message:
|
290
290
|
rdoc_options: []
|
291
291
|
require_paths:
|
292
292
|
- lib
|
@@ -301,21 +301,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
301
301
|
- !ruby/object:Gem::Version
|
302
302
|
version: '0'
|
303
303
|
requirements: []
|
304
|
-
|
305
|
-
|
306
|
-
signing_key:
|
304
|
+
rubygems_version: 3.0.3
|
305
|
+
signing_key:
|
307
306
|
specification_version: 4
|
308
307
|
summary: A wrapper for the DocRaptor HTML to PDF/XLS service.
|
309
308
|
test_files:
|
310
|
-
- spec/api/doc_api_spec.rb
|
311
309
|
- spec/api_client_spec.rb
|
312
310
|
- spec/configuration_spec.rb
|
313
|
-
- spec/models/async_doc_spec.rb
|
314
|
-
- spec/models/async_doc_status_spec.rb
|
315
|
-
- spec/models/doc_spec.rb
|
316
|
-
- spec/models/prince_options_spec.rb
|
317
311
|
- spec/spec_helper.rb
|
318
312
|
- test/async.rb
|
313
|
+
- test/expire_hosted.rb
|
314
|
+
- test/hosted_async.rb
|
315
|
+
- test/hosted_sync.rb
|
319
316
|
- test/invalid_async.rb
|
320
317
|
- test/invalid_sync.rb
|
321
318
|
- test/sync.rb
|
data/spec/api/doc_api_spec.rb
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
#DocRaptor v1
|
3
|
-
|
4
|
-
#No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
|
5
|
-
|
6
|
-
OpenAPI spec version: 1.2.0
|
7
|
-
|
8
|
-
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
9
|
-
Swagger Codegen version: 2.2.3
|
10
|
-
|
11
|
-
=end
|
12
|
-
|
13
|
-
require 'spec_helper'
|
14
|
-
require 'json'
|
15
|
-
|
16
|
-
# Unit tests for DocRaptor::DocApi
|
17
|
-
# Automatically generated by swagger-codegen (github.com/swagger-api/swagger-codegen)
|
18
|
-
# Please update as you see appropriate
|
19
|
-
describe 'DocApi' do
|
20
|
-
before do
|
21
|
-
# run before each test
|
22
|
-
@instance = DocRaptor::DocApi.new
|
23
|
-
end
|
24
|
-
|
25
|
-
after do
|
26
|
-
# run after each test
|
27
|
-
end
|
28
|
-
|
29
|
-
describe 'test an instance of DocApi' do
|
30
|
-
it 'should create an instance of DocApi' do
|
31
|
-
expect(@instance).to be_instance_of(DocRaptor::DocApi)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# unit tests for create_async_doc
|
36
|
-
#
|
37
|
-
# Creates a document asynchronously. You must use a callback url or the the returned status id and the status api to find out when it completes. Then use the download api to get the document.
|
38
|
-
# @param doc The document to be created.
|
39
|
-
# @param [Hash] opts the optional parameters
|
40
|
-
# @return [AsyncDoc]
|
41
|
-
describe 'create_async_doc test' do
|
42
|
-
it "should work" do
|
43
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
# unit tests for create_doc
|
48
|
-
#
|
49
|
-
# Creates a document synchronously.
|
50
|
-
# @param doc The document to be created.
|
51
|
-
# @param [Hash] opts the optional parameters
|
52
|
-
# @return [String]
|
53
|
-
describe 'create_doc test' do
|
54
|
-
it "should work" do
|
55
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
# unit tests for get_async_doc
|
60
|
-
#
|
61
|
-
# Downloads a document.
|
62
|
-
# @param id The download_id returned from status request or a callback.
|
63
|
-
# @param [Hash] opts the optional parameters
|
64
|
-
# @return [String]
|
65
|
-
describe 'get_async_doc test' do
|
66
|
-
it "should work" do
|
67
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
# unit tests for get_async_doc_status
|
72
|
-
#
|
73
|
-
# Check on the status of an asynchronously created document.
|
74
|
-
# @param id The status_id returned when creating an asynchronous document.
|
75
|
-
# @param [Hash] opts the optional parameters
|
76
|
-
# @return [AsyncDocStatus]
|
77
|
-
describe 'get_async_doc_status test' do
|
78
|
-
it "should work" do
|
79
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
#DocRaptor v1
|
3
|
-
|
4
|
-
#No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
|
5
|
-
|
6
|
-
OpenAPI spec version: 1.2.0
|
7
|
-
|
8
|
-
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
9
|
-
Swagger Codegen version: 2.2.3
|
10
|
-
|
11
|
-
=end
|
12
|
-
|
13
|
-
require 'spec_helper'
|
14
|
-
require 'json'
|
15
|
-
require 'date'
|
16
|
-
|
17
|
-
# Unit tests for DocRaptor::AsyncDoc
|
18
|
-
# Automatically generated by swagger-codegen (github.com/swagger-api/swagger-codegen)
|
19
|
-
# Please update as you see appropriate
|
20
|
-
describe 'AsyncDoc' do
|
21
|
-
before do
|
22
|
-
# run before each test
|
23
|
-
@instance = DocRaptor::AsyncDoc.new
|
24
|
-
end
|
25
|
-
|
26
|
-
after do
|
27
|
-
# run after each test
|
28
|
-
end
|
29
|
-
|
30
|
-
describe 'test an instance of AsyncDoc' do
|
31
|
-
it 'should create an instance of AsyncDoc' do
|
32
|
-
expect(@instance).to be_instance_of(DocRaptor::AsyncDoc)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
describe 'test attribute "status_id"' do
|
36
|
-
it 'should work' do
|
37
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
|