magic_grid 0.11.1 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,117 @@
1
+ require 'spec_helper'
2
+ require 'magic_grid/html_grid'
3
+ require 'magic_grid/definition'
4
+
5
+ describe MagicGrid::HtmlGrid do
6
+
7
+ let(:empty_collection) { [] }
8
+ let(:column_list) { [:name, :description] }
9
+ let(:controller) { make_controller }
10
+ # Kaminari uses view_renderer instead of controller
11
+ let(:view_renderer) { controller }
12
+
13
+ describe "#grid_row" do
14
+ let(:tracer) { "OMG A MAGIC CELL!" }
15
+
16
+ context "with a callable column option" do
17
+ let(:record) { 1 }
18
+
19
+ it "should use :to_s as a method if callable" do
20
+ callable = double.tap do |c|
21
+ c.should_receive(:call).with( record ) { tracer }
22
+ end
23
+ cols = [ {col: 'Col', to_s: callable} ]
24
+ grid = MagicGrid::HtmlGrid.new MagicGrid::Definition.new(cols), self
25
+ grid.grid_row( record ).should include(tracer)
26
+ end
27
+
28
+ it "should use :col as a method if callable" do
29
+ callable = double.tap do |c|
30
+ c.should_receive(:call).with( record ) { tracer }
31
+ end
32
+ cols = [ {col: callable, label: "Column"} ]
33
+ grid = MagicGrid::HtmlGrid.new MagicGrid::Definition.new(cols), self
34
+ grid.grid_row( record ).should include(tracer)
35
+ end
36
+ end
37
+
38
+ context "with a symbol that is a method on the record" do
39
+ let(:record) { double(1) }
40
+
41
+ it "should use :to_s as a method on record if it responds to it" do
42
+ record.should_receive(:some_inconceivable_method_name) { tracer }
43
+ cols = [ {col: :some_col, to_s: :some_inconceivable_method_name} ]
44
+ grid = MagicGrid::HtmlGrid.new MagicGrid::Definition.new(cols), self
45
+ grid.grid_row( record ).should include(tracer)
46
+ end
47
+
48
+ it "should use :col as a method on record if it responds to it" do
49
+ record.should_receive(:some_inconceivable_method_name) { tracer }
50
+ cols = [ {col: :some_inconceivable_method_name} ]
51
+ grid = MagicGrid::HtmlGrid.new MagicGrid::Definition.new(cols), self
52
+ grid.grid_row( record ).should include(tracer)
53
+ end
54
+ end
55
+ end
56
+
57
+ describe "#magic_column_headers" do
58
+ it "should allow a string as a column definition" do
59
+ title = "A String"
60
+ cols = [title]
61
+ grid = MagicGrid::HtmlGrid.new MagicGrid::Definition.new(cols), self
62
+ grid.magic_column_headers.should include(title)
63
+ end
64
+ it "should use :label if no :sql is given" do
65
+ title = "A String"
66
+ cols = [{label: title}]
67
+ grid = MagicGrid::HtmlGrid.new MagicGrid::Definition.new(cols), self
68
+ grid.magic_column_headers.should include(title)
69
+ end
70
+ it "should make a sortable header if :sql is specified" do
71
+ tracer = "A MAGIC BULL??"
72
+ col = {sql: 'some_col'}
73
+ cols = [col]
74
+ grid = MagicGrid::HtmlGrid.new MagicGrid::Definition.new(cols), self
75
+ # TODO: check parameters to sortable_header
76
+ #self.should_receive(:sortable_header).with(grid, col, {}) { tracer }
77
+ grid.should_receive(:sortable_header) { tracer }
78
+ grid.magic_column_headers.should include(tracer)
79
+ end
80
+ end
81
+
82
+ describe "#searcher_input" do
83
+ searchable_opts = { needs_searcher: true }
84
+ it "renders a search field" do
85
+ cols = [:some_col]
86
+ grid = MagicGrid::HtmlGrid.new MagicGrid::Definition.new(cols, nil, nil, searchable_opts), self
87
+ grid.searcher_input.should match_select("input[type=search]")
88
+ end
89
+ it "renders a search button if told to" do
90
+ tracer = "ZOMG! A BUTTON!"
91
+ cols = [:some_col]
92
+ opts = searchable_opts.merge(search_button: true,
93
+ searcher_button: tracer)
94
+ grid = MagicGrid::HtmlGrid.new MagicGrid::Definition.new(cols, nil, nil, opts), self
95
+ grid.searcher_input.should match_select("button", text: tracer)
96
+ end
97
+ end
98
+
99
+ describe "column sorting helpers" do
100
+ subject { MagicGrid::HtmlGrid.new nil, self }
101
+ it "#reverse_order" do
102
+ subject.reverse_order(0).should == 1
103
+ subject.reverse_order(1).should == 0
104
+ subject.reverse_order(2).should == 0
105
+ end
106
+ it "#order_icon" do
107
+ subject.order_icon(0).should match_select('span.ui-icon-triangle-1-n')
108
+ subject.order_icon(1).should match_select('span.ui-icon-triangle-1-s')
109
+ subject.order_icon(2).should match_select('span.ui-icon-carat-2-n-s')
110
+ end
111
+ it "#order_class" do
112
+ subject.order_class(0).should == 'sort-asc'
113
+ subject.order_class(1).should == 'sort-desc'
114
+ subject.order_class(2).should == 'sort-none'
115
+ end
116
+ end
117
+ end
@@ -11,9 +11,8 @@ end
11
11
 
