cells 3.10.0 → 3.10.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: db50f24112bb37938584135fab9266353fe79b7d
4
- data.tar.gz: dbccc6a922a93e77ee3d3e9ec44f87f95835eed0
3
+ metadata.gz: c2d03718953028c4185882847b48fad453efa237
4
+ data.tar.gz: 32dbbe7fbb4b1605d71ceb671939e20767d29139
5
5
  SHA512:
6
- metadata.gz: 0f4b0a3a5ccb60348172268dd14b64c5e246549ccc49b3f3aa3da15f8b40dd96785bd92b7ad875fb881f632dfbfaae93d6b507decd1de22b2821147313e1e81f
7
- data.tar.gz: 74d5ab523f9075541a9472a20eb3ffdfe3d420e42f26a4e9be22769b955351c3fa3b03f47108a16b0e440825e28c9ca2e0b91cbb63cdb0b94a2f67203631ca14
6
+ metadata.gz: 461f6ab4355c3d259369c7f6de6593fbcb1029f0e1e5ed10ea67048fc7bf720a9e1be74ee32f4c9b14985915d806852c1327ec2467a7c4a645ff828489f8087b
7
+ data.tar.gz: 0c1bc64ceb91d75103e8a4a6eacece2f14eb12f36fccaf1dc89001c16f7b72bc927f4f4799031e056500ca100bcc440324491928773e77ea9482b02b2709bff8
data/CHANGES.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 3.10.1
2
+
3
+ Allow packaging assets for Rails' asset pipeline into cells. This is still experimental but works great. I love it.
4
+
1
5
  ## 3.10.0
2
6
 
3
7
  * API CHANGE: Blocks passed to `::cache` and `::cache ... if: ` no longer receive the cell instance as the first argument. Instead, they're executed in cell instance context. Change your code like this:
data/README.md CHANGED
@@ -113,6 +113,88 @@ The distinction between partials and views is making things more complex, so why
113
113
  = render :view => 'items'
114
114
  ```
115
115
 
116
+ ## File Structure
117
+
118
+ In Cells 3.10 we introduce a new _optional_ file structure integrating with [trailblazer](https://github.com/apotonick/trailblazer)'s "concept-oriented" layout.
119
+
120
+ This new file layout makes a cell fully **self-contained** so it can be moved around just by grabbing one single directory.
121
+
122
+ Activate it with
123
+
124
+ ```ruby
125
+ class Comment::Cell
126
+ self_contained!
127
+
128
+ # ...
129
+ end
130
+ ```
131
+
132
+ Now, the cell directory ideally looks like the following.
133
+
134
+ ```
135
+ app
136
+ ├── cells
137
+ │ ├── comment
138
+ │ │ ├── cell.rb
139
+ │ │ ├── views
140
+ │ │ │ ├── show.haml
141
+ │ │ │ ├── list.haml
142
+ ```
143
+
144
+
145
+ Here, cell class and associated views are in the same self-contained `comment` directory.
146
+
147
+ You can use the new views directory along with leaving your cell _class_ at `app/cells/comment_cell.rb`, if you fancy that.
148
+
149
+
150
+ ## Asset Pipeline
151
+
152
+ Cells can also package their own assets like JavaScript, CoffeeScript, Sass and stylesheets. When configured, those files go directly into Rails' asset pipeline. This is a great way to clean up your assets by pushing scripts and styles into the component they belong to. It makes it so much easier to find out which files are actually involved per "widget".
153
+
154
+ Note: This feature is **still experimental** and the API (file name conventions, configuration, etc.) might change.
155
+
156
+ Assets per default sit in the cell's `assets/` directory.
157
+
158
+ ```
159
+ app
160
+ ├── cells
161
+ │ ├── comment
162
+ │ │ ├── views
163
+ │ │ ├── ..
164
+ │ │ ├── assets
165
+ │ │ │ ├── comment.js.coffee
166
+ │ │ │ ├── comment.css.sass
167
+ ```
168
+
169
+ Adding the assets files to the asset pipeline currently involves two steps (I know it feels a bit clumsy, but I'm sure we'll find a way to make it better soon).
170
+
171
+ 1. Tell Rails that this cell provides its own self-contained assets.
172
+
173
+ ```ruby
174
+ Gemgem::Application.configure do
175
+ # ...
176
+
177
+ config.cells.with_assets = %w(comment)
178
+ ```
179
+
180
+ This will add `app/cells/comment/assets/` to the asset pipeline's paths.
181
+
182
+ 2. Include the assets in `application.js` and `application.css.sass`
183
+
184
+ In `app/assets/application.js`, you have to add the cell assets manually.
185
+
186
+ ```javascript
187
+ //=# require comments
188
+ ```
189
+
190
+ Same goes into `app/assets/application.css.sass`.
191
+
192
+ ```sass
193
+ @import 'comments';
194
+ ```
195
+
196
+ In future versions, we wanna improve this by automatically including cell assets and avoiding name clashes. If you have ideas, suggestions, I'd love to hear them.
197
+
116
198
  ### Rendering Global Partials
117
199
 
118
200
  Sometimes you need to render a global partial from `app/views` within a cell. For instance, the `gmaps4rails` helper depends on a global partial. While this breaks encapsulation it's still possible in cells - just add the global view path.
@@ -221,6 +303,7 @@ The block's return value is appended to the state key: `"cells/cart/show/0ecb136
221
303
  Cache configuration is inherited to derived cells.
