padrino-helpers 0.12.0.rc3 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/padrino-helpers/form_builder/abstract_form_builder.rb +12 -2
- data/lib/padrino-helpers/locale/lv.yml +1 -1
- data/lib/padrino-helpers/tag_helpers.rb +1 -1
- data/test/test_form_builder.rb +17 -0
- data/test/test_form_helpers.rb +3 -3
- data/test/test_tag_helpers.rb +5 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abf7a7c5e2a12e941b018c62e94e24b47f1b9bf6
|
4
|
+
data.tar.gz: c59d6ed08223958df60c85512571fa3b063e46af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b75a79d145a6a8027674b75713c11afa14fd727b02d6f60754bda869ded0c925f47c1f408158d4186f8ee70ee72826c829e92e4309708521b1fcba3f6d854e68
|
7
|
+
data.tar.gz: 3be7c0827d6f9750bf536b41abb358745c474cbd5429c54e7e11619c2973a3aecb8583793f7dbbed8c96f888e28a58a30b8ac7e721c72806c59bfa7ee60eb3f3
|
@@ -135,13 +135,23 @@ module Padrino
|
|
135
135
|
# f.fields_for :addresses
|
136
136
|
# f.fields_for :addresses, address
|
137
137
|
# f.fields_for :addresses, @addresses
|
138
|
-
|
138
|
+
# f.fields_for :addresses, address, index: i
|
139
|
+
def fields_for(child_association, instance_or_collection=nil, options={}, &block)
|
139
140
|
default_collection = self.object.send(child_association)
|
141
|
+
|
140
142
|
include_index = default_collection.respond_to?(:each)
|
143
|
+
custom_index = options.has_key?(:index)
|
144
|
+
|
141
145
|
nested_options = { :parent => self, :association => child_association }
|
142
146
|
nested_objects = instance_or_collection ? Array(instance_or_collection) : Array(default_collection)
|
143
147
|
nested_objects.each_with_index.map do |child_instance, index|
|
144
|
-
|
148
|
+
if custom_index
|
149
|
+
nested_options[:index] = options[:index]
|
150
|
+
elsif include_index
|
151
|
+
nested_options[:index] = index
|
152
|
+
else
|
153
|
+
nested_options[:index] = nil
|
154
|
+
end
|
145
155
|
@template.fields_for(child_instance, { :nested => nested_options }, &block)
|
146
156
|
end.join("\n").html_safe
|
147
157
|
end
|
@@ -129,7 +129,7 @@ module Padrino
|
|
129
129
|
if content.respond_to?(:each) && !content.is_a?(String)
|
130
130
|
content.each { |c| output.concat c; output.safe_concat NEWLINE }
|
131
131
|
else
|
132
|
-
output.concat content
|
132
|
+
output.concat content.to_s
|
133
133
|
end
|
134
134
|
output.safe_concat "</#{name}>"
|
135
135
|
|
data/test/test_form_builder.rb
CHANGED
@@ -927,6 +927,23 @@ describe "FormBuilder" do
|
|
927
927
|
assert_has_tag('input', :type => 'text', :id => 'user_addresses_attributes_1_businesses_attributes_0_name', :name => 'user[addresses_attributes][1][businesses_attributes][0][name]') { actual_html }
|
928
928
|
end
|
929
929
|
|
930
|
+
should "display fields for nested forms with custom indices" do
|
931
|
+
actual_html = standard_builder.fields_for :addresses do |child_form|
|
932
|
+
html = ''.html_safe
|
933
|
+
child_form.object.businesses.each_with_index do |business, i|
|
934
|
+
html += child_form.fields_for(:businesses, business, :index => ('a'..'z').to_a[i]) do |second_child_form|
|
935
|
+
second_child_form.label(:name) +
|
936
|
+
second_child_form.text_field(:name) +
|
937
|
+
second_child_form.check_box('_destroy')
|
938
|
+
end
|
939
|
+
end
|
940
|
+
html
|
941
|
+
end
|
942
|
+
|
943
|
+
assert_has_tag('label', :for => 'user_addresses_attributes_1_businesses_attributes_a_name', :content => 'Name') { actual_html }
|
944
|
+
assert_has_tag('input', :type => 'text', :id => 'user_addresses_attributes_1_businesses_attributes_a_name', :name => 'user[addresses_attributes][1][businesses_attributes][a][name]') { actual_html }
|
945
|
+
end
|
946
|
+
|
930
947
|
should "display nested children fields in erb" do
|
931
948
|
visit '/erb/fields_for'
|
932
949
|
# Telephone
|
data/test/test_form_helpers.rb
CHANGED
@@ -646,9 +646,9 @@ describe "FormHelpers" do
|
|
646
646
|
should "take a range as a collection for options" do
|
647
647
|
actual_html = select_tag(:favorite_color, :options => (1..3))
|
648
648
|
assert_has_tag(:select) { actual_html }
|
649
|
-
assert_has_tag('select option', :value => '1') { actual_html }
|
650
|
-
assert_has_tag('select option', :value => '2') { actual_html }
|
651
|
-
assert_has_tag('select option', :value => '3') { actual_html }
|
649
|
+
assert_has_tag('select option', :content => '1', :value => '1') { actual_html }
|
650
|
+
assert_has_tag('select option', :content => '2', :value => '2') { actual_html }
|
651
|
+
assert_has_tag('select option', :content => '3', :value => '3') { actual_html }
|
652
652
|
end
|
653
653
|
|
654
654
|
should "include blank for grouped options" do
|
data/test/test_tag_helpers.rb
CHANGED
@@ -64,6 +64,11 @@ describe "TagHelpers" do
|
|
64
64
|
assert_has_tag('p.large#star', :content => "<>") { actual_html }
|
65
65
|
end
|
66
66
|
|
67
|
+
should "convert to a string if the content is not a string" do
|
68
|
+
actual_html = content_tag(:p, 97)
|
69
|
+
assert_has_tag('p', :content => "97") { actual_html }
|
70
|
+
end
|
71
|
+
|
67
72
|
should "support tags with erb" do
|
68
73
|
visit '/erb/content_tag'
|
69
74
|
assert_have_selector :p, :content => "Test 1", :class => 'test', :id => 'test1'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: padrino-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.12.0
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Padrino Team
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2014-
|
14
|
+
date: 2014-02-09 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: padrino-core
|
@@ -19,14 +19,14 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - '='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.12.0
|
22
|
+
version: 0.12.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.12.0
|
29
|
+
version: 0.12.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: i18n
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,9 +192,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
192
192
|
version: '0'
|
193
193
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
194
|
requirements:
|
195
|
-
- - '
|
195
|
+
- - '>='
|
196
196
|
- !ruby/object:Gem::Version
|
197
|
-
version: 1.3.
|
197
|
+
version: 1.3.6
|
198
198
|
requirements: []
|
199
199
|
rubyforge_project: padrino-helpers
|
200
200
|
rubygems_version: 2.0.6
|