12
12
  require 'magic_grid/logger'
13
13
  require 'action_view'
14
- require 'rails'
14
+ require 'action_dispatch'
15
15
  require 'test/unit'
16
- require 'action_controller'
17
16
 
18
17
  begin
19
18
  require 'will_paginate'
@@ -32,8 +31,6 @@ rescue LoadError
32
31
  puts "skipping Kaminari"
33
32
  end
34
33
 
35
- Rails.backtrace_cleaner.remove_silencers!
36
-
37
34
  class NullObject
38
35
  def method_missing(*args, &block) self; end
39
36
  def nil?; true; end
@@ -44,6 +41,17 @@ module ActionFaker
44
41
  def url_for(*args)
45
42
  "fake_url(#{args.inspect})"
46
43
  end
44
+
45
+ def make_controller
46
+ request = double.tap { |r|
47
+ r.stub(:fullpath, "/foo?page=bar")
48
+ }
49
+ double.tap { |v|
50
+ v.stub(:render)
51
+ v.stub(:params) { {} }
52
+ v.stub(:request) { request }
53
+ }
54
+ end
47
55
  end
48
56
 
49
57
  class TextSelector
@@ -60,6 +68,29 @@ RSpec::Matchers.define :match_select do |*expected|
60
68
  end
61
69
  end
62
70
 
71
+ module FakeCollections
72
+ def fake_connection
73
+ double(:connection).tap do |c|
74
+ c.stub(:quote_column_name) { |col| col.to_s }
75
+ end
76
+ end
77
+
78
+ def fake_active_record_collection(table_name = 'some_table',
79
+ columns = [:name, :description])
80
+ (1..1000).to_a.tap do |c|
81
+ c.stub(connection: fake_connection)
82
+ c.stub(quoted_table_name: table_name)
83
+ c.stub(table_name: table_name)
84
+ c.stub(to_sql: "SELECT * FROM MONKEYS")
85
+ c.stub(:table) {
86
+ double.tap do |t|
87
+ t.stub(:columns) { columns.map{|c| {name: c} } }
88
+ end
89
+ }
90
+ c.stub(:where) { c }
91
+ end
92
+ end
93
+ end
63
94
 
64
95
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
65
96
  RSpec.configure do |config|