222
304
 
223
305
 
306
+
224
307
  ### A Note On Fragment Caching
225
308
 
226
309
  Fragment caching is [not implemented in Cells per design](http://nicksda.apotomo.de/2011/02/rails-misapprehensions-caching-views-is-not-the-views-job/) - Cells tries to move caching to the class layer enforcing an object-oriented design rather than cluttering your views with caching blocks.
@@ -284,7 +367,7 @@ Think of a view model as a cell decorating a model or a collection. In this mode
284
367
 
285
368
  ```ruby
286
369
  class SongCell < Cell::Rails
287
- include Cell::Rails::ViewModel
370
+ include ViewModel
288
371
 
289
372
  property :title
290
373
 
@@ -6,5 +6,6 @@ gemspec path: '../'
6
6
  gem 'railties', '4.0.2'
7
7
  gem 'activemodel', '4.0.2'
8
8
  gem 'minitest', '4.7.5'
9
+ gem 'simple_form', '~> 3.0.0'
9
10
 
10
11
  gem 'label', :path => "../test/dummy/label"
@@ -3,8 +3,8 @@ source "http://rubygems.org"
3
3
  # Specify your gem's dependencies in cells.gemspec
4
4
  gemspec path: '../'
5
5
 
6
- gem 'railties', '4.1.0.beta1'
7
- gem 'activemodel', '4.1.0.beta1'
6
+ gem 'railties', '4.1.0.rc2'
7
+ gem 'activemodel', '4.1.0.rc2'
8
8
  gem 'minitest', '5.2.0'
9
9
 
10
10
  gem 'label', :path => "../test/dummy/label"
@@ -90,5 +90,24 @@ module Cell
90
90
  def self.controller_path
91
91
  @controller_path ||= name.sub(/Cell$/, '').underscore unless anonymous?
92
92
  end
93
+
94
+
95
+ # Enforces the new trailblazer directory layout where cells (or concepts in general) are fully self-contained in its own directory.
96
+ module SelfContained
97
+ def self_contained!
98
+ include Prefixes
99
+ end
100
+
101
+ module Prefixes
102
+ def _prefixes
103
+ @_prefixes ||= begin
104
+ super.tap do |prefixes|
105
+ prefixes[-1] = "#{controller_path}/views" # replace comment/.
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
111
+ extend SelfContained
93
112
  end
94
113
  end
@@ -3,6 +3,9 @@
3
3
  # no locals
4
4
  # options are automatically made instance methods via constructor.
5
5
  # call "helpers" in class
6
+
7
+ # TODO: warn when using ::property but not passing in model in constructor.
8
+
6
9
  class Cell::Rails
7
10
  module ViewModel
8
11
  include Cell::OptionsConstructor
@@ -2,20 +2,38 @@ require "rails/railtie"
2
2
 
3
3
  module Cells
4
4
  class Railtie < ::Rails::Railtie
5
+ config.cells = ActiveSupport::OrderedOptions.new
6
+
7
+
5
8
  initializer "cells.attach_router" do |app|
6
9
  Cell::Base.class_eval do
7
10
  include app.routes.url_helpers
8
11
  end
9
12
  end
10
-
13
+
11
14
  initializer "cells.setup_view_paths" do |app|
12
15
  Cell::Base.setup_view_paths!
13
16
  end
14
-
17
+
15
18
  initializer "cells.setup_engines_view_paths" do |app|
16
19
  Cells::Engines.append_engines_view_paths_for(app.config.action_controller)
17
20
  end
18
-
21
+
22
+ # ruthlessly stolen from the zurb-foundation gem.
23
+ add_paths_block = lambda do |app|
24
+ (app.config.cells.with_assets or []).each do |name|
25
+ # FIXME: this doesn't take engine cells into account.
26
+ app.config.assets.paths << "#{app.root}/app/cells/#{name}/assets"
27
+ end
28
+ end
29
+
30
+ # Standard initializer
31
+ initializer 'cells.update_asset_paths', &add_paths_block
32
+
33
+ # run at assets:precompile even when `config.assets.initialize_on_precompile = false`
34
+ initializer 'cells.update_asset_paths', :group => :assets, &add_paths_block
35
+
36
+
19
37
  rake_tasks do
20
38
  load "cells/cells.rake"
21
39
  end
@@ -1,3 +1,3 @@
1
1
  module Cells
2
- VERSION = '3.10.0'
2
+ VERSION = '3.10.1'
3
3
  end
@@ -0,0 +1 @@
1
+ %h3= @title
@@ -0,0 +1,3 @@
1
+ <%= form_for FormsTest::Song.new, :url => "/songs" do |f| %>
2
+ <%= f.text_field :name %>
3
+ <% end %>
@@ -0,0 +1,2 @@
1
+ = form_for FormsTest::Song.new, :url => "/songs" do |f|
2
+ = f.text_field :name
@@ -0,0 +1,74 @@
1
+ require 'test_helper'
2
+
3
+ class FormsTest < MiniTest::Spec
4
+ class Song < OpenStruct
5
+ extend ActiveModel::Naming
6
+ end
7
+
8
+ include Cell::TestCase::TestMethods
9
+
10
+ let (:bassist) { cell(:bassist) }
11
+
12
+ it "renders input fields within the form tag with ERB" do
13
+ bassist.instance_eval do
14
+ def form_for
15
+ render
16
+ end
17
+ end
18
+
19
+ html = bassist.render_state(:form_for)
20
+
21
+ html.must_match Regexp.new("<form.+[name].+<\/form>", Regexp::MULTILINE)
22
+ end
23
+
24
+ class SongFormCell < BassistCell
25
+ include ViewModel
26
+ include ActionView::Helpers::FormHelper
27
+
28
+ def form
29
+ render :view => :form_for
30
+ end
31
+
32
+ def dom_class(*)
33
+
34
+ end
35
+
36
+ def dom_id(*)
37
+
38
+ end
39
+ end
40
+
41
+ it "renders input fields within the form tag with ERB and ViewModel" do
42
+
43
+ html = SongFormCell.new(@controller).form
44
+ puts html.to_s
45
+
46
+ html.must_match Regexp.new("<form.+<input id=\"forms_test_song_name\".+<\/form>", Regexp::MULTILINE)
47
+ end
48
+
49
+
50
+ class HamlSongFormCell < BassistCell
51
+ include ViewModel
52
+ include ActionView::Helpers::FormHelper
53
+
54
+ def form
55
+ render :view => :form_for_in_haml
56
+ end
57
+
58
+ def dom_class(*)
59
+
60
+ end
61
+
62
+ def dom_id(*)
63
+
64
+ end
65
+ end
66
+
67
+ it "renders input fields within the form tag with HAML and ViewModel" do
68
+
69
+ html = HamlSongFormCell.new(@controller).form
70
+ puts html.to_s
71
+
72
+ html.must_match Regexp.new("<form.+<input id=\"forms_test_song_name\".+<\/form>", Regexp::MULTILINE)
73
+ end
74
+ end
@@ -102,6 +102,7 @@ class ViewMethodsTest < ActionController::TestCase
102
102
  end
103
103
  end
104
104
  get 'skills'
105
- assert_equal "<form accept-charset=\"UTF-8\" action=\"musician/index\" method=\"post\"><div style=\"margin:0;padding:0;display:inline\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" /></div>\n", @response.body
105
+
106
+ @response.body.must_match /<form.*action="musician\/index"/
106
107
  end
107
108
  end
@@ -1,5 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
+ # TODO: test if nested state renders are html_safe.
4
+
3
5
  class Song < OpenStruct
4
6
  extend ActiveModel::Naming
5
7
 
@@ -56,6 +58,12 @@ class SongCell < Cell::Rails
56
58
  end
57
59
 
58
60
  class ViewModelTest < MiniTest::Spec
61
+ # class PianoSongCell < Cell::Rails
62
+ # include ViewModel
63
+
64
+ # property :title
65
+ # end
66
+
59
67
  # views :show, :create #=> wrap in render_state(:show, *)
60
68
  let (:cell) { SongCell.build_for(nil, :title => "Shades Of Truth") }
61
69
 
@@ -87,6 +95,13 @@ if Cell.rails3_2_or_more?
87
95
  end
88
96
 
89
97
 
98
+ # test "instantiating without model, but call to ::property" do
99
+ # assert_raises do
100
+ # @controller.cell("view_model_test/piano_song")
101
+ # end
102
+ # end
103
+
104
+
90
105
  test "URL helpers in view" do
91
106
  @cell.show.must_equal %{<h1>BLINDFOLD</h1>
92
107
  <a href=\"#{@url}\">Permalink</a>
@@ -0,0 +1,24 @@
1
+ require 'test_helper'
2
+
3
+ class AlbumCell < Cell::Rails
4
+ self_contained!
5
+
6
+ def cover
7
+ @title = "The Sufferer & The Witness"
8
+ render
9
+ end
10
+ end
11
+
12
+ unless Cell.rails3_0?
13
+
14
+ class SelfContainedTest < MiniTest::Spec
15
+ include Cell::TestCase::TestMethods
16
+
17
+ let (:album) { cell(:album) }
18
+
19
+ it "renders views from album/views/" do
20
+ album.render_state(:cover).must_equal "<h3>The Sufferer &amp; The Witness</h3>\n"
21
+ end
22
+ end
23
+
24
+ end
metadata CHANGED
@@ -1,139 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cells
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.10.0
4
+ version: 3.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sutterer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-10 00:00:00.000000000 Z
11
+ date: 2014-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.0'
20
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
26
  version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: railties
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '3.0'
34
34
  type: :runtime
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: '3.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: uber
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.0.4
48
48
  type: :runtime
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.0.4
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: haml
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: slim
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: tzinfo
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: minitest
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: 4.7.5
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: 4.7.5
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: activemodel
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '>='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  description: Cells are view components for Rails. They are lightweight controllers,
@@ -145,8 +145,8 @@ executables: []
145
145
  extensions: []
146
146
  extra_rdoc_files: []
147
147
  files:
148
- - .gitignore
149
- - .travis.yml
148
+ - ".gitignore"
149
+ - ".travis.yml"
150
150
  - CHANGES.md
151
151
  - Gemfile
152
152
  - README.md
@@ -193,12 +193,15 @@ files:
193
193
  - lib/generators/templates/view.haml
194
194
  - lib/generators/templates/view.slim
195
195
  - lib/generators/test_unit/cell_generator.rb
196
+ - test/app/cells/album/views/cover.haml
196
197
  - test/app/cells/bad_guitarist/_dii.html.erb
197
198
  - test/app/cells/bad_guitarist_cell.rb
198
199
  - test/app/cells/bassist/_dii.html.erb
199
200
  - test/app/cells/bassist/ahem.html.erb
200
201
  - test/app/cells/bassist/compose.html.erb
201
202
  - test/app/cells/bassist/contact_form.html.erb
203
+ - test/app/cells/bassist/form_for.erb
204
+ - test/app/cells/bassist/form_for_in_haml.haml
202
205
  - test/app/cells/bassist/jam.html.erb
203
206
  - test/app/cells/bassist/play.html.erb
204
207
  - test/app/cells/bassist/play.js.erb
@@ -272,12 +275,14 @@ files:
272
275
  - test/rack_test.rb
273
276
  - test/rails/caching_test.rb
274
277
  - test/rails/cells_test.rb
278
+ - test/rails/forms_test.rb
275
279
  - test/rails/integration_test.rb
276
280
  - test/rails/render_test.rb
277
281
  - test/rails/router_test.rb
278
282
  - test/rails/view_model_test.rb
279
283
  - test/rails/view_test.rb
280
284
  - test/rails_helper_api_test.rb
285
+ - test/self_contained_test.rb
281
286
  - test/test_case_test.rb
282
287
  - test/test_helper.rb
283
288
  homepage: http://cells.rubyforge.org
@@ -290,18 +295,111 @@ require_paths:
290
295
  - lib
291
296
  required_ruby_version: !ruby/object:Gem::Requirement
292
297
  requirements:
293
- - - '>='
298
+ - - ">="
294
299
  - !ruby/object:Gem::Version
295
300
  version: '0'
296
301
  required_rubygems_version: !ruby/object:Gem::Requirement
297
302
  requirements:
298
- - - '>='
303
+ - - ">="
299
304
  - !ruby/object:Gem::Version
300
305
  version: '0'
301
306
  requirements: []
302
307
  rubyforge_project:
303
- rubygems_version: 2.0.3
308
+ rubygems_version: 2.2.1
304
309
  signing_key:
305
310
  specification_version: 4
306
311
  summary: View Components for Rails.
307
- test_files: []
312
+ test_files:
313
+ - test/app/cells/album/views/cover.haml
314
+ - test/app/cells/bad_guitarist/_dii.html.erb
315
+ - test/app/cells/bad_guitarist_cell.rb
316
+ - test/app/cells/bassist/_dii.html.erb
317
+ - test/app/cells/bassist/ahem.html.erb
318
+ - test/app/cells/bassist/compose.html.erb
319
+ - test/app/cells/bassist/contact_form.html.erb
320
+ - test/app/cells/bassist/form_for.erb
321
+ - test/app/cells/bassist/form_for_in_haml.haml
322
+ - test/app/cells/bassist/jam.html.erb
323
+ - test/app/cells/bassist/play.html.erb
324
+ - test/app/cells/bassist/play.js.erb
325
+ - test/app/cells/bassist/pose.html.erb
326
+ - test/app/cells/bassist/promote.html.erb
327
+ - test/app/cells/bassist/provoke.html.erb
328
+ - test/app/cells/bassist/shout.html.erb
329
+ - test/app/cells/bassist/sing.html.haml
330
+ - test/app/cells/bassist/slap.html.erb
331
+ - test/app/cells/bassist/yell.en.html.erb
332
+ - test/app/cells/bassist_cell.rb
333
+ - test/app/cells/club_security.rb
334
+ - test/app/cells/club_security/guard/help.html.erb
335
+ - test/app/cells/club_security/guard_cell.rb
336
+ - test/app/cells/club_security/medic/help.html.erb
337
+ - test/app/cells/club_security/medic_cell.rb
338
+ - test/app/cells/layouts/b.erb
339
+ - test/app/cells/layouts/metal.html.erb
340
+ - test/app/cells/rails_helper_api_test/bassist/edit.html.erb
341
+ - test/app/cells/shouter/sing.html.erb
342
+ - test/app/cells/song/dashboard.haml
343
+ - test/app/cells/song/details.html.haml
344
+ - test/app/cells/song/info.html.haml
345
+ - test/app/cells/song/lyrics.html.haml
346
+ - test/app/cells/song/plays.haml
347
+ - test/app/cells/song/show.html.haml
348
+ - test/app/cells/song/title.html.haml
349
+ - test/app/cells/trumpeter/promote.html.erb
350
+ - test/app/cells/trumpeter_cell.rb
351
+ - test/app/cells/view_model_test/comments/show.haml
352
+ - test/app/views/shared/_dong.html.erb
353
+ - test/cell_generator_test.rb
354
+ - test/cell_module_test.rb
355
+ - test/cell_test.rb
356
+ - test/cells_module_test.rb
357
+ - test/deprecations_test.rb
358
+ - test/dummy/Rakefile
359
+ - test/dummy/app/controllers/application_controller.rb
360
+ - test/dummy/app/controllers/musician_controller.rb
361
+ - test/dummy/app/helpers/application_helper.rb
362
+ - test/dummy/app/views/layouts/application.html.erb
363
+ - test/dummy/app/views/musician/featured.html.erb
364
+ - test/dummy/app/views/musician/featured_with_block.html.erb
365
+ - test/dummy/app/views/musician/hamlet.html.haml
366
+ - test/dummy/app/views/musician/title.erb
367
+ - test/dummy/config.ru
368
+ - test/dummy/config/application.rb
369
+ - test/dummy/config/boot.rb
370
+ - test/dummy/config/database.yml
371
+ - test/dummy/config/environment.rb
372
+ - test/dummy/config/environments/development.rb
373
+ - test/dummy/config/environments/production.rb
374
+ - test/dummy/config/environments/test.rb
375
+ - test/dummy/config/locales/en.yml
376
+ - test/dummy/config/routes.rb
377
+ - test/dummy/db/test.sqlite3
378
+ - test/dummy/label/app/cells/label/show.erb
379
+ - test/dummy/label/app/cells/label_cell.rb
380
+ - test/dummy/label/label.gemspec
381
+ - test/dummy/label/lib/label.rb
382
+ - test/dummy/label/lib/label/version.rb
383
+ - test/dummy/log/production.log
384
+ - test/dummy/log/server.log
385
+ - test/dummy/public/404.html
386
+ - test/dummy/public/422.html
387
+ - test/dummy/public/500.html
388
+ - test/dummy/public/favicon.ico
389
+ - test/dummy/public/stylesheets/.gitkeep
390
+ - test/dummy/script/rails
391
+ - test/helper_test.rb
392
+ - test/rack_test.rb
393
+ - test/rails/caching_test.rb
394
+ - test/rails/cells_test.rb
395
+ - test/rails/forms_test.rb
396
+ - test/rails/integration_test.rb
397
+ - test/rails/render_test.rb
398
+ - test/rails/router_test.rb
399
+ - test/rails/view_model_test.rb
400
+ - test/rails/view_test.rb
401
+ - test/rails_helper_api_test.rb
402
+ - test/self_contained_test.rb
403
+ - test/test_case_test.rb
404
+ - test/test_helper.rb
405
+ has_rdoc: