modular 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. data/.gitignore +1 -0
  2. data/Gemfile +1 -0
  3. data/lib/modular.rb +3 -14
  4. data/lib/modular/action_controller_extension.rb +16 -7
  5. data/lib/modular/components.rb +7 -4
  6. data/lib/modular/components/base.rb +75 -5
  7. data/lib/modular/components/container.rb +37 -11
  8. data/lib/modular/configuration.rb +8 -0
  9. data/lib/modular/creation.rb +20 -13
  10. data/lib/{generators → modular/generators}/component/USAGE +0 -0
  11. data/lib/modular/generators/component/component_generator.rb +18 -0
  12. data/lib/{generators → modular/generators}/component/templates/component.rb.erb +0 -0
  13. data/lib/{generators → modular/generators}/component/templates/template.erb +0 -0
  14. data/lib/modular/mst_rendering.rb +10 -0
  15. data/lib/modular/railtie.rb +4 -0
  16. data/lib/modular/rendering.rb +1 -42
  17. data/lib/modular/version.rb +1 -1
  18. data/spec/components/{base.rb → base_spec.rb} +12 -6
  19. data/spec/components/container_spec.rb +27 -0
  20. data/spec/components/{hello_world.rb → hello_world_spec.rb} +0 -0
  21. data/spec/components/{helpers_example.rb → helpers_example_spec.rb} +0 -0
  22. data/spec/components/spec/internal/log/test.log +0 -0
  23. data/spec/controllers/callback_layout_controller_spec.rb +4 -0
  24. data/spec/controllers/rendering_spec.rb +33 -0
  25. data/spec/internal/app/components/mustache_container.rb +5 -0
  26. data/spec/internal/app/components/mustached.rb +5 -0
  27. data/spec/internal/app/controllers/callback_layout_controller.rb +5 -5
  28. data/spec/internal/app/controllers/example_controller.rb +9 -1
  29. data/spec/internal/app/views/components/mustache_container.mst +3 -0
  30. data/spec/internal/app/views/components/mustached.mst +1 -0
  31. data/spec/internal/app/views/example/mustache.html.erb +1 -0
  32. data/spec/internal/app/views/example/mustache_nested.html.erb +1 -0
  33. data/spec/internal/config/initializers/modular.rb +11 -6
  34. data/spec/modular/configuration_spec.rb +6 -6
  35. data/spec/modular/creation_spec.rb +36 -5
  36. data/spec/modular/validation_spec.rb +115 -0
  37. data/templates/components/container.html.erb +7 -0
  38. data/templates/layout.erb +1 -3
  39. metadata +23 -47
  40. data/lib/generators/component/component_generator.rb +0 -16
  41. data/lib/modular/helpers.rb +0 -74
  42. data/modular-app/Gemfile +0 -20
  43. data/modular-app/Rakefile +0 -7
  44. data/modular-app/config.ru +0 -4
  45. data/modular-app/config/application.rb +0 -42
  46. data/modular-app/config/boot.rb +0 -6
  47. data/modular-app/config/database.yml +0 -22
  48. data/modular-app/config/environment.rb +0 -5
  49. data/modular-app/config/environments/development.rb +0 -26
  50. data/modular-app/config/environments/production.rb +0 -49
  51. data/modular-app/config/environments/test.rb +0 -35
  52. data/modular-app/config/initializers/backtrace_silencers.rb +0 -7
  53. data/modular-app/config/initializers/inflections.rb +0 -10
  54. data/modular-app/config/initializers/mime_types.rb +0 -5
  55. data/modular-app/config/initializers/secret_token.rb +0 -7
  56. data/modular-app/config/initializers/session_store.rb +0 -8
  57. data/modular-app/config/locales/en.yml +0 -5
  58. data/modular-app/config/routes.rb +0 -7
  59. data/modular-app/db/migrate/20110721090602_create_simple_models.rb +0 -12
  60. data/modular-app/db/schema.rb +0 -20
  61. data/modular-app/db/seeds.rb +0 -7
  62. data/modular-app/script/rails +0 -6
  63. data/modular-app/spec/spec_helper.rb +0 -27
  64. data/spec/components/container.rb +0 -34
  65. data/spec/components/validated.rb +0 -15
  66. data/spec/controllers/example_controller_spec.rb +0 -12
  67. data/spec/controllers/indirect_render_controller_spec.rb +0 -13
  68. data/spec/internal/app/components/heavy_task.rb +0 -8
  69. data/spec/internal/app/controllers/indirect_render_controller.rb +0 -7
  70. data/spec/internal/app/views/components/container.html.erb +0 -7
  71. data/spec/internal/app/views/components/heavy_task.html.erb +0 -1
  72. data/spec/internal/tmp/modular/cached_for_time.html.erb +0 -14
  73. data/spec/internal/tmp/modular/cached_forever.html.erb +0 -12
  74. data/spec/internal/tmp/modular/heavy.html.erb +0 -19
  75. data/spec/internal/tmp/modular/nested.html.erb +0 -28
  76. data/spec/views/indirect_render/index.html.erb_spec.rb +0 -4
@@ -1,3 +1,3 @@
1
1
  module Modular
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -1,12 +1,18 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Modular::Components::Base, ' as basic module' do
4
- it "should return type in class" do
5
- Modular::Components::Base.type.should === 'Base'
6
- end
7
-
8
- it "should return type in instance" do
9
- Modular::Components::Base.new.type.should === 'Base'
4
+ describe "should return type" do
5
+ it "in class" do
6
+ Modular::Components::Base.type.should === 'base'
7
+ end
8
+
9
+ it "in instance" do
10
+ Modular::Components::Base.new.type.should === 'base'
11
+ end
12
+
13
+ it "in multi-part name" do
14
+ FakeNewsFeed.type.should === 'fake_news_feed'
15
+ end
10
16
  end
11
17
 
12
18
  it "should serialize components correctly" do
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe Modular::Components::Container, ' vertical container class ' do
4
+ before :each do
5
+ @cmp = described_class.new
6
+ end
7
+
8
+ it "should have children" do
9
+ @cmp.children.should be_a_kind_of Array
10
+ end
11
+
12
+ it "should have add_container and add_child methods" do
13
+ @cmp.add :container, :title => 'Test container title' do
14
+ add :FakeNewsFeed, :title => 'Worst news feed'
15
+
16
+ add :Vertical, :title => 'Vertical container'
17
+ end
18
+
19
+ @cmp.children[0].title.should == 'Test container title'
20
+
21
+ feed = @cmp.children[0].children[0]
22
+ feed.should be_a_kind_of FakeNewsFeed
23
+ feed.title.should == 'Worst news feed'
24
+
25
+ @cmp.children[0].children[1].should be_a_kind_of Vertical
26
+ end
27
+ end
File without changes
@@ -1,11 +1,15 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe CallbackLayoutController do
4
+ render_views
4
5
 
5
6
  describe "GET 'index'" do
6
7
  it "should be successful" do
7
8
  get 'index'
8
9
  response.should be_success
10
+
11
+ response.body.should contain 'Nested component'
12
+ response.body.should contain 'CallbackLayout#index'
9
13
  end
10
14
  end
11
15
 
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe ExampleController do
4
+ render_views
5
+
6
+ describe "straightforward rendering" do
7
+ it "should be successful" do
8
+ get 'index'
9
+
10
+ response.body.should contain 'Template - Best news feed'
11
+ response.body.should contain 'Find me in app/views/example/index.html.erb'
12
+ end
13
+ end
14
+
15
+ describe "mustache rendering" do
16
+ it "simple" do
17
+ get 'mustache'
18
+ response.should be_success
19
+
20
+ response.body.should contain 'Text in layout'
21
+ response.body.should contain 'Text from mustache template - Text from template settings'
22
+ end
23
+
24
+ it "nested" do
25
+ get 'mustache_nested'
26
+ response.should be_success
27
+
28
+ response.body.should contain 'Text from container settings - asdfgh'
29
+ response.body.should contain 'Text from mustache template - Text from template settings'
30
+ response.body.should contain 'Text from mustache template - Other text from template settings'
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,5 @@
1
+ class MustacheContainer < Modular::Components::Container
2
+ attr_accessor :text
3
+
4
+ use_mustached_template!
5
+ end
@@ -0,0 +1,5 @@
1
+ class Mustached < Modular::Components::Base
2
+ attr_accessor :text
3
+
4
+ use_mustached_template!
5
+ end
@@ -1,11 +1,11 @@
1
1
  class CallbackLayoutController < ApplicationController
