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 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