docraptor 0.1.0 → 0.2.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/CHANGELOG.md +3 -0
- data/README.md +13 -9
- data/docraptor.gemspec +1 -0
- data/docraptor.yaml +14 -14
- data/examples/async.rb +1 -1
- data/examples/sync.rb +1 -1
- data/lib/docraptor.rb +1 -1
- data/lib/docraptor/api/{client_api.rb → doc_api.rb} +11 -19
- data/lib/docraptor/api_client.rb +2 -1
- data/lib/docraptor/models/doc.rb +3 -3
- data/lib/docraptor/version.rb +1 -1
- data/script/swagger +1 -1
- data/swagger-config.json +1 -1
- data/test/async.rb +1 -1
- data/test/invalid_async.rb +1 -1
- data/test/invalid_sync.rb +1 -1
- data/test/sync.rb +1 -1
- data/test/xlsx.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a54ab8664324ce2f630ba8a0838b7bd15c99c19
|
4
|
+
data.tar.gz: b24824eb919e02bad8ba05790e1c4423a1158dfb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 08e853b7a0eb1bb0ef8d7b2e390556ff786993e09b9579a397d15a4050f3823cf19e428b657ff87066153150970cfcf28bf7f86fc268f2bc41dd1e379919edff
|
7
|
+
data.tar.gz: 116c4516a5342d4d3f3556c2d0cbf5b6e5717239bf5c5919958b81368dcbff640ad10e8408000eaf90c6c5c4f494ec6c6c1a52c1155e3bc364624265d30da949
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
# DocRaptor Ruby Native Client Library
|
2
2
|
|
3
|
-
**WARNING: This code is not production ready, you should use [doc_raptor_gem](https://github.com/expectedbehavior/doc_raptor_gem).**
|
4
|
-
|
5
3
|
This is a Ruby gem for using [DocRaptor API](http://docraptor.com/documentation) to convert HTML to PDF and XLSX.
|
6
4
|
|
5
|
+
|
7
6
|
## Installation
|
8
7
|
|
9
8
|
Add the following to your `Gemfile`.
|
@@ -12,7 +11,12 @@ Add the following to your `Gemfile`.
|
|
12
11
|
gem "docraptor"
|
13
12
|
```
|
14
13
|
|
15
|
-
Then run
|
14
|
+
Then run:
|
15
|
+
|
16
|
+
```bash
|
17
|
+
bundle install
|
18
|
+
```
|
19
|
+
|
16
20
|
|
17
21
|
## Usage
|
18
22
|
|
@@ -24,7 +28,7 @@ DocRaptor.configure do |dr|
|
|
24
28
|
# dr.debugging = true
|
25
29
|
end
|
26
30
|
|
27
|
-
$docraptor = DocRaptor::
|
31
|
+
$docraptor = DocRaptor::DocApi.new
|
28
32
|
|
29
33
|
response = $docraptor.create_doc(
|
30
34
|
test: true, # test documents are free but watermarked
|
@@ -42,12 +46,13 @@ response = $docraptor.create_doc(
|
|
42
46
|
|
43
47
|
Docs created like this are limited to 60 seconds to render, check out the [async example](examples/async.rb) which allows 10 minutes.
|
44
48
|
|
45
|
-
|
46
49
|
We have guides for doing some of the common things:
|
50
|
+
|
47
51
|
* [Headers and Footers](https://docraptor.com/documentation/style#pdf-headers-footers) including page skipping
|
48
52
|
* [CSS Media Selector](https://docraptor.com/documentation/api#api_basic_pdf) to make the page look exactly as it does in your browser
|
49
53
|
* [Protected Content](https://docraptor.com/documentation/api#api_advanced_pdf) to secure your URLs so only DocRaptor can access them
|
50
54
|
|
55
|
+
|
51
56
|
## More Help
|
52
57
|
|
53
58
|
DocRaptor has a lot of more [styling](https://docraptor.com/documentation/style) and [implementation options](https://docraptor.com/documentation/api).
|
@@ -59,18 +64,17 @@ Stuck? We're experts at using DocRaptor so please [email us](mailto:support@docr
|
|
59
64
|
|
60
65
|
The majority of the code in this repo is generated using swagger-codegen on [docraptor.yaml](docraptor.yaml). You can modify this file and regenerate the client using `script/generate_language ruby`.
|
61
66
|
|
62
|
-
The generated client needed a few fixes
|
63
|
-
- binary string response code generated from https://github.com/swagger-api/swagger-codegen/pull/1934
|
64
|
-
|
65
67
|
|
66
68
|
## Release Process
|
67
69
|
|
68
70
|
1. `script/test`
|
69
71
|
2. Increment version in code:
|
70
72
|
- `swagger-config.json`
|
71
|
-
- `docraptor.
|
73
|
+
- `lib/docraptor/version.rb`
|
72
74
|
3. Update [CHANGELOG.md](CHANGELOG.md)
|
73
75
|
4. `rake release`
|
76
|
+
5. Update documentation on docraptor.com
|
77
|
+
|
74
78
|
|
75
79
|
## Version Policy
|
76
80
|
|
data/docraptor.gemspec
CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.add_development_dependency 'autotest-fsevent', '~> 0.2', '>= 0.2.11'
|
28
28
|
|
29
29
|
s.files = `git ls-files`.split("\n").uniq.sort.select{|f| !f.empty? }
|
30
|
+
# s.test_files = `git ls-files spec`.split("\n")
|
30
31
|
s.executables = []
|
31
32
|
s.require_paths = ["lib"]
|
32
33
|
end
|
data/docraptor.yaml
CHANGED
@@ -10,7 +10,7 @@ schemes: [https]
|
|
10
10
|
securityDefinitions:
|
11
11
|
basicAuth:
|
12
12
|
type: basic
|
13
|
-
description:
|
13
|
+
description: Use your API key as the username. Password does not need to be set.
|
14
14
|
produces:
|
15
15
|
- application/json
|
16
16
|
- application/xml
|
@@ -22,8 +22,8 @@ paths:
|
|
22
22
|
/docs:
|
23
23
|
post:
|
24
24
|
operationId: createDoc
|
25
|
-
tags: [
|
26
|
-
description:
|
25
|
+
tags: [Doc]
|
26
|
+
description: >
|
27
27
|
Creates a document synchronously.
|
28
28
|
security:
|
29
29
|
- basicAuth: []
|
@@ -53,10 +53,11 @@ paths:
|
|
53
53
|
/async_docs:
|
54
54
|
post:
|
55
55
|
operationId: createAsyncDoc
|
56
|
-
tags: [
|
57
|
-
description:
|
56
|
+
tags: [Doc]
|
57
|
+
description: >
|
58
58
|
Creates a document asynchronously.
|
59
|
-
You must use a callback url or the the returned status id and the status api to find out when it completes.
|
59
|
+
You must use a callback url or the the returned status id and the status api to find out when it completes.
|
60
|
+
Then use the download api to get the document.
|
60
61
|
security:
|
61
62
|
- basicAuth: []
|
62
63
|
parameters:
|
@@ -85,8 +86,8 @@ paths:
|
|
85
86
|
/status/{id}:
|
86
87
|
get:
|
87
88
|
operationId: getAsyncDocStatus
|
88
|
-
tags: [
|
89
|
-
description:
|
89
|
+
tags: [Doc]
|
90
|
+
description: >
|
90
91
|
Check on the status of an asynchronously created document.
|
91
92
|
security:
|
92
93
|
- basicAuth: []
|
@@ -109,12 +110,11 @@ paths:
|
|
109
110
|
500:
|
110
111
|
description: Server Error
|
111
112
|
|
112
|
-
|
113
113
|
/download/{id}:
|
114
114
|
get:
|
115
115
|
operationId: getAsyncDoc
|
116
|
-
tags: [
|
117
|
-
description:
|
116
|
+
tags: [Doc]
|
117
|
+
description: >
|
118
118
|
Downloads a document.
|
119
119
|
security:
|
120
120
|
- basicAuth: []
|
@@ -156,12 +156,12 @@ definitions:
|
|
156
156
|
- xlsx
|
157
157
|
document_content:
|
158
158
|
type: string
|
159
|
-
description:
|
159
|
+
description: >
|
160
160
|
The HTML data to be transformed into a document.
|
161
161
|
You must supply content using document_content or document_url.
|
162
162
|
document_url:
|
163
163
|
type: string
|
164
|
-
description:
|
164
|
+
description: >
|
165
165
|
The URL to fetch the HTML data to be transformed into a document.
|
166
166
|
You must supply content using document_content or document_url.
|
167
167
|
test:
|
@@ -195,7 +195,7 @@ definitions:
|
|
195
195
|
description: Set HTTP referrer when generating this document.
|
196
196
|
callback_url:
|
197
197
|
type: string
|
198
|
-
description:
|
198
|
+
description: >
|
199
199
|
A URL that will receive a POST request after successfully completing an asynchronous document.
|
200
200
|
The POST data will include download_url and download_id similar to status api responses.
|
201
201
|
WARNING: this only works on asynchronous documents.
|
data/examples/async.rb
CHANGED
data/examples/sync.rb
CHANGED
data/lib/docraptor.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require "uri"
|
2
2
|
|
3
3
|
module DocRaptor
|
4
|
-
class
|
4
|
+
class DocApi
|
5
5
|
attr_accessor :api_client
|
6
6
|
|
7
7
|
def initialize(api_client = ApiClient.default)
|
@@ -9,7 +9,7 @@ module DocRaptor
|
|
9
9
|
end
|
10
10
|
|
11
11
|
#
|
12
|
-
# Creates a document asynchronously
|
12
|
+
# 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.
|
13
13
|
# @param doc The document to be created.
|
14
14
|
# @param [Hash] opts the optional parameters
|
15
15
|
# @return [AsyncDoc]
|
@@ -19,13 +19,13 @@ module DocRaptor
|
|
19
19
|
end
|
20
20
|
|
21
21
|
#
|
22
|
-
# Creates a document asynchronously
|
22
|
+
# 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.
|
23
23
|
# @param doc The document to be created.
|
24
24
|
# @param [Hash] opts the optional parameters
|
25
25
|
# @return [Array<(AsyncDoc, Fixnum, Hash)>] AsyncDoc data, response status code and response headers
|
26
26
|
def create_async_doc_with_http_info(doc, opts = {})
|
27
27
|
if @api_client.config.debugging
|
28
|
-
@api_client.config.logger.debug "Calling API:
|
28
|
+
@api_client.config.logger.debug "Calling API: DocApi#create_async_doc ..."
|
29
29
|
end
|
30
30
|
|
31
31
|
# verify the required parameter 'doc' is set
|
@@ -54,7 +54,6 @@ module DocRaptor
|
|
54
54
|
# http body (model)
|
55
55
|
post_body = @api_client.object_to_http_body(doc)
|
56
56
|
|
57
|
-
|
58
57
|
auth_names = ['basicAuth']
|
59
58
|
data, status_code, headers = @api_client.call_api(:POST, path,
|
60
59
|
:header_params => header_params,
|
@@ -64,7 +63,7 @@ module DocRaptor
|
|
64
63
|
:auth_names => auth_names,
|
65
64
|
:return_type => 'AsyncDoc')
|
66
65
|
if @api_client.config.debugging
|
67
|
-
@api_client.config.logger.debug "API called:
|
66
|
+
@api_client.config.logger.debug "API called: DocApi#create_async_doc\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
68
67
|
end
|
69
68
|
return data, status_code, headers
|
70
69
|
end
|
@@ -86,7 +85,7 @@ module DocRaptor
|
|
86
85
|
# @return [Array<(String, Fixnum, Hash)>] String data, response status code and response headers
|
87
86
|
def create_doc_with_http_info(doc, opts = {})
|
88
87
|
if @api_client.config.debugging
|
89
|
-
@api_client.config.logger.debug "Calling API:
|
88
|
+
@api_client.config.logger.debug "Calling API: DocApi#create_doc ..."
|
90
89
|
end
|
91
90
|
|
92
91
|
# verify the required parameter 'doc' is set
|
@@ -115,7 +114,6 @@ module DocRaptor
|
|
115
114
|
# http body (model)
|
116
115
|
post_body = @api_client.object_to_http_body(doc)
|
117
116
|
|
118
|
-
|
119
117
|
auth_names = ['basicAuth']
|
120
118
|
data, status_code, headers = @api_client.call_api(:POST, path,
|
121
119
|
:header_params => header_params,
|
@@ -125,7 +123,7 @@ module DocRaptor
|
|
125
123
|
:auth_names => auth_names,
|
126
124
|
:return_type => 'String')
|
127
125
|
if @api_client.config.debugging
|
128
|
-
@api_client.config.logger.debug "API called:
|
126
|
+
@api_client.config.logger.debug "API called: DocApi#create_doc\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
129
127
|
end
|
130
128
|
return data, status_code, headers
|
131
129
|
end
|
@@ -147,7 +145,7 @@ module DocRaptor
|
|
147
145
|
# @return [Array<(String, Fixnum, Hash)>] String data, response status code and response headers
|
148
146
|
def get_async_doc_with_http_info(id, opts = {})
|
149
147
|
if @api_client.config.debugging
|
150
|
-
@api_client.config.logger.debug "Calling API:
|
148
|
+
@api_client.config.logger.debug "Calling API: DocApi#get_async_doc ..."
|
151
149
|
end
|
152
150
|
|
153
151
|
# verify the required parameter 'id' is set
|
@@ -176,7 +174,6 @@ module DocRaptor
|
|
176
174
|
# http body (model)
|
177
175
|
post_body = nil
|
178
176
|
|
179
|
-
|
180
177
|
auth_names = ['basicAuth']
|
181
178
|
data, status_code, headers = @api_client.call_api(:GET, path,
|
182
179
|
:header_params => header_params,
|
@@ -186,7 +183,7 @@ module DocRaptor
|
|
186
183
|
:auth_names => auth_names,
|
187
184
|
:return_type => 'String')
|
188
185
|
if @api_client.config.debugging
|
189
|
-
@api_client.config.logger.debug "API called:
|
186
|
+
@api_client.config.logger.debug "API called: DocApi#get_async_doc\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
190
187
|
end
|
191
188
|
return data, status_code, headers
|
192
189
|
end
|
@@ -208,7 +205,7 @@ module DocRaptor
|
|
208
205
|
# @return [Array<(AsyncDocStatus, Fixnum, Hash)>] AsyncDocStatus data, response status code and response headers
|
209
206
|
def get_async_doc_status_with_http_info(id, opts = {})
|
210
207
|
if @api_client.config.debugging
|
211
|
-
@api_client.config.logger.debug "Calling API:
|
208
|
+
@api_client.config.logger.debug "Calling API: DocApi#get_async_doc_status ..."
|
212
209
|
end
|
213
210
|
|
214
211
|
# verify the required parameter 'id' is set
|
@@ -237,7 +234,6 @@ module DocRaptor
|
|
237
234
|
# http body (model)
|
238
235
|
post_body = nil
|
239
236
|
|
240
|
-
|
241
237
|
auth_names = ['basicAuth']
|
242
238
|
data, status_code, headers = @api_client.call_api(:GET, path,
|
243
239
|
:header_params => header_params,
|
@@ -247,13 +243,9 @@ module DocRaptor
|
|
247
243
|
:auth_names => auth_names,
|
248
244
|
:return_type => 'AsyncDocStatus')
|
249
245
|
if @api_client.config.debugging
|
250
|
-
@api_client.config.logger.debug "API called:
|
246
|
+
@api_client.config.logger.debug "API called: DocApi#get_async_doc_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
251
247
|
end
|
252
248
|
return data, status_code, headers
|
253
249
|
end
|
254
250
|
end
|
255
251
|
end
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
data/lib/docraptor/api_client.rb
CHANGED
@@ -75,10 +75,11 @@ module DocRaptor
|
|
75
75
|
:ssl_verifypeer => @config.verify_ssl,
|
76
76
|
:sslcert => @config.cert_file,
|
77
77
|
:sslkey => @config.key_file,
|
78
|
-
:cainfo => @config.ssl_ca_cert,
|
79
78
|
:verbose => @config.debugging
|
80
79
|
}
|
81
80
|
|
81
|
+
req_opts[:cainfo] = @config.ssl_ca_cert if @config.ssl_ca_cert
|
82
|
+
|
82
83
|
if [:post, :patch, :put, :delete].include?(http_method)
|
83
84
|
req_body = build_request_body(header_params, form_params, opts[:body])
|
84
85
|
req_opts.update :body => req_body
|
data/lib/docraptor/models/doc.rb
CHANGED
@@ -8,10 +8,10 @@ module DocRaptor
|
|
8
8
|
# The type of document being created.
|
9
9
|
attr_accessor :document_type
|
10
10
|
|
11
|
-
# The HTML data to be transformed into a document
|
11
|
+
# The HTML data to be transformed into a document. You must supply content using document_content or document_url.
|
12
12
|
attr_accessor :document_content
|
13
13
|
|
14
|
-
# The URL to fetch the HTML data to be transformed into a document
|
14
|
+
# The URL to fetch the HTML data to be transformed into a document. You must supply content using document_content or document_url.
|
15
15
|
attr_accessor :document_url
|
16
16
|
|
17
17
|
# Enable test mode for this document. Test documents are not charged for but include a watermark.
|
@@ -35,7 +35,7 @@ module DocRaptor
|
|
35
35
|
# Set HTTP referrer when generating this document.
|
36
36
|
attr_accessor :referrer
|
37
37
|
|
38
|
-
# A URL that will receive a POST request after successfully completing an asynchronous document
|
38
|
+
# A URL that will receive a POST request after successfully completing an asynchronous document. The POST data will include download_url and download_id similar to status api responses. WARNING: this only works on asynchronous documents.
|
39
39
|
attr_accessor :callback_url
|
40
40
|
|
41
41
|
attr_accessor :prince_options
|
data/lib/docraptor/version.rb
CHANGED
data/script/swagger
CHANGED
@@ -8,7 +8,7 @@ fi
|
|
8
8
|
|
9
9
|
cd swagger-codegen
|
10
10
|
|
11
|
-
SWAGGER_CODGEN_REVISION="
|
11
|
+
SWAGGER_CODGEN_REVISION="f42f9acf3564264f84b970c894574da1e4c7c053" # v2.1.5+
|
12
12
|
if [[ `cat .git/HEAD` != "$SWAGGER_CODGEN_REVISION" ]]; then
|
13
13
|
git fetch
|
14
14
|
git checkout $SWAGGER_CODGEN_REVISION
|
data/swagger-config.json
CHANGED
data/test/async.rb
CHANGED
data/test/invalid_async.rb
CHANGED
data/test/invalid_sync.rb
CHANGED
data/test/sync.rb
CHANGED
data/test/xlsx.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docraptor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elijah Miller
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-01-
|
12
|
+
date: 2016-01-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: typhoeus
|
@@ -250,7 +250,7 @@ files:
|
|
250
250
|
- examples/async.rb
|
251
251
|
- examples/sync.rb
|
252
252
|
- lib/docraptor.rb
|
253
|
-
- lib/docraptor/api/
|
253
|
+
- lib/docraptor/api/doc_api.rb
|
254
254
|
- lib/docraptor/api_client.rb
|
255
255
|
- lib/docraptor/api_error.rb
|
256
256
|
- lib/docraptor/configuration.rb
|