2
- modular_layout :method_name
3
-
4
- def method_name
5
- 'heavy'
6
- end
2
+ modular_layout :callback_method
7
3
 
8
4
  def index
9
5
  end
10
6
 
7
+ protected
8
+ def callback_method
9
+ 'nested'
10
+ end
11
11
  end
@@ -1,5 +1,13 @@
1
1
  class ExampleController < ApplicationController
2
2
  def index
3
- render_modular_layout :simple
3
+ modular_layout 'simple'
4
+ end
5
+
6
+ def mustache
7
+ modular_layout 'mustached'
8
+ end
9
+
10
+ def mustache_nested
11
+ modular_layout 'mustache_nested'
4
12
  end
5
13
  end
@@ -0,0 +1,3 @@
1
+ Text from container settings - {{text}}
2
+
3
+ {{# children }}{{{ render }}}{{/ children }}
@@ -0,0 +1 @@
1
+ Text from mustache template - {{text}}
@@ -0,0 +1 @@
1
+ Text in template
@@ -1,5 +1,8 @@
1
1
  Modular.configure do
2
- register_layout :simple, Modular.create(:FakeNewsFeed, :news_count => 50, :title => 'Best news feed')
2
+ register_layout :simple do
3
+ add Modular.create(:FakeNewsFeed, :news_count => 50, :title => 'Best news feed')
4
+ add :main_content
5
+ end
3
6
 
4
7
  register_layout :nested do
5
8
  add Modular.layout(:simple)
@@ -8,12 +11,14 @@ Modular.configure do
8
11
  end
9
12
  add :MainContent
10
13
  end
11
-
12
- register_layout :heavy do
13
- add Modular.layout(:simple)
14
- add :heavy_task
14
+
15
+ register_layout :mustached, :mustached, :text => 'Text from template settings'
16
+
17
+ register_layout :mustache_nested, :mustache_container, :text => 'asdfgh' do
18
+ add Modular.layout(:mustached)
19
+ add :mustached, :text => 'Other text from template settings'
15
20
  end
16
-
21
+
17
22
  register_layout :cached_forever, Modular.create(:CachedForever)
18
23
 
19
24
  register_layout :cached_for_time, Modular.create(:CachedForTime)
@@ -5,15 +5,15 @@ describe Modular::Configuration, ' as modular config' do
5
5
  component = Modular.create :fake_news_feed, :news_count => 50, :title => 'Best news feed'
6
6
 
7
7
  Modular.configure do
8
- register_layout :simple, component
8
+ register_layout :testing_layout, component
9
9
  end
10
10
 
11
- Modular.layout(:simple).to_json == component
11
+ Modular.layout(:testing_layout).should == component
12
12
  end
13
13
 
14
14
  it "should have DSL for registering layout" do
15
15
  Modular.configure do
16
- register_layout :simple do
16
+ register_layout :testing_layout do
17
17
  add :fake_news_feed, :title => 'Best news feed'
18
18
  add :fake_news_feed, :title => 'Just news feed'
19
19
 
@@ -23,15 +23,15 @@ describe Modular::Configuration, ' as modular config' do
23
23
  end
24
24
  end
25
25
 
26
- l = Modular.layout(:simple)
26
+ l = Modular.layout(:testing_layout)
27
27
 
28
28
  l.should be_a_kind_of Modular::Components::Container
29
29
 
30
- l.components[0..1].each do |e|
30
+ l.children[0..1].each do |e|
31
31
  e.should be_a_kind_of FakeNewsFeed
32
32
  end
33
33
 
34
- l.components.length.should == 3
34
+ l.children.length.should == 3
35
35
  end
36
36
 
37
37
  it "should return list of layouts" do
@@ -22,11 +22,42 @@ describe Modular, ' widgets creation ' do
22
22
  Modular.create(widget).should eq(widget)
23
23
  end
24
24
 
25
- it "should unserialize components correctly" do
26
- serialized = Modular.create(:fake_news_feed, :news_count => 50, :title => 'Best news feed').to_json
25
+ describe "creation from json" do
26
+ it "unserialized components" do
27
+ serialized = Modular.create(:fake_news_feed, :news_count => 50, :title => 'Best news feed').to_json
27
28
 
28
- cmp_uns = Modular.from_json(serialized)
29
- cmp_uns.news_count.to_i.should === 50
30
- cmp_uns.title.should === 'Best news feed'
29
+ cmp_uns = Modular.from_json(serialized)
30
+ cmp_uns.news_count.to_i.should === 50
31
+ cmp_uns.title.should === 'Best news feed'
32
+ end
33
+
34
+ it "plain objects" do
35
+ data = '{
36
+ "type":"fake_news_feed",
37
+ "news_count":5
38
+ }'
39
+
40
+ feed = Modular.from_json(data)
41
+ feed.news_count.to_i.should == 5
42
+ feed.should be_a_kind_of FakeNewsFeed
43
+ end
44
+
45
+ it "component with children" do
46
+ data = '
47
+ {
48
+ "children":
49
+ [{
50
+ "type":"fake_news_feed",
51
+ "news_count":5
52
+ }],
53
+ "type":"container"
54
+ }'
55
+
56
+ c = Modular.from_json(data)
57
+ c.children.count.should == 1
58
+ feed = c.children.first
59
+ feed.news_count.to_i.should == 5
60
+ feed.should be_a_kind_of FakeNewsFeed
61
+ end
31
62
  end
32
63
  end
@@ -0,0 +1,115 @@
1
+ require 'spec_helper'
2
+
3
+ describe Modular, ' widgets validation ' do
4
+ it "should be valid if all is OK" do
5
+ widget = Modular.create'container',
6
+ children: [
7
+ type: 'fake_news_feed'
8
+ ]
9
+
10
+ widget.invalid?.should be_false
11
+ widget.valid?.should be_true
12
+
13
+ widget.errors.to_a.should be_empty
14
+ end
15
+
16
+ it "should be invalid if component is not valid" do
17
+ widget = Modular.create('container', title: 'dsfghaskjfhagsdklfjhaflkasjhflkajshflkajdhfalkjhfaldkjhflkjasdhflkjahflkjsdhflkasdjfhaslkjfhasldkfjhaslkfjhaslkfjhaglkjfhlkjdfhglkjsdfhglkjsdfhgkjsdhglkajfhlkjsdfhlkasjdhflkasdjhfalksdjhflkasdjfhalskjfhaljkfhasldkfjhalskdf')
18
+
19
+ widget.invalid?.should be_true
20
+ widget.valid?.should be_false
21
+
22
+ widget.errors.to_a.should == ["Title is too long (maximum is 64 characters)"]
23
+ end
24
+
25
+ describe "children validation" do
26
+ before :each do
27
+ @widget = Modular.from_json type: 'container',
28
+ children: [
29
+ {
30
+ type: 'fake_news_feed',
31
+ title: 'dsfghaskjfhagsdklfjhaflkasjhflkajshflkajdhfalkjhfaldkjhflkjasdhflkjahflkjsdhflkasdjfhaslkjfhasldkfjhaslkfjhaslkfjhaglkjfhlkjdfhglkjsdfhglkjsdfhgkjsdhglkajfhlkjsdfhlkasjdhflkasdjhfalksdjhflkasdjfhalskjfhaljkfhasldkfjhalskdf'
32
+ },
33
+ {
34
+ type: 'validated'
35
+ }
36
+ ]
37
+ end
38
+
39
+ it "should be valid if everything is ok" do
40
+ widget = Modular.from_json type: 'container',
41
+ children: [
42
+ {
43
+ type: 'fake_news_feed'
44
+ },
45
+ {
46
+ type: 'validated',
47
+ non_existant_property: 'something'
48
+ }
49
+ ]
50
+
51
+ widget.invalid?.should be_false
52
+ widget.valid?.should be_true
53
+ end
54
+
55
+ it "should be invalid if has invalid children" do
56
+ @widget.invalid?.should be_true
57
+ @widget.valid?.should be_false
58
+ end
59
+
60
+ it "should return all errors for any widget" do
61
+ widget = Modular.from_json type: 'fake_news_feed', title: 'dsfghaskjfhagsdklfjhaflkasjhflkajshflkajdhfalkjhfaldkjhflkjasdhflkjahflkjsdhflkasdjfhaslkjfhasldkfjhaslkfjhaslkfjhaglkjfhlkjdfhglkjsdfhglkjsdfhgkjsdhglkajfhlkjsdfhlkasjdhflkasdjhfalksdjhflkasdjfhalskjfhaljkfhasldkfjhalskdf'
62
+ widget.all_errors.should == { '' => ["Title is too long (maximum is 64 characters)" ] }
63
+ end
64
+
65
+ it "should return all errors for children correctly if elemnts dont have uids" do
66
+ @widget.errors.to_a.should be_empty
67
+ @widget.all_errors.should == {
68
+ '' => ["Title is too long (maximum is 64 characters)", 'Non existant property can\'t be blank']
69
+ }
70
+ end
71
+
72
+ it "should return errors with uniqid" do
73
+ @widget.children.first.uniqid = 'first'
74
+ @widget.errors.to_a.should be_empty
75
+ @widget.all_errors.should == {
76
+ 'first' => ["Title is too long (maximum is 64 characters)"],
77
+ '' => ['Non existant property can\'t be blank']
78
+ }
79
+ end
80
+
81
+ it "should return all errors with uids" do
82
+ widget = Modular.from_json type: 'container', uniqid: 'first',
83
+ children: [
84
+ {
85
+ uniqid: 'second',
86
+ type: 'fake_news_feed',
87
+ title: 'dsfghaskjfhagsdklfjhaflkasjhflkajshflkajdhfalkjhfaldkjhflkjasdhflkjahflkjsdhflkasdjfhaslkjfhasldkfjhaslkfjhaslkfjhaglkjfhlkjdfhglkjsdfhglkjsdfhgkjsdhglkajfhlkjsdfhlkasjdhflkasdjhfalksdjhflkasdjfhalskjfhaljkfhasldkfjhalskdf'
88
+ },
89
+ {
90
+ type: 'container',
91
+ uniqid: 'fourth',
92
+ title: 'dsfghaskjfhdfgsdfgsdgsdfsdfgsdfgsdfgsddgfdagsdklfjhaflkasjhflkajshflkajdhfalkjhfaldkjhflkjasdhflkjahflkjsdhflkasdjfhaslkjfhasldkfjhaslkfjhaslkfjhaglkjfhlkjdfhglkjsdfhglkjsdfhgkjsdhglkajfhlkjsdfhlkasjdhflkasdjhfalksdjhflkasdjfhalskjfhaljkfhasldkfjhalskdf',
93
+ children: [
94
+ {
95
+ uniqid: 'last',
96
+ type: 'fake_news_feed',
97
+ title: 'dsfghaskjfhagsdklfjhaflkasjhflkajshflkajdhfalkjhfaldkjhflkjasdhflkjahflkjsdhflkasdjfhaslkjfhasldkfjhaslkfjhaslkfjhaglkjfhlkjdfhglkjsdfhglkjsdfhgkjsdhglkajfhlkjsdfhlkasjdhflkasdjhfalksdjhflkasdjfhalskjfhaljkfhasldkfjhalskdf'
98
+ }
99
+ ]
100
+ },
101
+ {
102
+ uniqid: 'third',
103
+ type: 'validated'
104
+ }
105
+ ]
106
+
107
+ widget.all_errors.should == {
108
+ 'second' => ["Title is too long (maximum is 64 characters)"],
109
+ 'last' => ["Title is too long (maximum is 64 characters)"],
110
+ 'fourth' => ["Title is too long (maximum is 64 characters)"],
111
+ 'third' => ['Non existant property can\'t be blank']
112
+ }
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,7 @@
1
+ <table>
2
+ <tr><td>
3
+ <% @attributes[:children].each do |child| %>
4
+ <%= render_component child %>
5
+ <% end %>
6
+ </td></tr>
7
+ </table>
data/templates/layout.erb CHANGED
@@ -1,8 +1,6 @@
1
1
  <%% @layout_id = '<%=@layout_id%>'.to_sym %>
2
2
 
3
- <% layout = Modular.layout(@layout_id) %>
4
-
5
- <%= layout.render %>
3
+ <%= Modular.layout(@layout_id).render %>
6
4
 
7
5
  <%%
8
6
  layout = '<%=@original_layout%>'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modular
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
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-07-20 00:00:00.000000000 Z
12
+ date: 2012-08-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -59,10 +59,6 @@ files:
59
59
  - Rakefile
60
60
  - TODO
61
61
  - config.ru
62
- - lib/generators/component/USAGE
63
- - lib/generators/component/component_generator.rb
64
- - lib/generators/component/templates/component.rb.erb
65
- - lib/generators/component/templates/template.erb
66
62
  - lib/modular.rb
67
63
  - lib/modular/action_controller_extension.rb
68
64
  - lib/modular/caching.rb
@@ -72,52 +68,34 @@ files:
72
68
  - lib/modular/components/main_content.rb
73
69
  - lib/modular/configuration.rb
74
70
  - lib/modular/creation.rb
75
- - lib/modular/helpers.rb
71
+ - lib/modular/generators/component/USAGE
72
+ - lib/modular/generators/component/component_generator.rb
73
+ - lib/modular/generators/component/templates/component.rb.erb
74
+ - lib/modular/generators/component/templates/template.erb
76
75
  - lib/modular/layout_generator.rb
76
+ - lib/modular/mst_rendering.rb
77
77
  - lib/modular/railtie.rb
78
78
  - lib/modular/rendering.rb
79
79
  - lib/modular/version.rb
80
- - modular-app/Gemfile
81
- - modular-app/Rakefile
82
- - modular-app/config.ru
83
- - modular-app/config/application.rb
84
- - modular-app/config/boot.rb
85
- - modular-app/config/database.yml
86
- - modular-app/config/environment.rb
87
- - modular-app/config/environments/development.rb
88
- - modular-app/config/environments/production.rb
89
- - modular-app/config/environments/test.rb
90
- - modular-app/config/initializers/backtrace_silencers.rb
91
- - modular-app/config/initializers/inflections.rb
92
- - modular-app/config/initializers/mime_types.rb
93
- - modular-app/config/initializers/secret_token.rb
94
- - modular-app/config/initializers/session_store.rb
95
- - modular-app/config/locales/en.yml
96
- - modular-app/config/routes.rb
97
- - modular-app/db/migrate/20110721090602_create_simple_models.rb
98
- - modular-app/db/schema.rb
99
- - modular-app/db/seeds.rb
100
- - modular-app/script/rails
101
- - modular-app/spec/spec_helper.rb
102
80
  - modular.gemspec
103
- - spec/components/base.rb
104
- - spec/components/container.rb
105
- - spec/components/hello_world.rb
106
- - spec/components/helpers_example.rb
107
- - spec/components/validated.rb
81
+ - spec/components/base_spec.rb
82
+ - spec/components/container_spec.rb
83
+ - spec/components/hello_world_spec.rb
84
+ - spec/components/helpers_example_spec.rb
85
+ - spec/components/spec/internal/log/test.log
108
86
  - spec/controllers/cached_for_time_controller_spec.rb
109
87
  - spec/controllers/cached_forever_controller_spec.rb
110
88
  - spec/controllers/callback_layout_controller_spec.rb
111
- - spec/controllers/example_controller_spec.rb
112
- - spec/controllers/indirect_render_controller_spec.rb
113
89
  - spec/controllers/layout_test_controller_spec.rb
90
+ - spec/controllers/rendering_spec.rb
114
91
  - spec/internal/app/components/cached_for_time.rb
115
92
  - spec/internal/app/components/cached_forever.rb
116
93
  - spec/internal/app/components/fake_news_feed.rb
117
94
  - spec/internal/app/components/foobar.rb
118
- - spec/internal/app/components/heavy_task.rb
119
95
  - spec/internal/app/components/hello_world.rb
120
96
  - spec/internal/app/components/helpers_example.rb
97
+ - spec/internal/app/components/mustache_container.rb
98
+ - spec/internal/app/components/mustached.rb
121
99
  - spec/internal/app/components/validated.rb
122
100
  - spec/internal/app/components/vertical.rb
123
101
  - spec/internal/app/controllers/application_controller.rb
@@ -125,7 +103,6 @@ files:
125
103
  - spec/internal/app/controllers/cached_forever_controller.rb
126
104
  - spec/internal/app/controllers/callback_layout_controller.rb
127
105
  - spec/internal/app/controllers/example_controller.rb
128
- - spec/internal/app/controllers/indirect_render_controller.rb
129
106
  - spec/internal/app/controllers/layout_test_controller.rb
130
107
  - spec/internal/app/models/simple_model.rb
131
108
  - spec/internal/app/views/cached_for_time/index.html.erb
@@ -133,15 +110,17 @@ files:
133
110
  - spec/internal/app/views/callback_layout/index.html.erb
134
111
  - spec/internal/app/views/components/cached_for_time.html.erb
135
112
  - spec/internal/app/views/components/cached_forever.html.erb
136
- - spec/internal/app/views/components/container.html.erb
137
113
  - spec/internal/app/views/components/fake_news_feed.html.erb
138
114
  - spec/internal/app/views/components/foobar.html.erb
139
- - spec/internal/app/views/components/heavy_task.html.erb
140
115
  - spec/internal/app/views/components/hello_world.html.erb
141
116
  - spec/internal/app/views/components/helpers_example.html.erb
117
+ - spec/internal/app/views/components/mustache_container.mst
118
+ - spec/internal/app/views/components/mustached.mst
142
119
  - spec/internal/app/views/components/validated.html.erb
143
120
  - spec/internal/app/views/components/vertical.html.erb
144
121
  - spec/internal/app/views/example/index.html.erb
122
+ - spec/internal/app/views/example/mustache.html.erb
123
+ - spec/internal/app/views/example/mustache_nested.html.erb
145
124
  - spec/internal/app/views/indirect_render/index.html.erb
146
125
  - spec/internal/app/views/layout_test/index.html.erb
147
126
  - spec/internal/app/views/layouts/application.html.erb
@@ -152,14 +131,11 @@ files:
152
131
  - spec/internal/log/.gitignore
153
132
  - spec/internal/public/favicon.ico
154
133
  - spec/internal/tmp/.gitkeep
155
- - spec/internal/tmp/modular/cached_for_time.html.erb
156
- - spec/internal/tmp/modular/cached_forever.html.erb
157
- - spec/internal/tmp/modular/heavy.html.erb
158
- - spec/internal/tmp/modular/nested.html.erb
159
134
  - spec/modular/configuration_spec.rb
160
135
  - spec/modular/creation_spec.rb
136
+ - spec/modular/validation_spec.rb
161
137
  - spec/spec_helper.rb
162
- - spec/views/indirect_render/index.html.erb_spec.rb
138
+ - templates/components/container.html.erb
163
139
  - templates/layout.erb
164
140
  homepage: https://github.com/brain-geek/modular
165
141
  licenses: []
@@ -175,7 +151,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
175
151
  version: '0'
176
152
  segments:
177
153
  - 0
178
- hash: 541330603454818341
154
+ hash: -3892738958547389268
179
155
  required_rubygems_version: !ruby/object:Gem::Requirement
180
156
  none: false
181
157
  requirements:
@@ -184,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
160
  version: '0'
185
161
  segments:
186
162
  - 0
187
- hash: 541330603454818341
163
+ hash: -3892738958547389268
188
164
  requirements: []
189
165
  rubyforge_project: modular
190
166
  rubygems_version: 1.8.22