padrino-helpers 0.12.0.rc3 → 0.12.0

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: 11dcd2a626d740ceec02caecc96a2ab739b8efbb
4
- data.tar.gz: 28332dbf5e48bc2fd98c67be36eae6b0f855c4a3
3
+ metadata.gz: abf7a7c5e2a12e941b018c62e94e24b47f1b9bf6
4
+ data.tar.gz: c59d6ed08223958df60c85512571fa3b063e46af
5
5
  SHA512:
6
- metadata.gz: 1943f4a6e59cccc9e4e342fe21a2bf56db13aa2d25b035c553604262c3b84163d31b19d8cbdee2b7757e00549f2a1e1132b0d3a15f203102c094a86e56fdab72
7
- data.tar.gz: 735b182f9e9db1594d5c93980af0bb10821faab70debd70217fc5896967aae62634936ef8bff974485c527c875ca67ff8406e258bb58a0919515fdc672789b62
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
- def fields_for(child_association, instance_or_collection=nil, &block)
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
- nested_options[:index] = include_index ? index : nil
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
@@ -15,7 +15,7 @@ lv:
15
15
  format:
16
16
  # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00).
17
17
  format: "%u %n"
18
- unit: "LVL"
18
+ unit: '€'
19
19
  # These three are to override number.format and are optional.
20
20
  separator: ","
21
21
  delimiter: "."
@@ -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
 
@@ -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
@@ -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
@@ -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.rc3
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-01-20 00:00:00.000000000 Z
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.rc3
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.rc3
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.1
197
+ version: 1.3.6
198
198
  requirements: []
199
199
  rubyforge_project: padrino-helpers
200
200
  rubygems_version: 2.0.6