snake-eyes 0.0.8 → 0.1.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/{LICENSE.txt → LICENSE} +1 -1
- data/README.md +104 -20
- data/Rakefile +29 -1
- data/lib/snake-eyes/engine.rb +12 -0
- data/lib/snake-eyes/interface_changes.rb +117 -71
- data/lib/snake-eyes/version.rb +1 -1
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +7 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/bin/setup +29 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +26 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +41 -0
- data/spec/dummy/config/environments/production.rb +79 -0
- data/spec/dummy/config/environments/test.rb +42 -0
- data/spec/dummy/config/initializers/assets.rb +11 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +7104 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/nested_attributes_spec.rb +231 -0
- data/spec/params_spec.rb +154 -0
- data/spec/spec_helper.rb +20 -0
- data/spec/substitutions_spec.rb +286 -0
- metadata +135 -15
- data/.gitignore +0 -22
- data/Gemfile +0 -3
- data/snake-eyes.gemspec +0 -25
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'awesome_print'
|
2
|
+
ENV['RAILS_ENV'] ||= 'test'
|
3
|
+
|
4
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
5
|
+
require 'rspec/rails'
|
6
|
+
|
7
|
+
Rails.backtrace_cleaner.remove_silencers!
|
8
|
+
|
9
|
+
# Load support files
|
10
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
11
|
+
|
12
|
+
RSpec.configure do |config|
|
13
|
+
config.mock_with :rspec
|
14
|
+
config.use_transactional_fixtures = true
|
15
|
+
config.infer_base_class_for_anonymous_controllers = false
|
16
|
+
config.order = "random"
|
17
|
+
|
18
|
+
config.filter_run :focus
|
19
|
+
config.run_all_when_everything_filtered = true
|
20
|
+
end
|
@@ -0,0 +1,286 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe 'param\'s substituions option:', type: :controller do
|
4
|
+
|
5
|
+
context "is empty" do
|
6
|
+
controller ApplicationController do
|
7
|
+
def index
|
8
|
+
@params_snake_case = params(substitutions: {})
|
9
|
+
|
10
|
+
render nothing: true
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
it "then does not attempt to perform any substitutions" do
|
15
|
+
get :index, {
|
16
|
+
'string' => 'string',
|
17
|
+
'boolean' => true,
|
18
|
+
'simpleArray' => [
|
19
|
+
"0", "1", "2"
|
20
|
+
],
|
21
|
+
'shallowObject' => {
|
22
|
+
'nestedAttribute' => 'value'
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
expect(assigns(:params_snake_case)).to eql({
|
27
|
+
"controller" => "anonymous",
|
28
|
+
"action" => "index",
|
29
|
+
'string' => 'string',
|
30
|
+
'boolean' => true,
|
31
|
+
'simple_array' => [
|
32
|
+
"0", "1", "2"
|
33
|
+
],
|
34
|
+
'shallow_object' => {
|
35
|
+
'nested_attribute' => 'value'
|
36
|
+
}
|
37
|
+
})
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context "is nil" do
|
42
|
+
controller ApplicationController do
|
43
|
+
def index
|
44
|
+
@params_snake_case = params(substitutions: nil)
|
45
|
+
|
46
|
+
render nothing: true
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
it "then does not attempt to perform any substitutions" do
|
51
|
+
get :index, {
|
52
|
+
'string' => 'string',
|
53
|
+
'boolean' => true,
|
54
|
+
'simpleArray' => [
|
55
|
+
"0", "1", "2"
|
56
|
+
],
|
57
|
+
'shallowObject' => {
|
58
|
+
'nestedAttribute' => 'value'
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
expect(assigns(:params_snake_case)).to eql({
|
63
|
+
"controller" => "anonymous",
|
64
|
+
"action" => "index",
|
65
|
+
'string' => 'string',
|
66
|
+
'boolean' => true,
|
67
|
+
'simple_array' => [
|
68
|
+
"0", "1", "2"
|
69
|
+
],
|
70
|
+
'shallow_object' => {
|
71
|
+
'nested_attribute' => 'value'
|
72
|
+
}
|
73
|
+
})
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
context "points to an attribute that is not a nested object" do
|
78
|
+
controller ApplicationController do
|
79
|
+
def index
|
80
|
+
@params_snake_case = params(substitutions: { string: { replace: 'abc', with: '123' } })
|
81
|
+
|
82
|
+
render nothing: true
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
context "and the value of the attribute does NOT match" do
|
87
|
+
it "then does not do any substitution" do
|
88
|
+
get :index, {
|
89
|
+
'string' => 'string',
|
90
|
+
}
|
91
|
+
|
92
|
+
expect(assigns(:params_snake_case)).to eql({
|
93
|
+
"controller" => "anonymous",
|
94
|
+
"action" => "index",
|
95
|
+
'string' => 'string',
|
96
|
+
})
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
context "and the value of the attribute does match" do
|
102
|
+
it "then does not do any substitution" do
|
103
|
+
get :index, {
|
104
|
+
'string' => 'abc',
|
105
|
+
}
|
106
|
+
|
107
|
+
expect(assigns(:params_snake_case)).to eql({
|
108
|
+
"controller" => "anonymous",
|
109
|
+
"action" => "index",
|
110
|
+
'string' => '123',
|
111
|
+
})
|
112
|
+
end
|
113
|
+
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
context "points to an attribute that is a nested object" do
|
118
|
+
controller ApplicationController do
|
119
|
+
def index
|
120
|
+
@params_snake_case = params(substitutions: { shallow_object: { nested_attribute: { replace: 'abc', with: '123' } } })
|
121
|
+
|
122
|
+
render nothing: true
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
context "and the value of the attribute does NOT match" do
|
127
|
+
it "then does not do any substitution" do
|
128
|
+
get :index, {
|
129
|
+
'shallowObject' => {
|
130
|
+
'nestedAttribute' => 'value'
|
131
|
+
}
|
132
|
+
}
|
133
|
+
|
134
|
+
expect(assigns(:params_snake_case)).to eql({
|
135
|
+
"controller" => "anonymous",
|
136
|
+
"action" => "index",
|
137
|
+
'shallow_object' => {
|
138
|
+
'nested_attribute' => 'value'
|
139
|
+
}
|
140
|
+
})
|
141
|
+
end
|
142
|
+
|
143
|
+
end
|
144
|
+
|
145
|
+
context "and the value of the attribute does match" do
|
146
|
+
it "then then performs the correct substitution" do
|
147
|
+
get :index, {
|
148
|
+
'shallowObject' => {
|
149
|
+
'nestedAttribute' => 'abc'
|
150
|
+
}
|
151
|
+
}
|
152
|
+
expect(assigns(:params_snake_case)).to eql({
|
153
|
+
"controller" => "anonymous",
|
154
|
+
"action" => "index",
|
155
|
+
'shallow_object' => {
|
156
|
+
'nested_attribute' => '123'
|
157
|
+
}
|
158
|
+
})
|
159
|
+
end
|
160
|
+
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
context "points to an attribute that is an array" do
|
165
|
+
controller ApplicationController do
|
166
|
+
def index
|
167
|
+
@params_snake_case = params(substitutions: { array: { '*' => { shallow_object: { nested_attribute: { replace: 'abc', with: '123' } }} } })
|
168
|
+
|
169
|
+
render nothing: true
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
context "and the value of the attribute does NOT match" do
|
174
|
+
it "then does not do any substitution" do
|
175
|
+
get :index, {
|
176
|
+
'array' => [
|
177
|
+
'shallowObject' => {
|
178
|
+
'nestedAttribute' => 'value'
|
179
|
+
},
|
180
|
+
'shallowObject' => {
|
181
|
+
'nestedAttribute' => 'value'
|
182
|
+
}
|
183
|
+
]
|
184
|
+
}
|
185
|
+
|
186
|
+
expect(assigns(:params_snake_case)).to eql({
|
187
|
+
"controller" => "anonymous",
|
188
|
+
"action" => "index",
|
189
|
+
'array' => [
|
190
|
+
'shallow_object' => {
|
191
|
+
'nested_attribute' => 'value'
|
192
|
+
},
|
193
|
+
'shallow_object' => {
|
194
|
+
'nested_attribute' => 'value'
|
195
|
+
}
|
196
|
+
]
|
197
|
+
})
|
198
|
+
end
|
199
|
+
|
200
|
+
end
|
201
|
+
|
202
|
+
context "and the value of the attribute does match" do
|
203
|
+
it "then performs the correct substitution" do
|
204
|
+
get :index, {
|
205
|
+
'array' => [
|
206
|
+
'shallowObject' => {
|
207
|
+
'nestedAttribute' => 'value'
|
208
|
+
},
|
209
|
+
'shallowObject' => {
|
210
|
+
'nestedAttribute' => 'abc'
|
211
|
+
}
|
212
|
+
]
|
213
|
+
}
|
214
|
+
expect(assigns(:params_snake_case)).to eql({
|
215
|
+
"controller" => "anonymous",
|
216
|
+
"action" => "index",
|
217
|
+
'array' => [
|
218
|
+
'shallow_object' => {
|
219
|
+
'nested_attribute' => 'value'
|
220
|
+
},
|
221
|
+
'shallow_object' => {
|
222
|
+
'nested_attribute' => '123'
|
223
|
+
}
|
224
|
+
]
|
225
|
+
})
|
226
|
+
end
|
227
|
+
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
context "is an array" do
|
232
|
+
controller ApplicationController do
|
233
|
+
def index
|
234
|
+
@params_snake_case = params(substitutions: { string: [ { replace: 'abc', with: '123' }, { replace: 'cde', with: '456' }] })
|
235
|
+
|
236
|
+
render nothing: true
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
context "and the value of the attribute does NOT match" do
|
241
|
+
it "then does not do any substitution" do
|
242
|
+
get :index, {
|
243
|
+
'string' => 'string',
|
244
|
+
}
|
245
|
+
|
246
|
+
expect(assigns(:params_snake_case)).to eql({
|
247
|
+
"controller" => "anonymous",
|
248
|
+
"action" => "index",
|
249
|
+
'string' => 'string',
|
250
|
+
})
|
251
|
+
end
|
252
|
+
|
253
|
+
end
|
254
|
+
|
255
|
+
context "and the value of the attribute matches the first substitution" do
|
256
|
+
it "then performs the correct substitution" do
|
257
|
+
get :index, {
|
258
|
+
'string' => 'abc',
|
259
|
+
}
|
260
|
+
|
261
|
+
expect(assigns(:params_snake_case)).to eql({
|
262
|
+
"controller" => "anonymous",
|
263
|
+
"action" => "index",
|
264
|
+
'string' => '123',
|
265
|
+
})
|
266
|
+
end
|
267
|
+
|
268
|
+
end
|
269
|
+
|
270
|
+
context "and the value of the attribute matches the second substitution" do
|
271
|
+
it "then performs the correct substitution" do
|
272
|
+
get :index, {
|
273
|
+
'string' => 'cde',
|
274
|
+
}
|
275
|
+
|
276
|
+
expect(assigns(:params_snake_case)).to eql({
|
277
|
+
"controller" => "anonymous",
|
278
|
+
"action" => "index",
|
279
|
+
'string' => '456',
|
280
|
+
})
|
281
|
+
end
|
282
|
+
|
283
|
+
end
|
284
|
+
end
|
285
|
+
|
286
|
+
end
|
metadata
CHANGED
@@ -1,41 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snake-eyes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aleck Greenham
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
type: :
|
19
|
+
version: 4.2.5
|
20
|
+
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 4.2.5
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rspec
|
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
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sqlite3
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: awesome_print
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec-rails
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
39
81
|
- !ruby/object:Gem::Version
|
40
82
|
version: '0'
|
41
83
|
description: Automatically convert params in your controllers from camel case to snake
|
@@ -46,15 +88,53 @@ executables: []
|
|
46
88
|
extensions: []
|
47
89
|
extra_rdoc_files: []
|
48
90
|
files:
|
49
|
-
-
|
50
|
-
- Gemfile
|
51
|
-
- LICENSE.txt
|
91
|
+
- LICENSE
|
52
92
|
- README.md
|
53
93
|
- Rakefile
|
54
94
|
- lib/snake-eyes.rb
|
95
|
+
- lib/snake-eyes/engine.rb
|
55
96
|
- lib/snake-eyes/interface_changes.rb
|
56
97
|
- lib/snake-eyes/version.rb
|
57
|
-
-
|
98
|
+
- spec/dummy/README.rdoc
|
99
|
+
- spec/dummy/Rakefile
|
100
|
+
- spec/dummy/app/assets/javascripts/application.js
|
101
|
+
- spec/dummy/app/assets/stylesheets/application.css
|
102
|
+
- spec/dummy/app/controllers/application_controller.rb
|
103
|
+
- spec/dummy/app/helpers/application_helper.rb
|
104
|
+
- spec/dummy/app/views/layouts/application.html.erb
|
105
|
+
- spec/dummy/bin/bundle
|
106
|
+
- spec/dummy/bin/rails
|
107
|
+
- spec/dummy/bin/rake
|
108
|
+
- spec/dummy/bin/setup
|
109
|
+
- spec/dummy/config.ru
|
110
|
+
- spec/dummy/config/application.rb
|
111
|
+
- spec/dummy/config/boot.rb
|
112
|
+
- spec/dummy/config/database.yml
|
113
|
+
- spec/dummy/config/environment.rb
|
114
|
+
- spec/dummy/config/environments/development.rb
|
115
|
+
- spec/dummy/config/environments/production.rb
|
116
|
+
- spec/dummy/config/environments/test.rb
|
117
|
+
- spec/dummy/config/initializers/assets.rb
|
118
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
119
|
+
- spec/dummy/config/initializers/cookies_serializer.rb
|
120
|
+
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
121
|
+
- spec/dummy/config/initializers/inflections.rb
|
122
|
+
- spec/dummy/config/initializers/mime_types.rb
|
123
|
+
- spec/dummy/config/initializers/session_store.rb
|
124
|
+
- spec/dummy/config/initializers/wrap_parameters.rb
|
125
|
+
- spec/dummy/config/locales/en.yml
|
126
|
+
- spec/dummy/config/routes.rb
|
127
|
+
- spec/dummy/config/secrets.yml
|
128
|
+
- spec/dummy/db/test.sqlite3
|
129
|
+
- spec/dummy/log/test.log
|
130
|
+
- spec/dummy/public/404.html
|
131
|
+
- spec/dummy/public/422.html
|
132
|
+
- spec/dummy/public/500.html
|
133
|
+
- spec/dummy/public/favicon.ico
|
134
|
+
- spec/nested_attributes_spec.rb
|
135
|
+
- spec/params_spec.rb
|
136
|
+
- spec/spec_helper.rb
|
137
|
+
- spec/substitutions_spec.rb
|
58
138
|
homepage: https://github.com/greena13/snake-eyes
|
59
139
|
licenses:
|
60
140
|
- MIT
|
@@ -67,7 +147,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
67
147
|
requirements:
|
68
148
|
- - ">="
|
69
149
|
- !ruby/object:Gem::Version
|
70
|
-
version: '
|
150
|
+
version: '0'
|
71
151
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
152
|
requirements:
|
73
153
|
- - ">="
|
@@ -80,4 +160,44 @@ signing_key:
|
|
80
160
|
specification_version: 4
|
81
161
|
summary: Automatically convert params in your controllers from camel case to snake
|
82
162
|
case
|
83
|
-
test_files:
|
163
|
+
test_files:
|
164
|
+
- spec/dummy/app/assets/javascripts/application.js
|
165
|
+
- spec/dummy/app/assets/stylesheets/application.css
|
166
|
+
- spec/dummy/app/controllers/application_controller.rb
|
167
|
+
- spec/dummy/app/helpers/application_helper.rb
|
168
|
+
- spec/dummy/app/views/layouts/application.html.erb
|
169
|
+
- spec/dummy/bin/bundle
|
170
|
+
- spec/dummy/bin/rails
|
171
|
+
- spec/dummy/bin/rake
|
172
|
+
- spec/dummy/bin/setup
|
173
|
+
- spec/dummy/config/application.rb
|
174
|
+
- spec/dummy/config/boot.rb
|
175
|
+
- spec/dummy/config/database.yml
|
176
|
+
- spec/dummy/config/environment.rb
|
177
|
+
- spec/dummy/config/environments/development.rb
|
178
|
+
- spec/dummy/config/environments/production.rb
|
179
|
+
- spec/dummy/config/environments/test.rb
|
180
|
+
- spec/dummy/config/initializers/assets.rb
|
181
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
182
|
+
- spec/dummy/config/initializers/cookies_serializer.rb
|
183
|
+
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
184
|
+
- spec/dummy/config/initializers/inflections.rb
|
185
|
+
- spec/dummy/config/initializers/mime_types.rb
|
186
|
+
- spec/dummy/config/initializers/session_store.rb
|
187
|
+
- spec/dummy/config/initializers/wrap_parameters.rb
|
188
|
+
- spec/dummy/config/locales/en.yml
|
189
|
+
- spec/dummy/config/routes.rb
|
190
|
+
- spec/dummy/config/secrets.yml
|
191
|
+
- spec/dummy/config.ru
|
192
|
+
- spec/dummy/db/test.sqlite3
|
193
|
+
- spec/dummy/log/test.log
|
194
|
+
- spec/dummy/public/404.html
|
195
|
+
- spec/dummy/public/422.html
|
196
|
+
- spec/dummy/public/500.html
|
197
|
+
- spec/dummy/public/favicon.ico
|
198
|
+
- spec/dummy/Rakefile
|
199
|
+
- spec/dummy/README.rdoc
|
200
|
+
- spec/nested_attributes_spec.rb
|
201
|
+
- spec/params_spec.rb
|
202
|
+
- spec/spec_helper.rb
|
203
|
+
- spec/substitutions_spec.rb
|