@@ -71,6 +102,7 @@ RSpec.configure do |config|
71
102
  config.include WillPaginate::ActionView if Module.const_defined? :WillPaginate
72
103
  config.include Kaminari::ActionViewExtension if Module.const_defined? :Kaminari
73
104
  config.include ActionFaker
105
+ config.include FakeCollections
74
106
 
75
107
  config.before do
76
108
  MagicGrid.logger = NullObject.new
@@ -1,3 +1,7 @@
1
+ if Module.const_defined? :WillPaginate
2
+ require 'will_paginate/array'
3
+ end
4
+
1
5
  class UsersController < ApplicationController
2
6
  # GET /users
3
7
  # GET /users.json
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magic_grid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.1
4
+ version: 0.12.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-17 00:00:00.000000000 Z
12
+ date: 2012-11-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -91,112 +91,116 @@ dependencies:
91
91
  - - ~>
92
92
  - !ruby/object:Gem::Version
93
93
  version: 2.11.0
94
- description: ! " Displays a collection (ActiveRelation or Array) wrapped in an
95
- html table with server\n side column sorting, filtering hooks, and search bar.
96
- Large collections can be\n paginated with either the will_paginate gem or kaminari
97
- gem if you use them, or a naive\n Enumerable based paginator (without pager links)
98
- if neither is present.\n"
94
+ description: ! " Displays a collection (ActiveRelation or Array-like object) wrapped
95
+ in an\n html table with server side column sorting, filtering hooks, and search\n
96
+ \ bar. Large collections can be paginated with either the will_paginate gem\n
97
+ \ or kaminari gem if you use them, or a naive Enumerable based paginator\n (without
98
+ pager links) if neither is present.\n"
99
99
  email:
100
100
  - r.m.graham@gmail.com
101
101
  executables: []
102
102
  extensions: []
103
103
  extra_rdoc_files: []
104
104
  files:
105
+ - lib/tasks/magic_grid_tasks.rake
105
106
  - lib/magic_grid.rb
106
107
  - lib/assets/javascripts/magic_grid.js
107
- - lib/tasks/magic_grid_tasks.rake
108
- - lib/magic_grid/version.rb
109
- - lib/magic_grid/helpers.rb
110
108
  - lib/magic_grid/collection.rb
111
- - lib/magic_grid/engine.rb
112
- - lib/magic_grid/logger.rb
113
109
  - lib/magic_grid/definition.rb
110
+ - lib/magic_grid/html_grid.rb
111
+ - lib/magic_grid/helpers.rb
112
+ - lib/magic_grid/column.rb
113
+ - lib/magic_grid/version.rb
114
+ - lib/magic_grid/logger.rb
115
+ - lib/magic_grid/engine.rb
114
116
  - lib/locales/en.yml
115
117
  - MIT-LICENSE
116
118
  - Rakefile
117
119
  - README.md
118
- - spec/collection_spec.rb
119
- - spec/logger_spec.rb
120
+ - spec/column_spec.rb
120
121
  - spec/spec_helper.rb
121
122
  - spec/helpers_spec.rb
123
+ - spec/html_grid_spec.rb
124
+ - spec/collection_spec.rb
122
125
  - spec/definition_spec.rb
123
- - test/magic_grid_test.rb
126
+ - spec/logger_spec.rb
124
127
  - test/test_helper.rb
125
- - test/dummy/public/500.html
128
+ - test/magic_grid_test.rb
129
+ - test/dummy/config.ru
130
+ - test/dummy/Rakefile
126
131
  - test/dummy/public/favicon.ico
127
- - test/dummy/public/css/smoothness/images/ui-icons_cd0a0a_256x240.png
132
+ - test/dummy/public/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
133
+ - test/dummy/public/css/smoothness/images/ui-icons_454545_256x240.png
128
134
  - test/dummy/public/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
