erector-rails4 0.0.2 → 0.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/.ruby-version +1 -1
- data/Gemfile.lock +1 -1
- data/lib/erector/cache.rb +1 -13
- data/lib/erector/inline.rb +1 -12
- data/lib/erector/rails.rb +9 -79
- data/lib/erector/version.rb +1 -3
- data/spec/dummy/app/helpers/application_helper.rb +6 -1
- data/spec/dummy/spec/rails_helpers_spec.rb +34 -16
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf70db8bc4222c447f5b7d613fd029da5936df19
|
4
|
+
data.tar.gz: b584d63e1e6a78cb7ea1da565859e210a42735c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 09e3d1a72dda9f47c330b52b929c3ba51b95b011929cd72a1b5e6eb2f84d36028842c77da94e48040346e8204e73752f9f273cca7ce137b1d3bd1ce58efb6722
|
7
|
+
data.tar.gz: 611d90b3a8949e4fca8ea50d887de30aae31bcb54d505aaab870e6a22b159624c31292854249ebb554cbe2349406c10b8881063ce2ff2f64f1e17cf9ef2992b3
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.0
|
1
|
+
2.0.0-p353
|
data/Gemfile.lock
CHANGED
data/lib/erector/cache.rb
CHANGED
@@ -18,19 +18,7 @@ module Erector
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def transform_key(args)
|
21
|
-
|
22
|
-
if x.is_a?(Hash)
|
23
|
-
transformed = {}
|
24
|
-
|
25
|
-
x.each do |k, v|
|
26
|
-
transformed[k] = v.respond_to?(:cache_key) ? v.cache_key : v
|
27
|
-
end
|
28
|
-
|
29
|
-
transformed
|
30
|
-
else
|
31
|
-
x
|
32
|
-
end
|
33
|
-
}
|
21
|
+
ActiveSupport::Cache.expand_cache_key(args.reject { |x| x.nil? }, 'erector')
|
34
22
|
end
|
35
23
|
|
36
24
|
end
|
data/lib/erector/inline.rb
CHANGED
@@ -2,7 +2,7 @@ module Erector
|
|
2
2
|
def self.inline(*args, &block)
|
3
3
|
InlineWidget.new(*args, &block)
|
4
4
|
end
|
5
|
-
|
5
|
+
|
6
6
|
module Inline
|
7
7
|
# Executes the widget's block (the one that was passed in the
|
8
8
|
# constructor). Since "self" is pointing to the new widget, the block does
|
@@ -17,17 +17,6 @@ module Erector
|
|
17
17
|
# note that instance_eval seems to pass in self as a parameter to the block
|
18
18
|
instance_eval(&block) if block
|
19
19
|
end
|
20
|
-
|
21
|
-
private
|
22
|
-
# This is part of the sub-widget/parent feature (see #widget method).
|
23
|
-
def method_missing(name, *args, &block)
|
24
|
-
if parent && parent.respond_to?(name)
|
25
|
-
block ||= lambda {} # captures self HERE
|
26
|
-
parent.send(name, *args, &block)
|
27
|
-
else
|
28
|
-
super
|
29
|
-
end
|
30
|
-
end
|
31
20
|
end
|
32
21
|
|
33
22
|
class InlineWidget < Widget
|
data/lib/erector/rails.rb
CHANGED
@@ -43,16 +43,6 @@ module Erector
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
-
# Wrappers for rails helpers that produce markup. Erector needs to
|
47
|
-
# manually emit their result.
|
48
|
-
def def_simple_rails_helper(method_name)
|
49
|
-
module_eval <<-METHOD_DEF, __FILE__, __LINE__+1
|
50
|
-
def #{method_name}(*args, &block)
|
51
|
-
text helpers.#{method_name}(*args, &block)
|
52
|
-
end
|
53
|
-
METHOD_DEF
|
54
|
-
end
|
55
|
-
|
56
46
|
def def_rails_form_helper(method_name, explicit_builder = nil)
|
57
47
|
module_eval <<-METHOD_DEF, __FILE__, __LINE__+1
|
58
48
|
def #{method_name}(*args, &block)
|
@@ -130,11 +120,17 @@ module Erector
|
|
130
120
|
end
|
131
121
|
end
|
132
122
|
|
133
|
-
# Delegate to
|
134
|
-
#
|
123
|
+
# Delegate to both Rails and custom helpers via method_missing,
|
124
|
+
# and output return values that are html_safe
|
135
125
|
def method_missing(name, *args, &block)
|
136
126
|
if helpers.respond_to?(name)
|
137
|
-
helpers.send(name, *args, &block)
|
127
|
+
return_value = helpers.send(name, *args, &block)
|
128
|
+
|
129
|
+
if return_value.try(:html_safe?)
|
130
|
+
text return_value
|
131
|
+
else
|
132
|
+
return_value
|
133
|
+
end
|
138
134
|
else
|
139
135
|
super
|
140
136
|
end
|
@@ -146,72 +142,6 @@ module Erector
|
|
146
142
|
super || helpers.respond_to?(name)
|
147
143
|
end
|
148
144
|
|
149
|
-
[
|
150
|
-
# UrlHelper
|
151
|
-
:link_to,
|
152
|
-
:button_to,
|
153
|
-
:link_to_unless_current,
|
154
|
-
:link_to_unless,
|
155
|
-
:link_to_if,
|
156
|
-
:mail_to,
|
157
|
-
|
158
|
-
# FormTagHelper
|
159
|
-
:form_tag,
|
160
|
-
:select_tag,
|
161
|
-
:text_field_tag,
|
162
|
-
:label_tag,
|
163
|
-
:hidden_field_tag,
|
164
|
-
:file_field_tag,
|
165
|
-
:password_field_tag,
|
166
|
-
:text_area_tag,
|
167
|
-
:check_box_tag,
|
168
|
-
:radio_button_tag,
|
169
|
-
:submit_tag,
|
170
|
-
:image_submit_tag,
|
171
|
-
:field_set_tag,
|
172
|
-
|
173
|
-
# FormHelper
|
174
|
-
:form_for,
|
175
|
-
:text_field,
|
176
|
-
:password_field,
|
177
|
-
:hidden_field,
|
178
|
-
:file_field,
|
179
|
-
:text_area,
|
180
|
-
:check_box,
|
181
|
-
:radio_button,
|
182
|
-
|
183
|
-
# AssetTagHelper
|
184
|
-
:auto_discovery_link_tag,
|
185
|
-
:javascript_include_tag,
|
186
|
-
:stylesheet_link_tag,
|
187
|
-
:favicon_link_tag,
|
188
|
-
:image_tag,
|
189
|
-
|
190
|
-
# ScriptaculousHelper
|
191
|
-
:sortable_element,
|
192
|
-
:sortable_element_js,
|
193
|
-
:text_field_with_auto_complete,
|
194
|
-
:draggable_element,
|
195
|
-
:drop_receiving_element,
|
196
|
-
|
197
|
-
# PrototypeHelper
|
198
|
-
:link_to_remote,
|
199
|
-
:button_to_remote,
|
200
|
-
:periodically_call_remote,
|
201
|
-
:form_remote_tag,
|
202
|
-
:submit_to_remote,
|
203
|
-
:update_page_tag,
|
204
|
-
|
205
|
-
# JavaScriptHelper
|
206
|
-
:javascript_tag,
|
207
|
-
|
208
|
-
# CsrfHelper
|
209
|
-
:csrf_meta_tag,
|
210
|
-
:csrf_meta_tags
|
211
|
-
].each do |method_name|
|
212
|
-
def_simple_rails_helper(method_name)
|
213
|
-
end
|
214
|
-
|
215
145
|
[:form_for, :fields_for].each do |method_name|
|
216
146
|
def_rails_form_helper(method_name)
|
217
147
|
end
|
data/lib/erector/version.rb
CHANGED
@@ -18,14 +18,46 @@ describe Erector::Rails do
|
|
18
18
|
Erector::Rails.render(Erector.inline(&block), @controller.view_context)
|
19
19
|
end
|
20
20
|
|
21
|
-
describe "a non-output helper" do
|
21
|
+
describe "a user-defined non-output helper" do
|
22
22
|
it "does not render to the output buffer" do
|
23
23
|
test_render do
|
24
|
-
if
|
24
|
+
if user_role_unsafe == 'admin'
|
25
25
|
text 'foo'
|
26
26
|
end
|
27
27
|
end.should == %{foo}
|
28
28
|
end
|
29
|
+
|
30
|
+
it "renders with the text method" do
|
31
|
+
test_render do
|
32
|
+
text user_role_unsafe
|
33
|
+
end.should == %{admin}
|
34
|
+
end
|
35
|
+
|
36
|
+
it "can be combined with a built-in method" do
|
37
|
+
test_render do
|
38
|
+
link_to user_role_unsafe, user_role_unsafe
|
39
|
+
end.should == %{<a href="admin">admin</a>}
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "a helper intended to output" do
|
44
|
+
it "renders when called" do
|
45
|
+
test_render do
|
46
|
+
user_role_safe
|
47
|
+
end.should == %{admin}
|
48
|
+
end
|
49
|
+
|
50
|
+
it "cannot be combined directly with a built-in method" do
|
51
|
+
test_render do
|
52
|
+
image_tag user_role_safe
|
53
|
+
end.should == %{admin<img src="" />}
|
54
|
+
end
|
55
|
+
|
56
|
+
it "can be combined with a built-in method by using capture" do
|
57
|
+
test_render do
|
58
|
+
image_tag capture {user_role_safe}
|
59
|
+
end.should == %{<img alt="Admin" src="/images/admin" />}
|
60
|
+
end
|
29
61
|
end
|
30
62
|
|
31
63
|
describe "#link_to" do
|
@@ -168,20 +200,6 @@ describe Erector::Rails do
|
|
168
200
|
end
|
169
201
|
end
|
170
202
|
|
171
|
-
if defined?(ActionView::Helpers::ScriptaculousHelper)
|
172
|
-
[:sortable_element,
|
173
|
-
:draggable_element,
|
174
|
-
:drop_receiving_element].each do |helper|
|
175
|
-
describe "##{helper}" do
|
176
|
-
it "renders helper js" do
|
177
|
-
test_render do
|
178
|
-
send(helper, "rails", :url => "/foo")
|
179
|
-
end.should =~ %r{<script type="text/javascript">.*</script>}m
|
180
|
-
end
|
181
|
-
end
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
203
|
describe "#render" do
|
186
204
|
it "renders text" do
|
187
205
|
test_render do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: erector-rails4
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Chaffee
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2013-12-
|
16
|
+
date: 2013-12-31 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: rails
|