boxview.rb 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/README.md +10 -34
- data/boxview.rb.gemspec +3 -3
- data/lib/boxview/document.rb +11 -5
- data/lib/boxview/session.rb +8 -8
- data/lib/boxview/version.rb +1 -1
- data/spec/lib/boxview/document_spec.rb +27 -5
- data/spec/lib/boxview/session_spec.rb +14 -3
- data/spec/spec_helper.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27021f62d0bc30f3e7167e0414154a816278e025
|
4
|
+
data.tar.gz: d72b878111414766d2ec5342f3f72e5f22fc7470
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8480a8d2e9a59213d5302d88871c28d06c58cea8809fb68f99ba7fa791a19b68fa6d85a34565820c57e895ad040b4fd3f25287178a92cd8f0cae04e858a4f545
|
7
|
+
data.tar.gz: 7bf174dd6afbd48f330969a44996a5a1e4462732fc01ecd0fda22538f89e8d93cbec4b8cdf7f5082dac2945d89807ff669ef8a2d141edb7ecba7620a6b1e5e65
|
data/.travis.yml
CHANGED
@@ -2,7 +2,7 @@ language: ruby
|
|
2
2
|
env:
|
3
3
|
global:
|
4
4
|
# BoxView API Key
|
5
|
-
secure: "
|
5
|
+
secure: "QFH/gcuFT6bEXiXpAEIzSc+awrXB23dbhD1RUHneBjzHCAhRnTmyiNuXRt/YubOmt26ttEpQ0nh2D+DbW62ozFiaDaD05ho7Z7YgN1N6wvZD2ST+BiYPKVZWu8sTgQZ9ax8i9uTb3t+Ksu4X5g0cGg9vEdPFKC9PlQhEuwH7ojQ="
|
6
6
|
rvm:
|
7
7
|
- 2.0.0
|
8
8
|
- 2.1.0
|
data/README.md
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
[![Build Status](https://travis-ci.org/getlua/boxviewrb.svg)](https://travis-ci.org/getlua/boxviewrb)
|
4
4
|
|
5
|
-
A BoxView API wrapper. Built using the power of HTTParty to communicate with the BoxView API. The BoxView API has added some new features and improved documentation, this lib takes care of all of those new additions for you. You can learn more at the [developer page](
|
5
|
+
A BoxView API wrapper. Built using the power of HTTParty to communicate with the BoxView API. The BoxView API has added some new features and improved documentation, this lib takes care of all of those new additions for you. You can learn more at the [developer page](https://box-view.readme.io/). Note this product and API are still in beta, and likely to change in the future. Boxviewrb works with all available requests that are documented by BoxView at the time of writing.
|
6
6
|
|
7
7
|
##### Table of Contents
|
8
8
|
* [Installation](#installation)
|
9
9
|
* [Usage](#usage)
|
10
10
|
* [Configuration](#configuration)
|
11
11
|
* [Document](#document)
|
12
|
-
* [Create](#
|
12
|
+
* [Create](#create-document)
|
13
13
|
* [MultiPart](#multipart)
|
14
14
|
* [List](#list)
|
15
15
|
* [Show](#show)
|
@@ -18,19 +18,18 @@ A BoxView API wrapper. Built using the power of HTTParty to communicate with the
|
|
18
18
|
* [Thumbnail](#thumbnail)
|
19
19
|
* [Assets](#assets)
|
20
20
|
* [Session](#session)
|
21
|
-
* [Create](#
|
22
|
-
* [Convenience Methods](#
|
23
|
-
* [Never Expire](#
|
24
|
-
* [View](#
|
25
|
-
* [ViewerJS URL](#
|
26
|
-
* [Viewer URL](#
|
27
|
-
* [Supported MIMETypes](#
|
28
|
-
* [Supported File Extensions](#
|
21
|
+
* [Create](#create-session)
|
22
|
+
* [Convenience Methods](#convenience-methods)
|
23
|
+
* [Never Expire](#never-expire)
|
24
|
+
* [View](#create-session)
|
25
|
+
* [ViewerJS URL](#viewerjs-url)
|
26
|
+
* [Viewer URL](#viewer-url)
|
27
|
+
* [Supported MIMETypes](#supported-mimetypes)
|
28
|
+
* [Supported File Extensions](#supported-file-extensions)
|
29
29
|
* [Contributing](#contributing)
|
30
30
|
* [Author](#author)
|
31
31
|
* [License](#license)
|
32
32
|
|
33
|
-
<a name="installation"/>
|
34
33
|
## Installation
|
35
34
|
|
36
35
|
Add this line to your application's Gemfile:
|
@@ -45,10 +44,8 @@ Or install it yourself as:
|
|
45
44
|
|
46
45
|
$ gem install boxview.rb
|
47
46
|
|
48
|
-
<a name="usage"/>
|
49
47
|
## Usage
|
50
48
|
|
51
|
-
<a name="configuration"/>
|
52
49
|
### Configuration
|
53
50
|
|
54
51
|
Defining an api key is the only required configuration. To get your own API Key, visit [Box and get a developer account](https://app.box.com/developers/services). Then create a new Box View application. Scroll to the bottom of the application settings page to find your api key.
|
@@ -57,10 +54,8 @@ Defining an api key is the only required configuration. To get your own API Key,
|
|
57
54
|
BoxView.api_key = "#{BOXVIEW_APIKEY}" # Example: 'gyheecmm6ckk8jutlowlzfh2tbg72kck'
|
58
55
|
```
|
59
56
|
|
60
|
-
<a name="document"/>
|
61
57
|
### Document
|
62
58
|
|
63
|
-
<a name="create_document"/>
|
64
59
|
#### Create
|
65
60
|
|
66
61
|
See below for how to create a document using boxviewrb. Not all the paramaters used are required. The url is the only parameter that will be necessary in order to make a successful call with the BoxView API. Name refers to the name of the document. Non_SVG refers to whether you want to support browsers that cannot support svg. The Height and Width parameters refer to the size of a thumbnail that will give Box an early start to generating your thumbnail for you. You must still make a second request for a thumbnail, but it will be made available sooner upon request.
|
@@ -80,7 +75,6 @@ BoxView::Document.create
|
|
80
75
|
height: 100
|
81
76
|
```
|
82
77
|
|
83
|
-
<a name="multipart"/>
|
84
78
|
#### MultiPart
|
85
79
|
|
86
80
|
If you have access to the actual file you want to upload to box, you can directly upload it via a multipart upload. This method requires the path to the file to be specified in order for it to send the file to box. If the filepath does not exist, an error will be thrown. The other params (name, thumbnail and non_svg) are the same as the create request params.
|
@@ -98,7 +92,6 @@ BoxView::Document.multipart
|
|
98
92
|
height: 100
|
99
93
|
```
|
100
94
|
|
101
|
-
<a name="list"/>
|
102
95
|
#### List
|
103
96
|
|
104
97
|
This request will respond with a list of all the documents that are currently tied to the api key that has been supplied. Delete requests will remove documents from this list. This method returns the response untouched.
|
@@ -107,7 +100,6 @@ This request will respond with a list of all the documents that are currently ti
|
|
107
100
|
BoxView::Document.list
|
108
101
|
```
|
109
102
|
|
110
|
-
<a name="show"/>
|
111
103
|
#### Show
|
112
104
|
|
113
105
|
Returns the metadata for a single document based on a specified document id. If the document has successfully been generated by box, the status of the document will be 'done'. If not the status will be 'error'. The status is returned in the response when calling show.
|
@@ -118,7 +110,6 @@ Required: `document_id`
|
|
118
110
|
BoxView::Document.show document_id: '937778a1a54b4337a5351a78f7188a24'
|
119
111
|
```
|
120
112
|
|
121
|
-
<a name="update"/>
|
122
113
|
#### Update
|
123
114
|
|
124
115
|
Update the metadata of a single document based on a specified document id. Only the name can be updated at this time.
|
@@ -131,7 +122,6 @@ BoxView::Document.update
|
|
131
122
|
name: 'recipes'
|
132
123
|
```
|
133
124
|
|
134
|
-
<a name="delete"/>
|
135
125
|
#### Delete
|
136
126
|
|
137
127
|
Removes a previously created document from the Box View servers. This request is destructive.
|
@@ -142,7 +132,6 @@ Required: `document_id`
|
|
142
132
|
BoxView::Document.delete document_id: '937778a1a54b4337a5351a78f7188a24'
|
143
133
|
```
|
144
134
|
|
145
|
-
<a name="thumbnail"/>
|
146
135
|
#### Thumbnail
|
147
136
|
|
148
137
|
A request to retrieve a thumbnail representation of a document. A document id must be specified in order to make the request. If the server response contains the response code `202` then the retry after attribute will be available when calling `BoxView::Document.retry_after`. This can be useful if Box is rate limiting.
|
@@ -156,7 +145,6 @@ BoxView::Document.thumbnail
|
|
156
145
|
height: 100
|
157
146
|
```
|
158
147
|
|
159
|
-
<a name="assets"/>
|
160
148
|
#### Assets
|
161
149
|
|
162
150
|
A request to retrieve a pdf or zip of the asset that was uploaded. The document will be retrieved as a pdf or zip. The zip contains compressed css/js/html that make up the converted document. This can be used in junction with viewerjs. This request defaults to zip if no type is specified.
|
@@ -169,10 +157,8 @@ BoxView::Document.assets
|
|
169
157
|
type: 'pdf'
|
170
158
|
```
|
171
159
|
|
172
|
-
<a name="session"/>
|
173
160
|
### Session
|
174
161
|
|
175
|
-
<a name="create_session"/>
|
176
162
|
#### Create
|
177
163
|
|
178
164
|
Generating a document will give you a document id. Next you can create a session using this id. The session will begin the conversion process of the document. When Box is done converting your document it will be available to download through the assets method or the viewer url convenience method. A session expires after a set amount of time. You can set a duration or an expiration date for the session. If left blank, the session is set by box by default to expire in 60 minutes. Duration is marked in minutes. Expiration date is a timestamp. The variable is_downloadable refers to whether or not the box viewer will display a download button or not. If the server response contains the response code `202` then the retry after attribute will be available when calling `BoxView::Session.retry_after`.
|
@@ -191,10 +177,8 @@ BoxView::Session.create
|
|
191
177
|
is_downloadable: true
|
192
178
|
```
|
193
179
|
|
194
|
-
<a name="convenience_methods"/>
|
195
180
|
### Convenience Methods
|
196
181
|
|
197
|
-
<a name="never_expire"/>
|
198
182
|
#### Never Expire
|
199
183
|
|
200
184
|
When generating a session if you want your session to last for a very long time (a thousand years) call this method.
|
@@ -203,7 +187,6 @@ When generating a session if you want your session to last for a very long time
|
|
203
187
|
BoxView::Session.never_expire
|
204
188
|
```
|
205
189
|
|
206
|
-
<a name="view"/>
|
207
190
|
#### View
|
208
191
|
|
209
192
|
Opens a default browser using the viewer url to view a BoxView converted document. Requires a `session_id`.
|
@@ -212,7 +195,6 @@ Opens a default browser using the viewer url to view a BoxView converted documen
|
|
212
195
|
BoxView::Session.view
|
213
196
|
```
|
214
197
|
|
215
|
-
<a name="viewerjs_url"/>
|
216
198
|
#### ViewerJS URL
|
217
199
|
|
218
200
|
This url can be used with viewerjs to display the assets without using the Box iframe or downloading the assets yourself. Requires a `session_id`.
|
@@ -221,7 +203,6 @@ This url can be used with viewerjs to display the assets without using the Box i
|
|
221
203
|
BoxView::Session.viewerjs_url
|
222
204
|
```
|
223
205
|
|
224
|
-
<a name="viewer_url"/>
|
225
206
|
#### Viewer URL
|
226
207
|
|
227
208
|
The url used in the view method. Can be used in an iframe to display the converted document. Requires a `session_id`.
|
@@ -230,7 +211,6 @@ The url used in the view method. Can be used in an iframe to display the convert
|
|
230
211
|
BoxView::Session.viewer_url
|
231
212
|
```
|
232
213
|
|
233
|
-
<a name="supported_mimetypes"/>
|
234
214
|
#### Supported MIMETypes
|
235
215
|
|
236
216
|
Returns an array containing all the mimetypes that BoxView is known to support.
|
@@ -239,7 +219,6 @@ Returns an array containing all the mimetypes that BoxView is known to support.
|
|
239
219
|
BoxView::Document.supported_mimetypes
|
240
220
|
```
|
241
221
|
|
242
|
-
<a name="supported_file_extensions"/>
|
243
222
|
#### Supported File Extensions
|
244
223
|
|
245
224
|
Returns an array containing all the extensions of filetypes that BoxView is known to support.
|
@@ -248,7 +227,6 @@ Returns an array containing all the extensions of filetypes that BoxView is know
|
|
248
227
|
BoxView::Document.supported_file_extensions
|
249
228
|
```
|
250
229
|
|
251
|
-
<a name="contributing"/>
|
252
230
|
## Contributing
|
253
231
|
|
254
232
|
1. Fork it ( https://github.com/[my-github-username]/boxviewrb/fork )
|
@@ -257,12 +235,10 @@ BoxView::Document.supported_file_extensions
|
|
257
235
|
4. Push to the branch (`git push origin my-new-feature`)
|
258
236
|
5. Create a new Pull Request
|
259
237
|
|
260
|
-
<a name="author"/>
|
261
238
|
## Author
|
262
239
|
|
263
240
|
Vincent Taverna, vinny@getlua.com, [vinnymac.github.io](http://vinnymac.github.io)
|
264
241
|
|
265
|
-
<a name="license"/>
|
266
242
|
## License
|
267
243
|
|
268
244
|
boxviewrb is available under the MIT license. See the [LICENSE](LICENSE.txt) file for more information.
|
data/boxview.rb.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
22
|
spec.add_development_dependency "bundler", "~> 1.6"
|
23
|
-
spec.add_development_dependency "rake"
|
24
|
-
spec.add_development_dependency "rspec"
|
25
|
-
spec.add_runtime_dependency 'httmultiparty',
|
23
|
+
spec.add_development_dependency "rake"
|
24
|
+
spec.add_development_dependency "rspec"
|
25
|
+
spec.add_runtime_dependency 'httmultiparty', '~> 0.3.14'
|
26
26
|
end
|
data/lib/boxview/document.rb
CHANGED
@@ -7,6 +7,7 @@ module BoxView
|
|
7
7
|
PATH = '/documents'
|
8
8
|
ZIP = 'zip' # Constant for generating a zip of assets of a document
|
9
9
|
PDF = 'pdf' # Constant for generating a pdf of a document
|
10
|
+
ORIGINAL_FORMAT = '' # Constant for fetching the original uploaded file
|
10
11
|
|
11
12
|
class << self
|
12
13
|
|
@@ -39,7 +40,7 @@ module BoxView
|
|
39
40
|
# Note:
|
40
41
|
# => This method only accepts pdf or zip as types.
|
41
42
|
def type=(type)
|
42
|
-
raise BoxView::Errors::TypeNotFound if ![ZIP, PDF].include? type.downcase
|
43
|
+
raise BoxView::Errors::TypeNotFound if ![ZIP, PDF, ORIGINAL_FORMAT].include? type.downcase
|
43
44
|
@type = type
|
44
45
|
end
|
45
46
|
|
@@ -129,7 +130,7 @@ module BoxView
|
|
129
130
|
# => Type, Document ID
|
130
131
|
def assets(options = {})
|
131
132
|
BoxView.document_id = options[:document_id] if options[:document_id]
|
132
|
-
type = options[:type] if options[:type]
|
133
|
+
self.type = options[:type] if options[:type]
|
133
134
|
response = BoxView.get asset_url, headers: BoxView.headers
|
134
135
|
asset_response_handler response
|
135
136
|
return response
|
@@ -187,7 +188,11 @@ module BoxView
|
|
187
188
|
# => A Document ID must be defined.
|
188
189
|
def asset_url
|
189
190
|
type = if @type then @type else ZIP end # Defaults to ZIP
|
190
|
-
"#{document_path}/#{BoxView.document_id}/content
|
191
|
+
rtn = "#{document_path}/#{BoxView.document_id}/content"
|
192
|
+
unless type == ORIGINAL_FORMAT
|
193
|
+
rtn += ".#{type}"
|
194
|
+
end
|
195
|
+
rtn
|
191
196
|
end
|
192
197
|
|
193
198
|
# Description: Params for retrieving a thumbnail of a certain size
|
@@ -241,6 +246,7 @@ module BoxView
|
|
241
246
|
def delete_response_handler(response)
|
242
247
|
case response.code
|
243
248
|
when 200
|
249
|
+
when 204
|
244
250
|
else
|
245
251
|
raise BoxView::Errors::DocumentDeletionFailed.new(response)
|
246
252
|
end
|
@@ -254,7 +260,7 @@ module BoxView
|
|
254
260
|
case response.code
|
255
261
|
when 200
|
256
262
|
else
|
257
|
-
raise BoxView::Errors::
|
263
|
+
raise BoxView::Errors::AssetGenerationFailed.new(response)
|
258
264
|
end
|
259
265
|
end
|
260
266
|
|
@@ -361,4 +367,4 @@ module BoxView
|
|
361
367
|
|
362
368
|
end
|
363
369
|
end
|
364
|
-
end
|
370
|
+
end
|
data/lib/boxview/session.rb
CHANGED
@@ -37,9 +37,9 @@ module BoxView
|
|
37
37
|
# => document id must be defined.
|
38
38
|
def create(options = {})
|
39
39
|
BoxView.document_id = options[:document_id] if options[:document_id]
|
40
|
-
duration = options[:duration] if options[:duration]
|
41
|
-
expiration_date = options[:expiration_date] if options[:expiration_date]
|
42
|
-
is_downloadable = options[:is_downloadable] if options[:is_downloadable]
|
40
|
+
@duration = options[:duration] if options[:duration]
|
41
|
+
@expiration_date = options[:expiration_date] if options[:expiration_date]
|
42
|
+
@is_downloadable = options[:is_downloadable] if options[:is_downloadable]
|
43
43
|
response = BoxView.post session_path, body: json_data, headers: BoxView.headers
|
44
44
|
response_handler response
|
45
45
|
return response
|
@@ -58,7 +58,7 @@ module BoxView
|
|
58
58
|
# => Convenience method to make the session last for a thousand years
|
59
59
|
# No Params!
|
60
60
|
def never_expire
|
61
|
-
expiration_date Time.now + (365.25 * 24 * 60 * 60 * 1000).to_i
|
61
|
+
@expiration_date = Time.now + (365.25 * 24 * 60 * 60 * 1000).to_i
|
62
62
|
end
|
63
63
|
|
64
64
|
# Description:
|
@@ -110,10 +110,10 @@ module BoxView
|
|
110
110
|
case response.code
|
111
111
|
when 201 # Done converting
|
112
112
|
parsed = JSON.parse response.body
|
113
|
-
session_id = parsed["id"]
|
114
|
-
BoxView.session_id = session_id
|
113
|
+
@session_id = parsed["id"]
|
114
|
+
BoxView.session_id = @session_id
|
115
115
|
when 202 # Session not ready yet
|
116
|
-
retry_after response['
|
116
|
+
@retry_after = response.headers['retry-after']
|
117
117
|
when 400 # An error occurred while converting the document or the document does not exist
|
118
118
|
raise BoxView::Errors::DocumentConversionFailed
|
119
119
|
else
|
@@ -141,4 +141,4 @@ module BoxView
|
|
141
141
|
end
|
142
142
|
end
|
143
143
|
end
|
144
|
-
end
|
144
|
+
end
|
data/lib/boxview/version.rb
CHANGED
@@ -69,13 +69,23 @@ describe BoxView::Document, '#thumbnail_params' do
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
describe BoxView::Document, '#create' do
|
72
|
+
let(:mock_response) { double('202 Response', { :code => 201, :body => '{"id": "123"}'}) }
|
73
|
+
|
74
|
+
before do
|
75
|
+
allow(BoxView).to receive(:post).and_return(mock_response)
|
76
|
+
end
|
77
|
+
|
72
78
|
xit 'should raise when receiving a bad request' do
|
73
79
|
end
|
74
80
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
81
|
+
context 'when receiving a bad api key' do
|
82
|
+
let(:mock_response) { double('401 Response', { :code => 401 }) }
|
83
|
+
|
84
|
+
it 'should raise' do
|
85
|
+
BoxView.api_key = 'somesortofbadapikey'
|
86
|
+
BoxView::Document.url = 'http://imgur.com/cats.jpeg'
|
87
|
+
expect{BoxView::Document.create}.to raise_error(BoxView::Errors::DocumentIdNotGenerated)
|
88
|
+
end
|
79
89
|
end
|
80
90
|
|
81
91
|
it 'should return the response when sent a good request (200..202)' do
|
@@ -84,4 +94,16 @@ describe BoxView::Document, '#create' do
|
|
84
94
|
response = BoxView::Document.create
|
85
95
|
expect(200..202).to cover(response.code)
|
86
96
|
end
|
87
|
-
end
|
97
|
+
end
|
98
|
+
describe BoxView::Document, '#delete' do
|
99
|
+
let(:mock_response) { double('204 Response', { :code => 204, :body => '' }) }
|
100
|
+
|
101
|
+
before do
|
102
|
+
allow(BoxView).to receive(:delete).and_return(mock_response)
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'should return an empty string when sent a good request resulting in a 204 (empty) response' do
|
106
|
+
response = BoxView::Document.delete document_id: "xyz"
|
107
|
+
expect(response.body).to eq ''
|
108
|
+
end
|
109
|
+
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe BoxView::Session, '#expiration_date' do
|
4
|
-
|
5
4
|
it 'should raise error when expiration date is nil' do
|
6
5
|
BoxView::Session.expiration_date = nil
|
7
6
|
expect{BoxView::Session.expiration_date}.to raise_error(BoxView::Errors::ExpirationDateNotFound)
|
@@ -11,11 +10,9 @@ describe BoxView::Session, '#expiration_date' do
|
|
11
10
|
BoxView::Session.expiration_date = Time.now
|
12
11
|
expect(BoxView::Session.expiration_date).not_to be_nil
|
13
12
|
end
|
14
|
-
|
15
13
|
end
|
16
14
|
|
17
15
|
describe BoxView::Session, '#duration' do
|
18
|
-
|
19
16
|
it 'should raise error when duration is nil' do
|
20
17
|
BoxView::Session.duration = nil
|
21
18
|
expect{BoxView::Session.duration}.to raise_error(BoxView::Errors::DurationNotFound)
|
@@ -25,5 +22,19 @@ describe BoxView::Session, '#duration' do
|
|
25
22
|
BoxView::Session.duration = 100
|
26
23
|
expect(BoxView::Session.duration).not_to be_nil
|
27
24
|
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe BoxView::Session, '#create' do
|
28
|
+
before do
|
29
|
+
allow(BoxView).to receive(:post).and_return(mock_response)
|
30
|
+
end
|
28
31
|
|
32
|
+
context 'when response is 202' do
|
33
|
+
let(:mock_response) { double('202 Response', { :code => 202, :headers => { 'retry-after' => '2' }, }) }
|
34
|
+
|
35
|
+
it 'should set retry_after' do
|
36
|
+
BoxView::Session.create({ :document_id => '123'})
|
37
|
+
expect(BoxView::Session.retry_after).to eql('2')
|
38
|
+
end
|
39
|
+
end
|
29
40
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: boxview.rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vincent Taverna
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,28 +28,28 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 0.3.14
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 0.3.14
|
69
69
|
description: Box View converts PDF and Office documents to HTML thus enabling these
|
70
70
|
files to be easily embedded into web and mobile applications.
|
71
71
|
email:
|