express_templates 0.11.6 → 0.11.7
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de55b6283d4cd228ad658ff1829a4902589af9ed
|
4
|
+
data.tar.gz: 5299e6fa7ca41ccf78778c0ed61b5eb6ba0b070f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bdf9b62c3e514c77747efa39d7f8b5c738a04ee536cf9868e14b88b40f594dd1fd39ebfc511732aff8cae1d2282961c002599135135358a7e66ae0744e96282b
|
7
|
+
data.tar.gz: abb4d01b06ca7435521c44aec3ec4a0c9a06c2ac298367f49588331ef05282fe4da5548d6768baab4d2c923809318814dc87f46696ee335714160102855e59d1
|
@@ -7,5 +7,6 @@ require 'express_templates/components/base'
|
|
7
7
|
require 'express_templates/components/configurable'
|
8
8
|
require 'express_templates/components/container'
|
9
9
|
require 'express_templates/components/tree_for'
|
10
|
+
require 'express_templates/components/content_for'
|
10
11
|
require 'express_templates/components/forms'
|
11
12
|
require 'express_templates/components/all'
|
@@ -22,6 +22,8 @@ module ExpressTemplates
|
|
22
22
|
# Options specified as required must be supplied.
|
23
23
|
#
|
24
24
|
# Default values may be supplied for options with a default: keyword.
|
25
|
+
# The value may be a proc. Useful for instances where you want a different
|
26
|
+
# value every time.
|
25
27
|
#
|
26
28
|
# Options may be passed as html attributes with attribute: true
|
27
29
|
#
|
@@ -85,11 +87,12 @@ module ExpressTemplates
|
|
85
87
|
|
86
88
|
def _set_defaults
|
87
89
|
_default_options.each do |key, value|
|
90
|
+
default_value = value[:default].respond_to?(:call) ? value[:default].call : value[:default]
|
88
91
|
if !!value[:attribute]
|
89
|
-
set_attribute key,
|
92
|
+
set_attribute key, default_value
|
90
93
|
else
|
91
94
|
if config[key].nil?
|
92
|
-
config[key] =
|
95
|
+
config[key] = default_value
|
93
96
|
end
|
94
97
|
end
|
95
98
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Proxy component for content_for to prevent it from inserting the block's
|
2
|
+
# value into its location.
|
3
|
+
class ContentForProxy < Arbre::HTML::Tag
|
4
|
+
builder_method :content_for
|
5
|
+
|
6
|
+
def build(key, content = nil, &block)
|
7
|
+
@value = helpers.content_for(key, content, &block)
|
8
|
+
end
|
9
|
+
|
10
|
+
def to_s
|
11
|
+
@value
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Patch to #capture to support Arbre::Element
|
16
|
+
module ActionView
|
17
|
+
module Helpers
|
18
|
+
module CaptureHelper
|
19
|
+
def capture(*args)
|
20
|
+
value = nil
|
21
|
+
buffer = with_output_buffer { value = yield(*args) }
|
22
|
+
value = value.to_s if value.is_a? Arbre::Element
|
23
|
+
if string = buffer.presence || value and string.is_a?(String)
|
24
|
+
ERB::Util.html_escape string
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -51,11 +51,24 @@ class ConfigurableTest < ActiveSupport::TestCase
|
|
51
51
|
has_option :rows, 'Number of rows', type: :integer, default: 5, attribute: true
|
52
52
|
end
|
53
53
|
|
54
|
+
class ConfigWithDefaultProcOption < ETCC
|
55
|
+
has_option(:rows, 'Number of rows', {
|
56
|
+
type: :integer,
|
57
|
+
default: -> { %w(some random word).sample },
|
58
|
+
attribute: true,
|
59
|
+
})
|
60
|
+
end
|
61
|
+
|
54
62
|
test "default values are supported" do
|
55
63
|
markup = render { config_with_default_option }
|
56
64
|
assert_equal %Q(<div class="config-with-default-option" rows="5"></div>\n), markup
|
57
65
|
end
|
58
66
|
|
67
|
+
test "default values which are procs are supported" do
|
68
|
+
markup = render { config_with_default_proc_option }
|
69
|
+
assert_match /(some|random|word)/, markup
|
70
|
+
end
|
71
|
+
|
59
72
|
test "default values for attributes can be overridden" do
|
60
73
|
markup = render { config_with_default_option(rows: 999) }
|
61
74
|
assert_equal %Q(<div class="config-with-default-option" rows="999"></div>\n), markup
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: express_templates
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Talcott Smith
|
@@ -189,6 +189,7 @@ files:
|
|
189
189
|
- lib/express_templates/components/capabilities/resourceful.rb
|
190
190
|
- lib/express_templates/components/configurable.rb
|
191
191
|
- lib/express_templates/components/container.rb
|
192
|
+
- lib/express_templates/components/content_for.rb
|
192
193
|
- lib/express_templates/components/forms.rb
|
193
194
|
- lib/express_templates/components/forms/basic_fields.rb
|
194
195
|
- lib/express_templates/components/forms/checkbox.rb
|