jubako 0.0.1 → 0.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e59d567d99960b86a2ae3556086704dd5e4ed15b
4
- data.tar.gz: ed89d7e1fb91c72b3cf2588ea564cb43208501b2
3
+ metadata.gz: 8e90169632a8b7304431ac0fbce590b1725dd45a
4
+ data.tar.gz: 8569d0de2b63274b1ee1a183a7051721220526c4
5
5
  SHA512:
6
- metadata.gz: 96b41a49c8a52e25f17a4d531b1553cb25ea210b6250c348c7679b4447cf1afc86d736adc4dcf7ed9d87f522f0b088e00ac784ea7af32b6667737c600ae70d0c
7
- data.tar.gz: 09eae93539e9dd7c418c4143d8fb5e79217f67c9916c52c01b4004358beeb181f4fae4f1f4c755441e4293471013a8e449506fa1e2d5075a64cb8b63e25517be
6
+ metadata.gz: 50b3ad00133e10bc39c2190e600bc9abf2d4ba2956eab39f41ff09314acf12a878718a01de6f8e200b7b599a726c337c334c768fc37795b76c49b898dbb7e465
7
+ data.tar.gz: 272505489661328f3222fa62a8ef4c5b2d876b15aa59cd9a4115fbaf550beb8060ca4fe069c9c9c5afb7dd8b9dc563607bac9e241e8c102d1128bb504d2c2bed
@@ -0,0 +1 @@
1
+ <%= jubako_renderer(local_assigns) { yield } %>
@@ -1 +1 @@
1
- <%= jubako_renderer(jubako_original_layout, local_assigns) { yield } %>
1
+ <%= jubako_renderer(local_assigns) { yield } %>
@@ -1,10 +1,11 @@
1
1
  require "jubako/engine"
2
2
  require "jubako/renderer"
3
- require "jubako/template_renderer"
3
+ require "jubako/helpers/rendering"
4
4
  require "jubako/helpers/extends"
5
5
  require "jubako/helpers/block"
6
6
 
7
- ActionView::TemplateRenderer.send(:include, Jubako::TemplateRenderer)
8
- ActionView::Base.send(:include, Jubako::Renderer)
7
+ ActionView::Base.send(:include, Jubako::Helpers::Rendering)
9
8
  ActionView::Base.send(:include, Jubako::Helpers::Extends)
10
9
  ActionView::Base.send(:include, Jubako::Helpers::Block)
10
+
11
+ ActionView::Renderer.send(:include, Jubako::Renderer)
@@ -1,7 +1,8 @@
1
1
  module Jubako::Helpers
2
2
  module Extends
3
3
  def extends(layout)
4
- content_for(:jubako_extend_layout, layout, flush: true)
4
+ scope = content_for(:jubako_scope)
5
+ content_for("jubako_extend_#{scope}", layout, flush: true)
5
6
  end
6
7
  end
7
8
  end
@@ -0,0 +1,31 @@
1
+ module Jubako::Helpers
2
+ module Rendering
3
+ def jubako_renderer(locals = {})
4
+ scope = content_for(:jubako_scope)
5
+ extends = content_for("jubako_extend_#{scope}")
6
+
7
+ layout = locals["jubako_layout_#{scope}"]
8
+ layout = layout.call if layout.is_a?(Proc)
9
+
10
+ args = { locals: locals, jubako: true }
11
+
12
+ if layout
13
+ if extends
14
+ args[:template] = extends
15
+ args[:layout] = layout
16
+ else
17
+ args[:template] = layout
18
+ end
19
+ else
20
+ if extends
21
+ args[:template] = extends
22
+ else
23
+ return yield
24
+ end
25
+ end
26
+
27
+ content_for("jubako_extend_#{scope}", '', flush: true)
28
+ render(args)
29
+ end
30
+ end
31
+ end
@@ -1,28 +1,40 @@
1
1
  module Jubako
2
2
  module Renderer
3
- def jubako_renderer(layout, locals = {})
4
- extends = content_for(:jubako_extend_layout)
5
- layout = layout.call if layout.is_a?(Proc)
6
- args = { locals: locals }
7
-
8
- content_for(:jubako_extend_layout, '', flush: true)
9
-
10
- if layout.nil?
11
- if extends.nil?
12
- return yield
13
- else
14
- args[:template] = extends
15
- end
16
- else
17
- if extends.nil?
18
- args[:template] = layout
19
- else
20
- args[:template] = extends
21
- args[:layout] = layout
22
- end
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ alias_method_chain :render_template, :jubako
7
+ alias_method_chain :render_partial, :jubako
8
+ end
9
+
10
+ def render_template_with_jubako(context, options)
11
+ jubako_scoped(context, options) do
12
+ render_template_without_jubako(context, options)
13
+ end
14
+ end
15
+
16
+ def render_partial_with_jubako(context, options, &block)
17
+ jubako_scoped(context, options) do
18
+ render_partial_without_jubako(context, options, &block)
23
19
  end
20
+ end
21
+
22
+ private
23
+
24
+ def jubako_scoped(ctx, opts)
25
+ old_scope = ctx.content_for(:jubako_scope)
26
+ new_scope = old_scope
27
+ new_scope = SecureRandom.hex(8) unless opts[:jubako]
28
+
29
+ opts[:locals] ||= {}
30
+ opts[:locals]["jubako_layout_#{new_scope}"] = opts[:layout]
31
+ opts[:layout] = 'layout/jubako'
32
+
33
+ ctx.content_for(:jubako_scope, new_scope, flush: true)
34
+ ret = yield(new_scope)
35
+ ctx.content_for(:jubako_scope, old_scope || '', flush: true)
24
36
 
25
- render(args)
37
+ ret
26
38
  end
27
39
  end
28
40
  end
@@ -1,3 +1,3 @@
1
1
  module Jubako
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jubako
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuki Hattori
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-23 00:00:00.000000000 Z
11
+ date: 2015-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -62,13 +62,14 @@ files:
62
62
  - MIT-LICENSE
63
63
  - README.md
64
64
  - Rakefile
65
+ - app/views/layout/_jubako.html.erb
65
66
  - app/views/layout/jubako.html.erb
66
67
  - lib/jubako.rb
67
68
  - lib/jubako/engine.rb
68
69
  - lib/jubako/helpers/block.rb
69
70
  - lib/jubako/helpers/extends.rb
71
+ - lib/jubako/helpers/rendering.rb
70
72
  - lib/jubako/renderer.rb
71
- - lib/jubako/template_renderer.rb
72
73
  - lib/jubako/version.rb
73
74
  homepage: https://github.com/yhatt
74
75
  licenses:
@@ -1,17 +0,0 @@
1
- module Jubako
2
- module TemplateRenderer
3
- extend ActiveSupport::Concern
4
-
5
- included do
6
- alias_method_chain :render_template, :jubako
7
- end
8
-
9
- def render_template_with_jubako(template, layout_name = nil, locals = nil)
10
- locals ||= {}
11
- locals[:jubako_original_layout] = layout_name
12
-
13
- layout_name = find_layout('layout/jubako', locals.keys)
14
- render_template_without_jubako(template, layout_name, locals)
15
- end
16
- end
17
- end