cells-erb 0.0.3 → 0.0.4
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 +7 -3
- data/CHANGES.md +4 -0
- data/Gemfile +6 -6
- data/README.md +1 -1
- data/cells-erb.gemspec +2 -2
- data/gemfiles/rails_3.2-tilt-1.4.gemfile +0 -1
- data/gemfiles/rails_4.2-tilt-1.4.gemfile +0 -1
- data/gemfiles/rails_4.2-tilt-2.0.gemfile +0 -1
- data/gemfiles/rails_4.2-tilt-3.0.gemfile +0 -1
- data/lib/cell/erb/template.rb +39 -13
- data/lib/cell/erb/version.rb +1 -1
- data/test/dummy/app/cells/song/render_in_render.erb +1 -0
- data/test/dummy/app/cells/song/render_in_render_2.erb +1 -0
- data/test/dummy/app/cells/song/with_form_tag_and_content_tag.erb +5 -1
- data/test/dummy/app/cells/song_cell.rb +7 -0
- data/test/erb_test.rb +13 -2
- metadata +8 -5
- data/Appraisals +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4bb2e8a877505bb6ec775dc3b2a9831da1c4788c
|
4
|
+
data.tar.gz: 46a65db846ce908de66f34fa9fc0f843dfd7a58c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 122cfd4eab5b6d53a0fa30c61f021b488223855d69a4cd27361a4986d6a7ef9ba9e8ecd7eec6dac2bd60ac85c309ee6c041590b41fc7b79398b442182a2af291
|
7
|
+
data.tar.gz: 16aac32c8f6d2e831e0fecfc1992976a58f932f27e2160b441e891019c75f3adb71be06cd3f13b37344ef3c04d5c3d2813962d681115d2f4c459335eea00b8ca
|
data/.travis.yml
CHANGED
@@ -1,4 +1,8 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 2.1
|
4
|
+
|
1
5
|
gemfile:
|
2
|
-
- gemfiles/
|
3
|
-
- gemfiles/
|
4
|
-
- gemfiles/
|
6
|
+
- gemfiles/rails_4.2-tilt-1.4.gemfile
|
7
|
+
- gemfiles/rails_4.2-tilt-2.0.gemfile
|
8
|
+
- gemfiles/rails_3.2-tilt-1.4.gemfile
|
data/CHANGES.md
CHANGED
data/Gemfile
CHANGED
@@ -2,9 +2,9 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in cells-erb.gemspec
|
4
4
|
gemspec
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
gem
|
9
|
-
gem
|
10
|
-
gem
|
5
|
+
|
6
|
+
gem "railties", "~> 4.2.0"
|
7
|
+
gem "activemodel"
|
8
|
+
gem "minitest", "~> 5.2"
|
9
|
+
gem "tilt", "~> 2.0"
|
10
|
+
gem "cells", path: "../cells"
|
data/README.md
CHANGED
@@ -29,7 +29,7 @@ class SongCell < Cell::ViewModel
|
|
29
29
|
end
|
30
30
|
```
|
31
31
|
|
32
|
-
If that doesn't work, [read the docs](http://trailblazerb.org/cells/
|
32
|
+
If that doesn't work, [read the docs](http://trailblazerb.org/gems/cells/cells4.html#html-escaping).
|
33
33
|
|
34
34
|
## Dependencies
|
35
35
|
|
data/cells-erb.gemspec
CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.
|
22
|
-
spec.
|
21
|
+
spec.add_dependency "cells", "~> 4.0.0.beta6"
|
22
|
+
spec.add_dependency "erbse", ">= 0.0.2"
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler"
|
25
25
|
spec.add_development_dependency "rake"
|
data/lib/cell/erb/template.rb
CHANGED
@@ -3,14 +3,46 @@ require "erbse"
|
|
3
3
|
module Cell
|
4
4
|
# Erb contains helpers that are messed up in Rails and do escaping.
|
5
5
|
module Erb
|
6
|
+
# This is to prevent multiple renders to share the same output_buffer.
|
7
|
+
# I am still trying to find a way to avoid output buffers.
|
8
|
+
def render_template(*)
|
9
|
+
old_output_buffer = @output_buffer
|
10
|
+
super
|
11
|
+
ensure
|
12
|
+
@output_buffer = old_output_buffer
|
13
|
+
end
|
14
|
+
|
15
|
+
def template_options_for(options)
|
16
|
+
{
|
17
|
+
template_class: ::Cell::Erb::Template,
|
18
|
+
escape_html: false,
|
19
|
+
escape_attrs: false,
|
20
|
+
suffix: "erb"
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
6
24
|
# this is capture copied from AV:::CaptureHelper without doing escaping.
|
7
|
-
# TODO: re-implement capture and return content instead of the OB rubbish.
|
8
25
|
def capture(*args)
|
9
26
|
value = nil
|
10
27
|
buffer = with_output_buffer { value = yield(*args) }
|
11
|
-
|
12
|
-
|
13
|
-
|
28
|
+
|
29
|
+
return buffer.to_s if buffer.size > 0
|
30
|
+
value # this applies for "Beachparty" string-only statements.
|
31
|
+
end
|
32
|
+
|
33
|
+
def with_output_buffer(block_buffer=ViewModel::OutputBuffer.new)
|
34
|
+
@output_buffer, old_buffer = block_buffer, @output_buffer
|
35
|
+
yield
|
36
|
+
@output_buffer = old_buffer
|
37
|
+
|
38
|
+
block_buffer
|
39
|
+
end
|
40
|
+
|
41
|
+
# Below:
|
42
|
+
# Rails specific helper fixes. I hate that. I can't tell you how much I hate those helpers,
|
43
|
+
# and their blind escaping for every possible string within the application.
|
44
|
+
def content_tag(name, content_or_options_with_block=nil, options=nil, escape=false, &block)
|
45
|
+
super
|
14
46
|
end
|
15
47
|
|
16
48
|
def form_tag_with_body(html_options, content)
|
@@ -33,21 +65,15 @@ module Cell
|
|
33
65
|
require_template_library 'erbse'
|
34
66
|
end
|
35
67
|
|
36
|
-
# :engine_class can be passed via
|
37
|
-
#
|
38
68
|
# Tilt.new("#{base}/#{prefix}/#{view}", engine_class: Erbse::Eruby)
|
39
69
|
def prepare
|
40
|
-
|
41
|
-
# engine_class = ::Erubis::EscapedEruby if options.delete(:escape_html)
|
42
|
-
@template = (engine_class || ::Erbse::Template).new(data, options)
|
70
|
+
@template = ::Erbse::Template.new(data, options)
|
43
71
|
end
|
44
72
|
|
45
73
|
def precompiled_template(locals)
|
74
|
+
# puts "@@@@@ #{@template.().inspect}"
|
46
75
|
@template.call
|
47
76
|
end
|
48
77
|
end
|
49
78
|
end
|
50
|
-
end
|
51
|
-
|
52
|
-
Tilt.register Cell::Erb::Template, "erb"
|
53
|
-
# Tilt.prefer Cell::Erb::Template
|
79
|
+
end
|
data/lib/cell/erb/version.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
<b>Questions: <%= render :render_in_render_2 %></b>
|
@@ -0,0 +1 @@
|
|
1
|
+
Yes!
|
@@ -31,4 +31,8 @@ Weiter!
|
|
31
31
|
<%= breadcrumbs %>
|
32
32
|
|
33
33
|
<%= current_page %>
|
34
|
-
<%= form_tag_with_body( {url: "/rails/escapes/too/much"}, %{<input type="button"/>}).html_safe %>
|
34
|
+
<%= form_tag_with_body( {url: "/rails/escapes/too/much"}, %{<input type="button"/>}).html_safe %>
|
35
|
+
|
36
|
+
<%= form_for OpenStruct.new, url: "/", as: "open" do |f| %>
|
37
|
+
<%= f.text_field :id %>
|
38
|
+
<% end %>
|
@@ -4,6 +4,9 @@ class SongCell < Cell::ViewModel
|
|
4
4
|
include ActionView::Helpers::FormHelper
|
5
5
|
include Cell::Erb
|
6
6
|
|
7
|
+
def protect_against_forgery?
|
8
|
+
end
|
9
|
+
|
7
10
|
def with_form_tag_and_content_tag
|
8
11
|
render
|
9
12
|
end
|
@@ -36,6 +39,10 @@ class SongCell < Cell::ViewModel
|
|
36
39
|
render
|
37
40
|
end
|
38
41
|
|
42
|
+
def render_in_render
|
43
|
+
render
|
44
|
+
end
|
45
|
+
|
39
46
|
private
|
40
47
|
def cap
|
41
48
|
"yay, #{with_output_buffer { yield } }"
|
data/test/erb_test.rb
CHANGED
@@ -4,9 +4,12 @@ class ErbTest < MiniTest::Spec
|
|
4
4
|
let (:controller) { ApplicationController.new.tap { |ctl| ctl.send("request=", ActionDispatch::Request.new({})) } }
|
5
5
|
let (:song_cell) { SongCell.new(controller) }
|
6
6
|
|
7
|
+
# render in render
|
8
|
+
it { song_cell.(:render_in_render).must_equal "<b>Questions: Yes!</b>" }
|
7
9
|
|
8
10
|
# URL helpers work in cell instance.
|
9
|
-
|
11
|
+
# -- this is actually covered well enough in cells, and is unrelated to ERB.
|
12
|
+
# it { song_cell.songs_path.must_equal "/songs" }
|
10
13
|
|
11
14
|
# content_tag { }
|
12
15
|
it { song_cell.(:with_content_tag).must_equal "<div>Beachparty</div>" }
|
@@ -27,6 +30,12 @@ class ErbTest < MiniTest::Spec
|
|
27
30
|
form_with_body_tag = "<form url=\"/rails/escapes/too/much\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"button\"/></form>"
|
28
31
|
form_with_body_tag = "<form method=\"post\" url=\"/rails/escapes/too/much\"><div style=\"margin:0;padding:0;display:inline\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /></div><input type=\"button\"/></form>" if ActionPack::VERSION::MAJOR == 3
|
29
32
|
|
33
|
+
form_for_tag = "<form class=\"new_open\" id=\"new_open\" action=\"/\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" />
|
34
|
+
<input type=\"text\" name=\"open[id]\" id=\"open_id\" />
|
35
|
+
</form>"
|
36
|
+
form_for_tag = "<form accept-charset=\"UTF-8\" action=\"/\" class=\"new_open\" id=\"new_open\" method=\"post\"><div style=\"margin:0;padding:0;display:inline\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /></div>
|
37
|
+
<input id=\"open_id\" name=\"open[id]\" size=\"30\" type=\"text\" />
|
38
|
+
</form>" if ActionPack::VERSION::MAJOR == 3
|
30
39
|
|
31
40
|
song_cell.(:with_form_tag_and_content_tag).must_equal %{Word.
|
32
41
|
|
@@ -52,7 +61,9 @@ Weiter!
|
|
52
61
|
<a href=\"/1\">1</a>+<a href=\"/2\">2</a>
|
53
62
|
|
54
63
|
<b>No current page!<b>
|
55
|
-
#{form_with_body_tag}
|
64
|
+
#{form_with_body_tag}
|
65
|
+
|
66
|
+
#{form_for_tag}}
|
56
67
|
end
|
57
68
|
end
|
58
69
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cells-erb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abdelkader Boudih
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-06-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cells
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 4.0.0.
|
20
|
+
version: 4.0.0.beta6
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 4.0.0.
|
27
|
+
version: 4.0.0.beta6
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: erbse
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,7 +78,6 @@ extra_rdoc_files: []
|
|
78
78
|
files:
|
79
79
|
- ".gitignore"
|
80
80
|
- ".travis.yml"
|
81
|
-
- Appraisals
|
82
81
|
- CHANGES.md
|
83
82
|
- Gemfile
|
84
83
|
- LICENSE.txt
|
@@ -93,6 +92,8 @@ files:
|
|
93
92
|
- lib/cell/erb/version.rb
|
94
93
|
- lib/cells-erb.rb
|
95
94
|
- test/dummy/Rakefile
|
95
|
+
- test/dummy/app/cells/song/render_in_render.erb
|
96
|
+
- test/dummy/app/cells/song/render_in_render_2.erb
|
96
97
|
- test/dummy/app/cells/song/with_content_tag.erb
|
97
98
|
- test/dummy/app/cells/song/with_content_tag_and_content_tag.erb
|
98
99
|
- test/dummy/app/cells/song/with_form_for_block.erb
|
@@ -134,6 +135,8 @@ specification_version: 4
|
|
134
135
|
summary: Tilt binding for Erbse.
|
135
136
|
test_files:
|
136
137
|
- test/dummy/Rakefile
|
138
|
+
- test/dummy/app/cells/song/render_in_render.erb
|
139
|
+
- test/dummy/app/cells/song/render_in_render_2.erb
|
137
140
|
- test/dummy/app/cells/song/with_content_tag.erb
|
138
141
|
- test/dummy/app/cells/song/with_content_tag_and_content_tag.erb
|
139
142
|
- test/dummy/app/cells/song/with_form_for_block.erb
|
data/Appraisals
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
appraise 'rails-3.2' do
|
2
|
-
gem 'railties', '~> 3.2'
|
3
|
-
gem 'tzinfo'
|
4
|
-
gem 'minitest', '4.7.5'
|
5
|
-
end
|
6
|
-
|
7
|
-
appraise "rails-4.0" do
|
8
|
-
gem 'railties', '~> 4.0.0'
|
9
|
-
gem 'activemodel'
|
10
|
-
gem 'minitest', '4.7.5'
|
11
|
-
end
|
12
|
-
|
13
|
-
appraise "rails-4.1" do
|
14
|
-
gem 'railties', '~> 4.1.0'
|
15
|
-
gem 'activemodel'
|
16
|
-
gem 'minitest', '~> 5.2'
|
17
|
-
end
|
18
|
-
|
19
|
-
appraise "rails-4.2" do
|
20
|
-
gem 'railties', '~> 4.2.0'
|
21
|
-
gem 'activemodel'
|
22
|
-
gem 'minitest', '~> 5.2'
|
23
|
-
end
|