transloadit-rails 1.0.6 → 1.0.7
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.
data/README.md
CHANGED
@@ -206,3 +206,37 @@ $ rails server
|
|
206
206
|
Then go to http://localhost:3000/uploads/new, and upload an image. If you did
|
207
207
|
everything right, you should see the uploaded and resized file as soon as the
|
208
208
|
upload finishes.
|
209
|
+
|
210
|
+
## Testing
|
211
|
+
|
212
|
+
### RSpec request specs
|
213
|
+
|
214
|
+
If you want to test your file uploads without relying on the network (a
|
215
|
+
good idea to keep them fast and lean) you can include some request spec
|
216
|
+
helpers to allow you to easily populate the `transloadit_params` and
|
217
|
+
`params[:transloadit]` in your actions.
|
218
|
+
|
219
|
+
First, in your `spec/spec_helper.rb` :
|
220
|
+
```ruby
|
221
|
+
require 'transloadit/rspec/helpers'
|
222
|
+
```
|
223
|
+
|
224
|
+
Now, in your request spec :
|
225
|
+
```ruby
|
226
|
+
# NOTE: It's important that you don't use :js => true, otherwise your
|
227
|
+
# test will actually hit out using AJAX, making your test dependent on the
|
228
|
+
# network.
|
229
|
+
it "can upload data files", :js => false do
|
230
|
+
attach_file 'upload_file', Rails.root.join('spec', 'asset', 'example.pdf')
|
231
|
+
|
232
|
+
# UploadsController should be replaced with the actual controller
|
233
|
+
# you're expecting to POST to when the upload is done
|
234
|
+
stub_transloadit!(UploadsController, example_json)
|
235
|
+
|
236
|
+
click_button 'Submit'
|
237
|
+
end
|
238
|
+
|
239
|
+
def example_json
|
240
|
+
"{ ... JSON content from a real POST ... }"
|
241
|
+
end
|
242
|
+
```
|
@@ -8,10 +8,20 @@ module Transloadit::Rails::ParamsDecoder
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def decode_transloadit_json
|
11
|
-
|
11
|
+
params[:transloadit] = transloadit_params
|
12
|
+
end
|
13
|
+
|
14
|
+
# Returns true if the current request has transloadit data.
|
15
|
+
def transloadit?
|
16
|
+
params[:transloadit].present?
|
17
|
+
end
|
18
|
+
|
19
|
+
# Returns the decoded transloadit parameters, or nil if the current request does not contain them.
|
20
|
+
def transloadit_params
|
21
|
+
return unless transloadit?
|
12
22
|
|
13
23
|
# wrap transloadit params in a HashWithIndifferentAccess
|
14
|
-
|
24
|
+
ActiveSupport::HashWithIndifferentAccess.new(
|
15
25
|
ActiveSupport::JSON.decode params[:transloadit]
|
16
26
|
)
|
17
27
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class Transloadit
|
2
|
+
module RSpec
|
3
|
+
# Provides helper methods to help stub a request to Transloadit in a non-JS request spec.
|
4
|
+
module RequestSpecHelper
|
5
|
+
# Stubs the relevant calls to the controller so as that a request spec can
|
6
|
+
# test Transloadit parameters without needing to actually make a call to the
|
7
|
+
# server.
|
8
|
+
#
|
9
|
+
# +controller+ should be the class of the controller you are about to invoke.
|
10
|
+
# +params_json+ should be the JSON content as returned by Transloadit.
|
11
|
+
#
|
12
|
+
# It's usually easiest to make the request with your development environment,
|
13
|
+
# capture the JSON response from the logs and use that in your tests.
|
14
|
+
def stub_transloadit!(controller, params_json)
|
15
|
+
hash = ActiveSupport::HashWithIndifferentAccess.new(
|
16
|
+
ActiveSupport::JSON.decode params_json
|
17
|
+
)
|
18
|
+
|
19
|
+
controller.any_instance.stub(:transloadit?).and_return(true)
|
20
|
+
controller.any_instance.stub(:transloadit_params).and_return(hash)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
RSpec.configure do |config|
|
27
|
+
config.include Transloadit::RSpec::RequestSpecHelper, :type => :request
|
28
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: transloadit-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-07-09 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: transloadit
|
17
|
-
requirement:
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,15 @@ dependencies:
|
|
22
22
|
version: 1.0.2
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements:
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ! '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 1.0.2
|
26
31
|
- !ruby/object:Gem::Dependency
|
27
32
|
name: railties
|
28
|
-
requirement:
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
29
34
|
none: false
|
30
35
|
requirements:
|
31
36
|
- - ~>
|
@@ -33,10 +38,15 @@ dependencies:
|
|
33
38
|
version: '3'
|
34
39
|
type: :runtime
|
35
40
|
prerelease: false
|
36
|
-
version_requirements:
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3'
|
37
47
|
- !ruby/object:Gem::Dependency
|
38
48
|
name: rake
|
39
|
-
requirement:
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
40
50
|
none: false
|
41
51
|
requirements:
|
42
52
|
- - ! '>='
|
@@ -44,10 +54,15 @@ dependencies:
|
|
44
54
|
version: '0'
|
45
55
|
type: :development
|
46
56
|
prerelease: false
|
47
|
-
version_requirements:
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
48
63
|
- !ruby/object:Gem::Dependency
|
49
64
|
name: minitest
|
50
|
-
requirement:
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
51
66
|
none: false
|
52
67
|
requirements:
|
53
68
|
- - ! '>='
|
@@ -55,10 +70,15 @@ dependencies:
|
|
55
70
|
version: '0'
|
56
71
|
type: :development
|
57
72
|
prerelease: false
|
58
|
-
version_requirements:
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
59
79
|
- !ruby/object:Gem::Dependency
|
60
80
|
name: simplecov
|
61
|
-
requirement:
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
62
82
|
none: false
|
63
83
|
requirements:
|
64
84
|
- - ! '>='
|
@@ -66,10 +86,15 @@ dependencies:
|
|
66
86
|
version: '0'
|
67
87
|
type: :development
|
68
88
|
prerelease: false
|
69
|
-
version_requirements:
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
70
95
|
- !ruby/object:Gem::Dependency
|
71
96
|
name: yard
|
72
|
-
requirement:
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
73
98
|
none: false
|
74
99
|
requirements:
|
75
100
|
- - ! '>='
|
@@ -77,10 +102,15 @@ dependencies:
|
|
77
102
|
version: '0'
|
78
103
|
type: :development
|
79
104
|
prerelease: false
|
80
|
-
version_requirements:
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
81
111
|
- !ruby/object:Gem::Dependency
|
82
112
|
name: rdiscount
|
83
|
-
requirement:
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
84
114
|
none: false
|
85
115
|
requirements:
|
86
116
|
- - ! '>='
|
@@ -88,7 +118,12 @@ dependencies:
|
|
88
118
|
version: '0'
|
89
119
|
type: :development
|
90
120
|
prerelease: false
|
91
|
-
version_requirements:
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ! '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
92
127
|
description: The transloadit-rails gem allows you to automate uploading files through
|
93
128
|
the Transloadit REST API
|
94
129
|
email:
|
@@ -112,6 +147,8 @@ files:
|
|
112
147
|
- lib/transloadit/rails/params_decoder.rb
|
113
148
|
- lib/transloadit/rails/version.rb
|
114
149
|
- lib/transloadit/rails/view_helper.rb
|
150
|
+
- lib/transloadit/rspec/helpers.rb
|
151
|
+
- lib/transloadit/rspec/request_spec_helper.rb
|
115
152
|
- test/generators/transloadit/test_install_generator.rb
|
116
153
|
- test/test_helper.rb
|
117
154
|
- transloadit-rails.gemspec
|
@@ -135,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
172
|
version: 1.3.6
|
136
173
|
requirements: []
|
137
174
|
rubyforge_project: transloadit-rails
|
138
|
-
rubygems_version: 1.8.
|
175
|
+
rubygems_version: 1.8.23
|
139
176
|
signing_key:
|
140
177
|
specification_version: 3
|
141
178
|
summary: Official Rails gem for Transloadit
|