cells 4.0.2 → 4.0.3
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/.travis.yml +12 -3
- data/CHANGES.md +7 -0
- data/Gemfile +1 -1
- data/README.md +7 -7
- data/gemfiles/rails3.2.gemfile +7 -0
- data/gemfiles/rails4.0.gemfile +3 -0
- data/gemfiles/rails4.1.gemfile +3 -0
- data/gemfiles/rails4.2.gemfile +4 -1
- data/lib/cell/concept.rb +1 -1
- data/lib/cell/partial.rb +2 -2
- data/lib/cell/rails.rb +1 -1
- data/lib/cell/templates.rb +2 -2
- data/lib/cell/translation.rb +19 -0
- data/lib/cell/version.rb +1 -1
- data/lib/cell/view_model.rb +13 -19
- data/test/partial_test.rb +9 -1
- data/test/public_test.rb +6 -0
- data/test/rails/translation_test.rb +45 -0
- data/test/rails4.2/app/cells/formtastic_cell.rb +1 -0
- data/test/rails_extensions_test.rb +7 -7
- data/test/render_test.rb +14 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4bee10d6791664dd2d5b07e42007b4f037d977ce
|
4
|
+
data.tar.gz: badeb19dd989fcb7e04ff0ba194392858ad654ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 455f05a45cf95840609675ed94044f541d0111c0b1d5c0dd2d2cf13516405d8dd666df7d7fa3280fd927fd59711395bf09a7e8b829f515519caa5fef3968f2a5
|
7
|
+
data.tar.gz: 40e74042491c83aefb0ac2a929ca5ed2c0037b489eb27beef1329415730dcd2815ae4dba413c3c74086f56872a952c410f178f995816c767d5d84e4146325a1c
|
data/.travis.yml
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
|
3
|
+
- ruby-head
|
4
|
+
- 2.2
|
4
5
|
- 2.1
|
5
6
|
- 2.0.0
|
6
7
|
- 1.9.3
|
@@ -8,14 +9,22 @@ rvm:
|
|
8
9
|
|
9
10
|
sudo: false
|
10
11
|
|
12
|
+
cache: bundler
|
13
|
+
|
11
14
|
bundler_args: '--without local_development --jobs 3 --retry 3'
|
12
15
|
|
13
16
|
script: bundle exec rake
|
14
17
|
|
15
|
-
notifications:
|
16
|
-
irc: "irc.freenode.org#cells"
|
17
18
|
gemfile:
|
18
19
|
- gemfiles/rails4.2.gemfile
|
19
20
|
- gemfiles/rails4.1.gemfile
|
20
21
|
- gemfiles/rails4.0.gemfile
|
21
22
|
- gemfiles/rails3.2.gemfile
|
23
|
+
|
24
|
+
matrix:
|
25
|
+
fast_finish: true
|
26
|
+
allow_failures:
|
27
|
+
- rvm: ruby-head
|
28
|
+
|
29
|
+
before_install:
|
30
|
+
- gem update bundler
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## 4.0.3
|
2
|
+
|
3
|
+
* `Cell::Partial` now does _append_ the global partial path to its `view_paths` instead of using `unshift` and thereby removing possible custom paths.
|
4
|
+
* Adding `Cell::Translation` which allows using the `#t` helper. Thanks to @johnlane.
|
5
|
+
* Performance improvement: when inflecting the view name (90% likely to be done) the `caller` is now limited to the data we need, saving memory. Thanks @timoschilling for implementing this.
|
6
|
+
* In the `concept` helper, we no longer use `classify`, which means you can say `concept("comment/data")` and it will instantiate `Comment::Data` and not `Comment::Datum`. Thanks @firedev!
|
7
|
+
|
1
8
|
## 4.0.2
|
2
9
|
|
3
10
|
* In Rails, include `ActionView::Helpers::FormHelper` into `ViewModel` so we already have (and pollute our cell with) `UrlHelper` and `FormTagHelper`. Helpers, so much fun.
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
Cells allow you to encapsulate parts of your UI into components into _view models_. View models, or cells, are simple ruby classes that can render templates.
|
8
8
|
|
9
|
-
Nevertheless, a cell gives you more than just a template renderer. They allow proper OOP, polymorphic builders, [nesting](#nested-cells), view inheritance, using Rails helpers, [asset packaging](http://
|
9
|
+
Nevertheless, a cell gives you more than just a template renderer. They allow proper OOP, polymorphic builders, [nesting](#nested-cells), view inheritance, using Rails helpers, [asset packaging](http://trailblazer.to/gems/cells/rails.html#asset-pipeline) to bundle JS, CSS or images, simple distribution via gems or Rails engines, encapsulated testing, [caching](#caching), and [integrate with Trailblazer](#concept-cells).
|
10
10
|
|
11
11
|
## This is not Cells 3.x!
|
12
12
|
|
@@ -32,7 +32,7 @@ CommentCell.(@comment).()
|
|
32
32
|
In Rails you have the same helper API for views and controllers.
|
33
33
|
|
34
34
|
```ruby
|
35
|
-
class
|
35
|
+
class DashboardController < ApplicationController
|
36
36
|
def dashboard
|
37
37
|
@comments = cell(:comment, collection: Comment.recent)
|
38
38
|
@traffic = cell(:report, TrafficReport.find(1)).()
|
@@ -97,7 +97,7 @@ The discussed `show` view would reside in `app/cells/comment/show.haml`. However
|
|
97
97
|
|
98
98
|
## Invocation Styles
|
99
99
|
|
100
|
-
In order to make a cell render, you have to call the rendering methods. While you could call the method directly, the
|
100
|
+
In order to make a cell render, you have to call the rendering methods. While you could call the method directly, the preferred way is the _call style_.
|
101
101
|
|
102
102
|
```ruby
|
103
103
|
cell(:comment, @song).() # calls CommentCell#show.
|
@@ -138,7 +138,7 @@ Capybara.string(html).must_have_css "h3"
|
|
138
138
|
|
139
139
|
It is completely up to you how you test, whether it's RSpec, MiniTest or whatever. All the cell does is return HTML.
|
140
140
|
|
141
|
-
[In Rails, there's support](http://
|
141
|
+
[In Rails, there's support](http://trailblazer.to/gems/cells/testing.html) for TestUnit, MiniTest and RSpec available, along with Capybara integration.
|
142
142
|
|
143
143
|
## Properties
|
144
144
|
|
@@ -169,7 +169,7 @@ song.title #=> "<script>Dangerous</script>"
|
|
169
169
|
Comment::Cell.(song).title #=> <script>Dangerous</script>
|
170
170
|
```
|
171
171
|
|
172
|
-
Properties and escaping are [documented here](http://
|
172
|
+
Properties and escaping are [documented here](http://trailblazer.to/gems/cells/api.html#html-escaping).
|
173
173
|
|
174
174
|
## Installation
|
175
175
|
|
@@ -296,7 +296,7 @@ end
|
|
296
296
|
|
297
297
|
## Asset Packaging
|
298
298
|
|
299
|
-
Cells can easily ship with their own JavaScript, CSS and more and be part of Rails' asset pipeline. Bundling assets into a cell allows you to implement super encapsulated widgets that are stand-alone. Asset pipeline is [documented here](http://
|
299
|
+
Cells can easily ship with their own JavaScript, CSS and more and be part of Rails' asset pipeline. Bundling assets into a cell allows you to implement super encapsulated widgets that are stand-alone. Asset pipeline is [documented here](http://trailblazer.to/gems/cells/rails.html#asset-pipeline).
|
300
300
|
|
301
301
|
## Render API
|
302
302
|
|
@@ -476,7 +476,7 @@ cache :show, :if => lambda { |*| has_changed? }
|
|
476
476
|
cache :show, :tags: lambda { |model, options| "comment-#{model.id}" }
|
477
477
|
```
|
478
478
|
|
479
|
-
Caching is documented [here](http://
|
479
|
+
Caching is documented [here](http://trailblazer.to/gems/cells/caching.html) and in chapter 8 of the [Trailblazer book](http://leanpub.com/trailblazer).
|
480
480
|
|
481
481
|
|
482
482
|
## The Book
|
data/gemfiles/rails3.2.gemfile
CHANGED
@@ -7,3 +7,10 @@ gem "tzinfo"
|
|
7
7
|
gem "minitest", "4.7.5"
|
8
8
|
|
9
9
|
gemspec :path => "../"
|
10
|
+
|
11
|
+
gem "rack-cache", "< 1.3.0", platform: :ruby_19
|
12
|
+
gem "rack-cache", "< 1.3.0", platform: :jruby
|
13
|
+
gem "test-unit", "~> 3.0", platform: :ruby_22
|
14
|
+
gem "mime-types", "< 3.0", platform: :ruby_19
|
15
|
+
gem "mime-types", "< 3.0", platform: :jruby
|
16
|
+
|
data/gemfiles/rails4.0.gemfile
CHANGED
data/gemfiles/rails4.1.gemfile
CHANGED
data/gemfiles/rails4.2.gemfile
CHANGED
data/lib/cell/concept.rb
CHANGED
data/lib/cell/partial.rb
CHANGED
@@ -10,8 +10,8 @@ module Cell::ViewModel::Partial
|
|
10
10
|
view = parts.pop
|
11
11
|
view = "_#{view}"
|
12
12
|
view += ".#{options[:formats].first}" if options[:formats]
|
13
|
-
prefixes = self.class.view_paths.collect { |path|
|
13
|
+
prefixes = self.class.view_paths.collect { |path| ([path] + parts).join("/") }
|
14
14
|
|
15
15
|
options.merge!(view: view, prefixes: prefixes)
|
16
16
|
end
|
17
|
-
end
|
17
|
+
end
|
data/lib/cell/rails.rb
CHANGED
@@ -15,7 +15,7 @@ module Cell
|
|
15
15
|
# Returns the cell instance for +name+. You may pass arbitrary options to your
|
16
16
|
# cell.
|
17
17
|
#
|
18
|
-
# = cell(:song, title: "Creeping Out Sara").
|
18
|
+
# = cell(:song, title: "Creeping Out Sara").(:show)
|
19
19
|
def cell(name, *args, &block)
|
20
20
|
controller.cell(name, *args, &block)
|
21
21
|
end
|
data/lib/cell/templates.rb
CHANGED
@@ -27,7 +27,7 @@ module Cell
|
|
27
27
|
template_class.new("#{prefix}/#{view}", options) # Tilt.new()
|
28
28
|
end
|
29
29
|
|
30
|
-
# {["comment/row/views", comment/views"][show.haml] => "Tpl:comment/view/show.haml"}
|
30
|
+
# {["comment/row/views", comment/views"]["show.haml"] => "Tpl:comment/view/show.haml"}
|
31
31
|
class Cache
|
32
32
|
def initialize
|
33
33
|
@store = {}
|
@@ -55,4 +55,4 @@ module Cell
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
end
|
58
|
-
end
|
58
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# NOTE: this will soon be moved to cells-rails.
|
2
|
+
module Cell::Translation
|
3
|
+
def self.included(includer)
|
4
|
+
super
|
5
|
+
includer.inheritable_attr :translation_path
|
6
|
+
end
|
7
|
+
|
8
|
+
def initialize(*)
|
9
|
+
super
|
10
|
+
@virtual_path = translation_path
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
# If you override this to change this path, please report it on the trailblazer/chat gitter channel,
|
15
|
+
# so we can find out best practices.
|
16
|
+
def translation_path
|
17
|
+
self.class.translation_path or controller_path.gsub("/", ".")
|
18
|
+
end
|
19
|
+
end
|
data/lib/cell/version.rb
CHANGED
data/lib/cell/view_model.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# TODO: warn when using ::property but not passing in model in constructor.
|
2
1
|
module Cell
|
3
2
|
class ViewModel
|
4
3
|
extend Abstract
|
@@ -21,7 +20,6 @@ module Cell
|
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
24
|
-
|
25
23
|
include Prefixes
|
26
24
|
extend SelfContained
|
27
25
|
extend Util
|
@@ -32,7 +30,6 @@ module Cell
|
|
32
30
|
|
33
31
|
attr_reader :model
|
34
32
|
|
35
|
-
|
36
33
|
module Helpers
|
37
34
|
# Constantizes name, call builders and returns instance.
|
38
35
|
def cell(name, *args, &block) # classic Rails fuzzy API.
|
@@ -44,12 +41,11 @@ module Cell
|
|
44
41
|
def render_collection(array, options) # private.
|
45
42
|
method = options.delete(:method) || :show
|
46
43
|
join = options.delete(:collection_join)
|
47
|
-
array.collect { |model| build(
|
44
|
+
array.collect { |model| build(model, options).call(method) }.join(join).html_safe
|
48
45
|
end
|
49
46
|
end
|
50
47
|
extend Helpers
|
51
48
|
|
52
|
-
|
53
49
|
class << self
|
54
50
|
def property(*names)
|
55
51
|
delegates :model, *names # Uber::Delegates.
|
@@ -75,7 +71,7 @@ module Cell
|
|
75
71
|
|
76
72
|
private
|
77
73
|
def class_from_cell_name(name)
|
78
|
-
"#{name}_cell".
|
74
|
+
"#{name}_cell".camelize.constantize
|
79
75
|
end
|
80
76
|
end
|
81
77
|
|
@@ -84,7 +80,6 @@ module Cell
|
|
84
80
|
self.class.cell(name, model, options.merge(controller: parent_controller))
|
85
81
|
end
|
86
82
|
|
87
|
-
|
88
83
|
def initialize(model=nil, options={}) # in Ruby 2: def m(model: nil, controller:nil, **options) that'll make the controller optional.
|
89
84
|
# options = options.clone # DISCUSS: this could be time consuming when rendering many of em.
|
90
85
|
@parent_controller = options[:controller] # TODO: filter out controller in a performant way.
|
@@ -108,13 +103,13 @@ module Cell
|
|
108
103
|
|
109
104
|
# render :show
|
110
105
|
def render(options={})
|
111
|
-
options = normalize_options(options
|
106
|
+
options = normalize_options(options)
|
112
107
|
render_to_string(options)
|
113
108
|
end
|
114
109
|
|
115
110
|
private
|
116
111
|
def render_to_string(options)
|
117
|
-
template = find_template(options)
|
112
|
+
template = find_template(options)
|
118
113
|
|
119
114
|
content = render_template(template, options)
|
120
115
|
|
@@ -123,7 +118,7 @@ module Cell
|
|
123
118
|
end
|
124
119
|
|
125
120
|
def render_state(*args)
|
126
|
-
|
121
|
+
__send__(*args)
|
127
122
|
end
|
128
123
|
|
129
124
|
def with_layout(options, content)
|
@@ -140,7 +135,7 @@ module Cell
|
|
140
135
|
end
|
141
136
|
|
142
137
|
include Rendering
|
143
|
-
|
138
|
+
|
144
139
|
def to_s
|
145
140
|
call
|
146
141
|
end
|
@@ -174,7 +169,6 @@ module Cell
|
|
174
169
|
OutputBuffer.new # don't cache output_buffer, for every #render call we get a fresh one.
|
175
170
|
end
|
176
171
|
|
177
|
-
|
178
172
|
module TemplateFor
|
179
173
|
def find_template(options)
|
180
174
|
template_options = template_options_for(options) # imported by Erb, Haml, etc.
|
@@ -196,11 +190,10 @@ module Cell
|
|
196
190
|
end
|
197
191
|
include TemplateFor
|
198
192
|
|
199
|
-
|
200
|
-
def normalize_options(options, caller) # TODO: rename to #setup_options! to be inline with Trb.
|
193
|
+
def normalize_options(options)
|
201
194
|
options = if options.is_a?(Hash)
|
202
|
-
|
203
|
-
|
195
|
+
options[:view] ||= state_for_implicit_render(options)
|
196
|
+
options
|
204
197
|
else
|
205
198
|
{view: options.to_s}
|
206
199
|
end
|
@@ -218,9 +211,10 @@ module Cell
|
|
218
211
|
end
|
219
212
|
include ProcessOptions
|
220
213
|
|
221
|
-
|
222
|
-
def state_for_implicit_render(
|
223
|
-
caller
|
214
|
+
# Computes the view name from the call stack in which `render` was invoked.
|
215
|
+
def state_for_implicit_render(options)
|
216
|
+
_caller = RUBY_VERSION < "2.0" ? caller(3) : caller(3, 1) # TODO: remove case in 5.0 when dropping 1.9.
|
217
|
+
_caller[0].match(/`(\w+)/)[1]
|
224
218
|
end
|
225
219
|
|
226
220
|
include Layout
|
data/test/partial_test.rb
CHANGED
@@ -21,7 +21,15 @@ class PartialTest < MiniTest::Spec
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
+
class WithPartialAndManyViewPaths < WithPartial
|
25
|
+
self.view_paths << ['app/views']
|
26
|
+
end
|
27
|
+
|
24
28
|
it { WithPartial.new(nil).show.must_equal "I Am Wrong And I Am Right" }
|
25
29
|
it { WithPartial.new(nil).show_with_format.must_equal "<xml>I Am Wrong And I Am Right</xml>" }
|
26
30
|
it { WithPartial.new(nil).show_without_partial.must_equal "Adenosine Breakdown" }
|
27
|
-
|
31
|
+
|
32
|
+
it { WithPartialAndManyViewPaths.new(nil).show.must_equal "I Am Wrong And I Am Right" }
|
33
|
+
it { WithPartialAndManyViewPaths.new(nil).show_with_format.must_equal "<xml>I Am Wrong And I Am Right</xml>" }
|
34
|
+
it { WithPartialAndManyViewPaths.new(nil).show_without_partial.must_equal "Adenosine Breakdown" }
|
35
|
+
end
|
data/test/public_test.rb
CHANGED
@@ -16,9 +16,15 @@ class PublicTest < MiniTest::Spec
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
class Songs < Cell::Concept
|
20
|
+
end
|
21
|
+
|
19
22
|
# ViewModel.cell returns the cell instance.
|
20
23
|
it { Cell::ViewModel.cell("public_test/song").must_be_instance_of SongCell }
|
21
24
|
|
25
|
+
# Concept.cell simply camelizes the string before constantizing.
|
26
|
+
it { Cell::Concept.cell("public_test/songs").must_be_instance_of Songs }
|
27
|
+
|
22
28
|
# ViewModel.cell passes options to cell.
|
23
29
|
it { Cell::ViewModel.cell("public_test/song", Object, genre: "Metal").initialize_args.must_equal [Object, {genre:"Metal"}] }
|
24
30
|
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
require "cells/translation"
|
3
|
+
|
4
|
+
class TranslationTest < MiniTest::Spec
|
5
|
+
class I18nCell < Cell::ViewModel
|
6
|
+
include ActionView::Helpers::TranslationHelper
|
7
|
+
include Translation
|
8
|
+
|
9
|
+
def greet_relative
|
10
|
+
t(".greeting") # gets appended to translation_test.i18n.
|
11
|
+
end
|
12
|
+
|
13
|
+
def greet_absolute
|
14
|
+
t("translation_test.i18n.greeting")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
I18n.backend = I18n::Backend::KeyValue.new({})
|
19
|
+
I18n.backend.store_translations(:en,
|
20
|
+
{ "translation_test.i18n.greeting" => "Translated!",
|
21
|
+
"cell.friendly.greeting" => "Hello you!" },
|
22
|
+
escape: false)
|
23
|
+
|
24
|
+
# Translate text specified by an absolute path
|
25
|
+
it { I18nCell.new.greet_absolute.must_equal "Translated!" }
|
26
|
+
|
27
|
+
# Translate text specified by an relative path
|
28
|
+
it { I18nCell.new.greet_relative.must_equal "Translated!" }
|
29
|
+
|
30
|
+
|
31
|
+
describe "::translation_path" do
|
32
|
+
class ExplicitI18NCell < Cell::ViewModel
|
33
|
+
include ActionView::Helpers::TranslationHelper
|
34
|
+
include Translation
|
35
|
+
|
36
|
+
self.translation_path = "cell.friendly"
|
37
|
+
|
38
|
+
def show
|
39
|
+
t(".greeting")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it { ExplicitI18NCell.new.().must_equal "Hello you!" }
|
44
|
+
end
|
45
|
+
end
|
@@ -19,33 +19,33 @@ class ViewExtensionsTest < ActionController::TestCase
|
|
19
19
|
# #concept is available in controller views.
|
20
20
|
test "concept(..).show" do
|
21
21
|
get :view_with_concept_with_show
|
22
|
-
|
22
|
+
assert_equal "<b>Up For Breakfast</b>", @response.body # TODO: test options/with twin.
|
23
23
|
end
|
24
24
|
|
25
25
|
test "concept(..).call" do
|
26
26
|
get :view_with_concept_with_call
|
27
|
-
|
27
|
+
assert_equal "<b>A Tale That Wasn't Right</b>", @response.body # TODO: test options/with twin.
|
28
28
|
end
|
29
29
|
|
30
30
|
test "concept(..) without #call" do
|
31
31
|
get :view_with_concept_without_call
|
32
|
-
|
32
|
+
assert_equal "<b>A Tale That Wasn't Right</b>", @response.body
|
33
33
|
end
|
34
34
|
|
35
35
|
test "cell(..) with #call" do
|
36
36
|
get :view_with_cell_with_call
|
37
|
-
|
37
|
+
assert_equal "<b>A Tale That Wasn't Right</b>", @response.body
|
38
38
|
end
|
39
39
|
|
40
40
|
# Controller#concept
|
41
41
|
test "Controller#concept(..).call" do
|
42
42
|
get :action_with_concept_with_call
|
43
|
-
|
43
|
+
assert_equal "<b>A Tale That Wasn't Right</b>", @response.body # TODO: test options/with twin.
|
44
44
|
end
|
45
45
|
|
46
46
|
# Controller#cell
|
47
47
|
test "Controller#cell(..).call" do
|
48
48
|
get :action_with_cell_with_call
|
49
|
-
|
49
|
+
assert_equal "<b>A Tale That Wasn't Right</b>", @response.body # TODO: test options/with twin.
|
50
50
|
end
|
51
|
-
end
|
51
|
+
end
|
data/test/render_test.rb
CHANGED
@@ -43,6 +43,10 @@ class SongCell < Cell::ViewModel
|
|
43
43
|
render
|
44
44
|
end
|
45
45
|
|
46
|
+
def send
|
47
|
+
"send"
|
48
|
+
end
|
49
|
+
|
46
50
|
private
|
47
51
|
def title
|
48
52
|
"Papertiger"
|
@@ -65,6 +69,9 @@ class RenderTest < MiniTest::Spec
|
|
65
69
|
# call(:form) renders :form
|
66
70
|
it { SongCell.new(nil).call(:with_view_name).must_equal "Man Of Steel\n" }
|
67
71
|
|
72
|
+
# works with state called `send`
|
73
|
+
it { SongCell.new(nil).call(:send).must_equal "send" }
|
74
|
+
|
68
75
|
# #call returns html_safe.
|
69
76
|
it { SongCell.new(nil).call.must_be_instance_of ActiveSupport::SafeBuffer }
|
70
77
|
|
@@ -95,4 +102,10 @@ class RenderTest < MiniTest::Spec
|
|
95
102
|
end
|
96
103
|
|
97
104
|
# test inheritance
|
98
|
-
|
105
|
+
|
106
|
+
# test view: :bla and :bla
|
107
|
+
# with layout and locals.
|
108
|
+
# with layout and :text
|
109
|
+
|
110
|
+
# render with format (e.g. when using ERB for one view)
|
111
|
+
# should we allow changing the format "per run", so a cell can do .js and .haml? or should that be configurable on class level?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cells
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Sutterer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: uber
|
@@ -136,6 +136,7 @@ files:
|
|
136
136
|
- lib/cell/templates.rb
|
137
137
|
- lib/cell/test_case.rb
|
138
138
|
- lib/cell/testing.rb
|
139
|
+
- lib/cell/translation.rb
|
139
140
|
- lib/cell/twin.rb
|
140
141
|
- lib/cell/util.rb
|
141
142
|
- lib/cell/version.rb
|
@@ -212,6 +213,7 @@ files:
|
|
212
213
|
- test/prefixes_test.rb
|
213
214
|
- test/property_test.rb
|
214
215
|
- test/public_test.rb
|
216
|
+
- test/rails/translation_test.rb
|
215
217
|
- test/rails4.2/.gitignore
|
216
218
|
- test/rails4.2/Gemfile
|
217
219
|
- test/rails4.2/README.rdoc
|
@@ -330,7 +332,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
330
332
|
version: '0'
|
331
333
|
requirements: []
|
332
334
|
rubyforge_project:
|
333
|
-
rubygems_version: 2.
|
335
|
+
rubygems_version: 2.4.8
|
334
336
|
signing_key:
|
335
337
|
specification_version: 4
|
336
338
|
summary: View Models for Ruby and Rails.
|