129
- - test/dummy/public/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
130
- - test/dummy/public/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
135
+ - test/dummy/public/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
131
136
  - test/dummy/public/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
132
- - test/dummy/public/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
133
- - test/dummy/public/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
137
+ - test/dummy/public/css/smoothness/images/ui-icons_222222_256x240.png
134
138
  - test/dummy/public/css/smoothness/images/ui-icons_888888_256x240.png
139
+ - test/dummy/public/css/smoothness/images/ui-icons_cd0a0a_256x240.png
135
140
  - test/dummy/public/css/smoothness/images/ui-icons_2e83ff_256x240.png
136
- - test/dummy/public/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
137
- - test/dummy/public/css/smoothness/images/ui-icons_454545_256x240.png
138
- - test/dummy/public/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
139
- - test/dummy/public/css/smoothness/images/ui-icons_222222_256x240.png
141
+ - test/dummy/public/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
142
+ - test/dummy/public/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
143
+ - test/dummy/public/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
144
+ - test/dummy/public/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
140
145
  - test/dummy/public/css/smoothness/jquery-ui-1.8.18.custom.css
141
- - test/dummy/public/404.html
142
146
  - test/dummy/public/422.html
143
- - test/dummy/app/models/post.rb
144
- - test/dummy/app/models/user.rb
145
- - test/dummy/app/helpers/users_helper.rb
147
+ - test/dummy/public/404.html
148
+ - test/dummy/public/500.html
146
149
  - test/dummy/app/helpers/posts_helper.rb
147
150
  - test/dummy/app/helpers/application_helper.rb
151
+ - test/dummy/app/helpers/users_helper.rb
152
+ - test/dummy/app/controllers/users_controller.rb
153
+ - test/dummy/app/controllers/posts_controller.rb
154
+ - test/dummy/app/controllers/application_controller.rb
155
+ - test/dummy/app/models/user.rb
156
+ - test/dummy/app/models/post.rb
148
157
  - test/dummy/app/assets/javascripts/application.js
149
158
  - test/dummy/app/assets/javascripts/users.js
150
159
  - test/dummy/app/assets/javascripts/posts.js
151
- - test/dummy/app/assets/stylesheets/posts.css
152
160
  - test/dummy/app/assets/stylesheets/users.css
153
161
  - test/dummy/app/assets/stylesheets/scaffold.css
162
+ - test/dummy/app/assets/stylesheets/posts.css
154
163
  - test/dummy/app/assets/stylesheets/application.css
155
- - test/dummy/app/views/layouts/application.html.erb
156
- - test/dummy/app/views/users/index.html.erb
157
- - test/dummy/app/views/users/show.html.erb
158
164
  - test/dummy/app/views/users/_form.html.erb
165
+ - test/dummy/app/views/users/index.html.erb
159
166
  - test/dummy/app/views/users/edit.html.erb
167
+ - test/dummy/app/views/users/show.html.erb
160
168
  - test/dummy/app/views/users/new.html.erb
161
- - test/dummy/app/views/posts/by_user.html.erb
162
- - test/dummy/app/views/posts/index.html.erb
163
- - test/dummy/app/views/posts/show.html.erb
169
+ - test/dummy/app/views/layouts/application.html.erb
164
170
  - test/dummy/app/views/posts/_form.html.erb
171
+ - test/dummy/app/views/posts/index.html.erb
165
172
  - test/dummy/app/views/posts/edit.html.erb
173
+ - test/dummy/app/views/posts/show.html.erb
174
+ - test/dummy/app/views/posts/by_user.html.erb
166
175
  - test/dummy/app/views/posts/new.html.erb
167
- - test/dummy/app/controllers/users_controller.rb
168
- - test/dummy/app/controllers/application_controller.rb
169
- - test/dummy/app/controllers/posts_controller.rb
170
- - test/dummy/test/unit/helpers/posts_helper_test.rb
171
- - test/dummy/test/unit/helpers/users_helper_test.rb
172
- - test/dummy/test/unit/post_test.rb
173
- - test/dummy/test/unit/user_test.rb
174
- - test/dummy/test/integration/spider_test.rb
175
- - test/dummy/test/fixtures/users.yml
176
- - test/dummy/test/fixtures/posts.yml
177
- - test/dummy/test/functional/posts_controller_test.rb
178
- - test/dummy/test/functional/users_controller_test.rb
179
- - test/dummy/db/migrate/20111025191809_create_users.rb
180
176
  - test/dummy/db/migrate/20111025195229_create_posts.rb
177
+ - test/dummy/db/migrate/20111025191809_create_users.rb
181
178
  - test/dummy/db/schema.rb
182
- - test/dummy/config.ru
183
179
  - test/dummy/script/rails
184
- - test/dummy/Rakefile
185
- - test/dummy/config/application.rb
186
- - test/dummy/config/database.yml
187
- - test/dummy/config/routes.rb
188
- - test/dummy/config/boot.rb
189
- - test/dummy/config/environments/development.rb
190
- - test/dummy/config/environments/production.rb
191
- - test/dummy/config/environments/test.rb
192
- - test/dummy/config/locales/en.yml
193
- - test/dummy/config/initializers/wrap_parameters.rb
194
- - test/dummy/config/initializers/session_store.rb
180
+ - test/dummy/config/initializers/mime_types.rb
195
181
  - test/dummy/config/initializers/inflections.rb
182
+ - test/dummy/config/initializers/wrap_parameters.rb
196
183
  - test/dummy/config/initializers/secret_token.rb
197
184
  - test/dummy/config/initializers/backtrace_silencers.rb
198
- - test/dummy/config/initializers/mime_types.rb
185
+ - test/dummy/config/initializers/session_store.rb
186
+ - test/dummy/config/boot.rb
187
+ - test/dummy/config/database.yml
188
+ - test/dummy/config/environments/production.rb
189
+ - test/dummy/config/environments/development.rb
190
+ - test/dummy/config/environments/test.rb
191
+ - test/dummy/config/application.rb
192
+ - test/dummy/config/routes.rb
199
193
  - test/dummy/config/environment.rb
194
+ - test/dummy/config/locales/en.yml
195
+ - test/dummy/test/integration/spider_test.rb
196
+ - test/dummy/test/unit/user_test.rb
197
+ - test/dummy/test/unit/helpers/posts_helper_test.rb
198
+ - test/dummy/test/unit/helpers/users_helper_test.rb
199
+ - test/dummy/test/unit/post_test.rb
200
+ - test/dummy/test/functional/users_controller_test.rb
201
+ - test/dummy/test/functional/posts_controller_test.rb
202
+ - test/dummy/test/fixtures/users.yml
203
+ - test/dummy/test/fixtures/posts.yml
200
204
  homepage: https://github.com/rmg/magic_grid
201
205
  licenses: []
202
206
  post_install_message:
@@ -211,7 +215,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
211
215
  version: '0'
212
216
  segments:
213
217
  - 0
214
- hash: 4254976689102437121
218
+ hash: 2920138496229125563
215
219
  required_rubygems_version: !ruby/object:Gem::Requirement
216
220
  none: false
217
221
  requirements:
@@ -220,94 +224,96 @@ required_rubygems_version: !ruby/object:Gem::Requirement
220
224
  version: '0'
221
225
  segments:
222
226
  - 0
223
- hash: 4254976689102437121
227
+ hash: 2920138496229125563
224
228
  requirements: []
225
229
  rubyforge_project:
226
- rubygems_version: 1.8.23
230
+ rubygems_version: 1.8.24
227
231
  signing_key:
228
232
  specification_version: 3
229
233
  summary: Easy collection display grid with column sorting and pagination
230
234
  test_files:
231
- - spec/collection_spec.rb
232
- - spec/logger_spec.rb
235
+ - spec/column_spec.rb
233
236
  - spec/spec_helper.rb
234
237
  - spec/helpers_spec.rb
238
+ - spec/html_grid_spec.rb
239
+ - spec/collection_spec.rb
235
240
  - spec/definition_spec.rb
236
- - test/magic_grid_test.rb
241
+ - spec/logger_spec.rb
237
242
  - test/test_helper.rb
238
- - test/dummy/public/500.html
243
+ - test/magic_grid_test.rb
244
+ - test/dummy/config.ru
245
+ - test/dummy/Rakefile
239
246
  - test/dummy/public/favicon.ico
240
- - test/dummy/public/css/smoothness/images/ui-icons_cd0a0a_256x240.png
247
+ - test/dummy/public/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
248
+ - test/dummy/public/css/smoothness/images/ui-icons_454545_256x240.png
241
249
  - test/dummy/public/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
242
- - test/dummy/public/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
243
- - test/dummy/public/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
250
+ - test/dummy/public/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
244
251
  - test/dummy/public/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
245
- - test/dummy/public/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
246
- - test/dummy/public/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
252
+ - test/dummy/public/css/smoothness/images/ui-icons_222222_256x240.png
247
253
  - test/dummy/public/css/smoothness/images/ui-icons_888888_256x240.png
254
+ - test/dummy/public/css/smoothness/images/ui-icons_cd0a0a_256x240.png
248
255
  - test/dummy/public/css/smoothness/images/ui-icons_2e83ff_256x240.png
249
- - test/dummy/public/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
250
- - test/dummy/public/css/smoothness/images/ui-icons_454545_256x240.png
251
- - test/dummy/public/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
252
- - test/dummy/public/css/smoothness/images/ui-icons_222222_256x240.png
256
+ - test/dummy/public/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
257
+ - test/dummy/public/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
258
+ - test/dummy/public/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
259
+ - test/dummy/public/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
253
260
  - test/dummy/public/css/smoothness/jquery-ui-1.8.18.custom.css
254
- - test/dummy/public/404.html
255
261
  - test/dummy/public/422.html
256
- - test/dummy/app/models/post.rb
257
- - test/dummy/app/models/user.rb
258
- - test/dummy/app/helpers/users_helper.rb
262
+ - test/dummy/public/404.html
263
+ - test/dummy/public/500.html
259
264
  - test/dummy/app/helpers/posts_helper.rb
260
265
  - test/dummy/app/helpers/application_helper.rb
266
+ - test/dummy/app/helpers/users_helper.rb
267
+ - test/dummy/app/controllers/users_controller.rb
268
+ - test/dummy/app/controllers/posts_controller.rb
269
+ - test/dummy/app/controllers/application_controller.rb
270
+ - test/dummy/app/models/user.rb
271
+ - test/dummy/app/models/post.rb
261
272
  - test/dummy/app/assets/javascripts/application.js
262
273
  - test/dummy/app/assets/javascripts/users.js
263
274
  - test/dummy/app/assets/javascripts/posts.js
264
- - test/dummy/app/assets/stylesheets/posts.css
265
275
  - test/dummy/app/assets/stylesheets/users.css
266
276
  - test/dummy/app/assets/stylesheets/scaffold.css
277
+ - test/dummy/app/assets/stylesheets/posts.css
267
278
  - test/dummy/app/assets/stylesheets/application.css
268
- - test/dummy/app/views/layouts/application.html.erb
269
- - test/dummy/app/views/users/index.html.erb
270
- - test/dummy/app/views/users/show.html.erb
271
279
  - test/dummy/app/views/users/_form.html.erb
280
+ - test/dummy/app/views/users/index.html.erb
272
281
  - test/dummy/app/views/users/edit.html.erb
282
+ - test/dummy/app/views/users/show.html.erb
273
283
  - test/dummy/app/views/users/new.html.erb
