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 +4 -4
- data/app/views/layout/_jubako.html.erb +1 -0
- data/app/views/layout/jubako.html.erb +1 -1
- data/lib/jubako.rb +4 -3
- data/lib/jubako/helpers/extends.rb +2 -1
- data/lib/jubako/helpers/rendering.rb +31 -0
- data/lib/jubako/renderer.rb +33 -21
- data/lib/jubako/version.rb +1 -1
- metadata +4 -3
- data/lib/jubako/template_renderer.rb +0 -17
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8e90169632a8b7304431ac0fbce590b1725dd45a
|
|
4
|
+
data.tar.gz: 8569d0de2b63274b1ee1a183a7051721220526c4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 50b3ad00133e10bc39c2190e600bc9abf2d4ba2956eab39f41ff09314acf12a878718a01de6f8e200b7b599a726c337c334c768fc37795b76c49b898dbb7e465
|
|
7
|
+
data.tar.gz: 272505489661328f3222fa62a8ef4c5b2d876b15aa59cd9a4115fbaf550beb8060ca4fe069c9c9c5afb7dd8b9dc563607bac9e241e8c102d1128bb504d2c2bed
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= jubako_renderer(local_assigns) { yield } %>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<%= jubako_renderer(
|
|
1
|
+
<%= jubako_renderer(local_assigns) { yield } %>
|
data/lib/jubako.rb
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
require "jubako/engine"
|
|
2
2
|
require "jubako/renderer"
|
|
3
|
-
require "jubako/
|
|
3
|
+
require "jubako/helpers/rendering"
|
|
4
4
|
require "jubako/helpers/extends"
|
|
5
5
|
require "jubako/helpers/block"
|
|
6
6
|
|
|
7
|
-
ActionView::
|
|
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)
|
|
@@ -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
|
data/lib/jubako/renderer.rb
CHANGED
|
@@ -1,28 +1,40 @@
|
|
|
1
1
|
module Jubako
|
|
2
2
|
module Renderer
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
37
|
+
ret
|
|
26
38
|
end
|
|
27
39
|
end
|
|
28
40
|
end
|
data/lib/jubako/version.rb
CHANGED
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.
|
|
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-
|
|
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
|