erector-rails4 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|