274
- - test/dummy/app/views/posts/by_user.html.erb
275
- - test/dummy/app/views/posts/index.html.erb
276
- - test/dummy/app/views/posts/show.html.erb
284
+ - test/dummy/app/views/layouts/application.html.erb
277
285
  - test/dummy/app/views/posts/_form.html.erb
286
+ - test/dummy/app/views/posts/index.html.erb
278
287
  - test/dummy/app/views/posts/edit.html.erb
288
+ - test/dummy/app/views/posts/show.html.erb
289
+ - test/dummy/app/views/posts/by_user.html.erb
279
290
  - test/dummy/app/views/posts/new.html.erb
280
- - test/dummy/app/controllers/users_controller.rb
281
- - test/dummy/app/controllers/application_controller.rb
282
- - test/dummy/app/controllers/posts_controller.rb
283
- - test/dummy/test/unit/helpers/posts_helper_test.rb
284
- - test/dummy/test/unit/helpers/users_helper_test.rb
285
- - test/dummy/test/unit/post_test.rb
286
- - test/dummy/test/unit/user_test.rb
287
- - test/dummy/test/integration/spider_test.rb
288
- - test/dummy/test/fixtures/users.yml
289
- - test/dummy/test/fixtures/posts.yml
290
- - test/dummy/test/functional/posts_controller_test.rb
291
- - test/dummy/test/functional/users_controller_test.rb
292
- - test/dummy/db/migrate/20111025191809_create_users.rb
293
291
  - test/dummy/db/migrate/20111025195229_create_posts.rb
292
+ - test/dummy/db/migrate/20111025191809_create_users.rb
294
293
  - test/dummy/db/schema.rb
295
- - test/dummy/config.ru
296
294
  - test/dummy/script/rails
297
- - test/dummy/Rakefile
298
- - test/dummy/config/application.rb
299
- - test/dummy/config/database.yml
300
- - test/dummy/config/routes.rb
301
- - test/dummy/config/boot.rb
302
- - test/dummy/config/environments/development.rb
303
- - test/dummy/config/environments/production.rb
304
- - test/dummy/config/environments/test.rb
305
- - test/dummy/config/locales/en.yml
306
- - test/dummy/config/initializers/wrap_parameters.rb
307
- - test/dummy/config/initializers/session_store.rb
295
+ - test/dummy/config/initializers/mime_types.rb
308
296
  - test/dummy/config/initializers/inflections.rb
297
+ - test/dummy/config/initializers/wrap_parameters.rb
309
298
  - test/dummy/config/initializers/secret_token.rb
310
299
  - test/dummy/config/initializers/backtrace_silencers.rb
311
- - test/dummy/config/initializers/mime_types.rb
300
+ - test/dummy/config/initializers/session_store.rb
301
+ - test/dummy/config/boot.rb
302
+ - test/dummy/config/database.yml
303
+ - test/dummy/config/environments/production.rb
304
+ - test/dummy/config/environments/development.rb
305
+ - test/dummy/config/environments/test.rb
306
+ - test/dummy/config/application.rb
307
+ - test/dummy/config/routes.rb
312
308
  - test/dummy/config/environment.rb
309
+ - test/dummy/config/locales/en.yml
310
+ - test/dummy/test/integration/spider_test.rb
311
+ - test/dummy/test/unit/user_test.rb
312
+ - test/dummy/test/unit/helpers/posts_helper_test.rb
313
+ - test/dummy/test/unit/helpers/users_helper_test.rb
314
+ - test/dummy/test/unit/post_test.rb
315
+ - test/dummy/test/functional/users_controller_test.rb
316
+ - test/dummy/test/functional/posts_controller_test.rb
317
+ - test/dummy/test/fixtures/users.yml
318
+ - test/dummy/test/fixtures/posts.yml
313
319
  has_rdoc: yard