simple_form 2.1.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of simple_form might be problematic. Click here for more details.

Files changed (93) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +77 -33
  3. data/MIT-LICENSE +1 -1
  4. data/README.md +387 -187
  5. data/lib/generators/simple_form/install_generator.rb +4 -4
  6. data/lib/generators/simple_form/templates/README +3 -4
  7. data/lib/generators/simple_form/templates/config/initializers/simple_form.rb +45 -22
  8. data/lib/generators/simple_form/templates/config/initializers/simple_form_bootstrap.rb +128 -24
  9. data/lib/generators/simple_form/templates/config/initializers/simple_form_foundation.rb +87 -6
  10. data/lib/generators/simple_form/templates/config/locales/simple_form.en.yml +7 -2
  11. data/lib/simple_form/action_view_extensions/builder.rb +2 -319
  12. data/lib/simple_form/action_view_extensions/form_helper.rb +8 -11
  13. data/lib/simple_form/components/errors.rb +28 -2
  14. data/lib/simple_form/components/hints.rb +8 -3
  15. data/lib/simple_form/components/html5.rb +6 -3
  16. data/lib/simple_form/components/label_input.rb +20 -2
  17. data/lib/simple_form/components/labels.rb +14 -10
  18. data/lib/simple_form/components/maxlength.rb +2 -9
  19. data/lib/simple_form/components/min_max.rb +1 -1
  20. data/lib/simple_form/components/pattern.rb +3 -3
  21. data/lib/simple_form/components/placeholders.rb +2 -2
  22. data/lib/simple_form/components/readonly.rb +1 -1
  23. data/lib/simple_form/components.rb +1 -1
  24. data/lib/simple_form/error_notification.rb +2 -2
  25. data/lib/simple_form/form_builder.rb +262 -107
  26. data/lib/simple_form/helpers.rb +6 -6
  27. data/lib/simple_form/inputs/base.rb +37 -16
  28. data/lib/simple_form/inputs/block_input.rb +2 -2
  29. data/lib/simple_form/inputs/boolean_input.rb +33 -18
  30. data/lib/simple_form/inputs/collection_input.rb +34 -13
  31. data/lib/simple_form/inputs/collection_radio_buttons_input.rb +7 -12
  32. data/lib/simple_form/inputs/collection_select_input.rb +4 -2
  33. data/lib/simple_form/inputs/date_time_input.rb +23 -9
  34. data/lib/simple_form/inputs/file_input.rb +4 -2
  35. data/lib/simple_form/inputs/grouped_collection_select_input.rb +15 -3
  36. data/lib/simple_form/inputs/hidden_input.rb +4 -2
  37. data/lib/simple_form/inputs/numeric_input.rb +3 -8
  38. data/lib/simple_form/inputs/password_input.rb +4 -3
  39. data/lib/simple_form/inputs/priority_input.rb +4 -2
  40. data/lib/simple_form/inputs/range_input.rb +1 -1
  41. data/lib/simple_form/inputs/string_input.rb +4 -3
  42. data/lib/simple_form/inputs/text_input.rb +4 -2
  43. data/lib/simple_form/railtie.rb +14 -0
  44. data/lib/simple_form/tags.rb +68 -0
  45. data/lib/simple_form/version.rb +1 -1
  46. data/lib/simple_form/wrappers/builder.rb +11 -35
  47. data/lib/simple_form/wrappers/leaf.rb +28 -0
  48. data/lib/simple_form/wrappers/many.rb +7 -7
  49. data/lib/simple_form/wrappers/root.rb +2 -2
  50. data/lib/simple_form/wrappers/single.rb +5 -3
  51. data/lib/simple_form/wrappers.rb +2 -1
  52. data/lib/simple_form.rb +99 -52
  53. data/test/action_view_extensions/builder_test.rb +113 -127
  54. data/test/action_view_extensions/form_helper_test.rb +58 -30
  55. data/test/components/label_test.rb +83 -83
  56. data/test/form_builder/association_test.rb +96 -61
  57. data/test/form_builder/button_test.rb +14 -14
  58. data/test/form_builder/error_notification_test.rb +9 -9
  59. data/test/form_builder/error_test.rb +159 -34
  60. data/test/form_builder/general_test.rb +176 -121
  61. data/test/form_builder/hint_test.rb +43 -37
  62. data/test/form_builder/input_field_test.rb +99 -52
  63. data/test/form_builder/label_test.rb +67 -15
  64. data/test/form_builder/wrapper_test.rb +157 -41
  65. data/test/generators/simple_form_generator_test.rb +4 -4
  66. data/test/inputs/boolean_input_test.rb +92 -24
  67. data/test/inputs/collection_check_boxes_input_test.rb +150 -71
  68. data/test/inputs/collection_radio_buttons_input_test.rb +213 -113
  69. data/test/inputs/collection_select_input_test.rb +221 -85
  70. data/test/inputs/datetime_input_test.rb +125 -47
  71. data/test/inputs/disabled_test.rb +25 -25
  72. data/test/inputs/discovery_test.rb +60 -10
  73. data/test/inputs/file_input_test.rb +3 -3
  74. data/test/inputs/general_test.rb +48 -32
  75. data/test/inputs/grouped_collection_select_input_test.rb +76 -27
  76. data/test/inputs/hidden_input_test.rb +6 -5
  77. data/test/inputs/numeric_input_test.rb +46 -46
  78. data/test/inputs/priority_input_test.rb +21 -15
  79. data/test/inputs/readonly_test.rb +31 -31
  80. data/test/inputs/required_test.rb +30 -18
  81. data/test/inputs/string_input_test.rb +53 -52
  82. data/test/inputs/text_input_test.rb +15 -8
  83. data/test/simple_form_test.rb +8 -0
  84. data/test/support/discovery_inputs.rb +32 -2
  85. data/test/support/misc_helpers.rb +130 -29
  86. data/test/support/mock_controller.rb +6 -6
  87. data/test/support/models.rb +125 -71
  88. data/test/test_helper.rb +28 -35
  89. metadata +17 -29
  90. data/lib/simple_form/action_view_extensions/builder.rb.orig +0 -247
  91. data/lib/simple_form/core_ext/hash.rb +0 -16
  92. data/lib/simple_form/form_builder.rb.orig +0 -486
  93. data/lib/simple_form/version.rb.orig +0 -7
@@ -13,12 +13,12 @@ class MockController
13
13
  "http://example.com"
14
14
  end
15
15
 
16
- def url_helpers
17
- self
16
+ def url_options
17
+ {}
18
18
  end
19
19
 
20
- def hash_for_user_path(*args); end
21
- def hash_for_validating_user_path(*args); end
22
- def hash_for_other_validating_user_path(*args); end
23
- def hash_for_users_path(*args); end
20
+ def hash_for_user_path(*); end
21
+ def hash_for_validating_user_path(*); end
22
+ def hash_for_other_validating_user_path(*); end
23
+ def hash_for_users_path(*); end
24
24
  end
@@ -1,27 +1,58 @@
1
- Association = Struct.new(:klass, :name, :macro, :options)
1
+ Association = Struct.new(:klass, :name, :macro, :scope, :options)
2
2
 
3
- class Column < Struct.new(:name, :type, :limit)
3
+ Column = Struct.new(:name, :type, :limit) do
4
4
  # Returns +true+ if the column is either of type integer, float or decimal.
5
5
  def number?
6
6
  type == :integer || type == :float || type == :decimal
7
7
  end
8
8
  end
9
9
 
10
- class Company < Struct.new(:id, :name)
10
+ Relation = Struct.new(:records) do
11
+ delegate :each, to: :records
12
+
13
+ def where(conditions = nil)
14
+ self.class.new conditions ? records.first : records
15
+ end
16
+
17
+ def order(conditions = nil)
18
+ self.class.new conditions ? records.last : records
19
+ end
20
+
21
+ alias_method :to_a, :records
22
+ alias_method :to_ary, :records
23
+ end
24
+
25
+ Picture = Struct.new(:id, :name) do
11
26
  extend ActiveModel::Naming
12
27
  include ActiveModel::Conversion
13
28
 
14
- def self.all(options={})
15
- all = (1..3).map{|i| Company.new(i, "Company #{i}")}
16
- return [all.first] if options[:conditions].present?
17
- return [all.last] if options[:order].present?
18
- return all[0..1] if options[:include].present?
19
- return all[1..2] if options[:joins].present?
29
+ def self.where(conditions = nil)
30
+ if conditions.is_a?(Hash) && conditions[:name]
31
+ all.to_a.last
32
+ else
33
+ all
34
+ end
35
+ end
36
+
37
+ def self.all
38
+ Relation.new((1..3).map { |i| new(i, "#{name} #{i}") })
39
+ end
40
+ end
41
+
42
+ Company = Struct.new(:id, :name) do
43
+ extend ActiveModel::Naming
44
+ include ActiveModel::Conversion
45
+
46
+ class << self
47
+ delegate :order, :where, to: :_relation
48
+ end
49
+
50
+ def self._relation
20
51
  all
21
52
  end
22
53
 
23
- def self.merge_conditions(a, b)
24
- (a || {}).merge(b || {})
54
+ def self.all
55
+ Relation.new((1..3).map { |i| new(i, "#{name} #{i}") })
25
56
  end
26
57
 
27
58
  def persisted?
@@ -29,14 +60,9 @@ class Company < Struct.new(:id, :name)
29
60
  end
30
61
  end
31
62
 
32
- class Tag < Company
33
- def self.all(options={})
34
- (1..3).map{|i| Tag.new(i, "Tag #{i}")}
35
- end
36
- end
63
+ class Tag < Company; end
37
64
 
38
- class TagGroup < Struct.new(:id, :name, :tags)
39
- end
65
+ TagGroup = Struct.new(:id, :name, :tags)
40
66
 
41
67
  class User
42
68
  extend ActiveModel::Naming
@@ -46,9 +72,22 @@ class User
46
72
  :description, :created_at, :updated_at, :credit_limit, :password, :url,
47
73
  :delivery_time, :born_at, :special_company_id, :country, :tags, :tag_ids,
48
74
  :avatar, :home_picture, :email, :status, :residence_country, :phone_number,
49
- :post_count, :lock_version, :amount, :attempts, :action, :credit_card, :gender
75
+ :post_count, :lock_version, :amount, :attempts, :action, :credit_card, :gender,
76
+ :extra_special_company_id, :pictures, :picture_ids, :special_pictures,
77
+ :special_picture_ids, :uuid
78
+
79
+ def self.build(extra_attributes = {})
80
+ attributes = {
81
+ id: 1,
82
+ name: 'New in SimpleForm!',
83
+ description: 'Hello!',
84
+ created_at: Time.now
85
+ }.merge! extra_attributes
86
+
87
+ new attributes
88
+ end
50
89
 
51
- def initialize(options={})
90
+ def initialize(options = {})
52
91
  @new_record = false
53
92
  options.each do |key, value|
54
93
  send("#{key}=", value)
@@ -86,11 +125,22 @@ class User
86
125
  when :attempts then :integer
87
126
  when :action then :string
88
127
  when :credit_card then :string
128
+ when :uuid then :uuid
89
129
  end
90
130
  Column.new(attribute, column_type, limit)
91
131
  end
92
132
 
93
- def self.human_attribute_name(attribute)
133
+ def has_attribute?(attribute)
134
+ case attribute.to_sym
135
+ when :name, :status, :password, :description, :age,
136
+ :credit_limit, :active, :born_at, :delivery_time,
137
+ :created_at, :updated_at, :lock_version, :home_picture,
138
+ :amount, :attempts, :action, :credit_card, :uuid then true
139
+ else false
140
+ end
141
+ end
142
+
143
+ def self.human_attribute_name(attribute, options = {})
94
144
  case attribute
95
145
  when 'name'
96
146
  'Super User Name!'
@@ -99,33 +149,39 @@ class User
99
149
  when 'company'
100
150
  'Company Human Name!'
101
151
  else
102
- attribute.humanize
152
+ attribute.to_s.humanize
103
153
  end
104
154
  end
105
155
 
106
156
  def self.reflect_on_association(association)
107
157
  case association
108
158
  when :company
109
- Association.new(Company, association, :belongs_to, {})
159
+ Association.new(Company, association, :belongs_to, nil, {})
110
160
  when :tags
111
- Association.new(Tag, association, :has_many, {})
161
+ Association.new(Tag, association, :has_many, nil, {})
112
162
  when :first_company
113
- Association.new(Company, association, :has_one, {})
163
+ Association.new(Company, association, :has_one, nil, {})
114
164
  when :special_company
115
- Association.new(Company, association, :belongs_to, { :conditions => { :id => 1 } })
165
+ Association.new(Company, association, :belongs_to, nil, { conditions: { id: 1 } })
166
+ when :extra_special_company
167
+ Association.new(Company, association, :belongs_to, nil, { conditions: proc { { id: self.id } } })
168
+ when :pictures
169
+ Association.new(Picture, association, :has_many, nil, {})
170
+ when :special_pictures
171
+ Association.new(Picture, association, :has_many, proc { where(name: self.name) }, {})
116
172
  end
117
173
  end
118
174
 
119
175
  def errors
120
176
  @errors ||= begin
121
- hash = Hash.new { |h,k| h[k] = [] }
122
- hash.merge!(
123
- :name => ["can't be blank"],
124
- :description => ["must be longer than 15 characters"],
125
- :age => ["is not a number", "must be greater than 18"],
126
- :company => ["company must be present"],
127
- :company_id => ["must be valid"]
128
- )
177
+ errors = ActiveModel::Errors.new(self)
178
+ errors.add(:name, "cannot be blank")
179
+ errors.add(:description, 'must be longer than 15 characters')
180
+ errors.add(:age, 'is not a number')
181
+ errors.add(:age, 'must be greater than 18')
182
+ errors.add(:company, 'company must be present')
183
+ errors.add(:company_id, 'must be valid')
184
+ errors
129
185
  end
130
186
  end
131
187
 
@@ -136,31 +192,31 @@ end
136
192
 
137
193
  class ValidatingUser < User
138
194
  include ActiveModel::Validations
139
- validates :name, :presence => true
140
- validates :company, :presence => true
141
- validates :age, :presence => true, :if => Proc.new { |user| user.name }
142
- validates :amount, :presence => true, :unless => Proc.new { |user| user.age }
195
+ validates :name, presence: true
196
+ validates :company, presence: true
197
+ validates :age, presence: true, if: Proc.new { |user| user.name }
198
+ validates :amount, presence: true, unless: Proc.new { |user| user.age }
143
199
 
144
- validates :action, :presence => true, :on => :create
145
- validates :credit_limit, :presence => true, :on => :save
146
- validates :phone_number, :presence => true, :on => :update
200
+ validates :action, presence: true, on: :create
201
+ validates :credit_limit, presence: true, on: :save
202
+ validates :phone_number, presence: true, on: :update
147
203
 
148
204
  validates_numericality_of :age,
149
- :greater_than_or_equal_to => 18,
150
- :less_than_or_equal_to => 99,
151
- :only_integer => true
205
+ greater_than_or_equal_to: 18,
206
+ less_than_or_equal_to: 99,
207
+ only_integer: true
152
208
  validates_numericality_of :amount,
153
- :greater_than => :min_amount,
154
- :less_than => :max_amount,
155
- :only_integer => true
209
+ greater_than: :min_amount,
210
+ less_than: :max_amount,
211
+ only_integer: true
156
212
  validates_numericality_of :attempts,
157
- :greater_than_or_equal_to => :min_attempts,
158
- :less_than_or_equal_to => :max_attempts,
159
- :only_integer => true
160
- validates_length_of :name, :maximum => 25
161
- validates_length_of :description, :maximum => 50
162
- validates_length_of :action, :maximum => 10, :tokenizer => lambda { |str| str.scan(/\w+/) }
163
- validates_length_of :home_picture, :is => 12
213
+ greater_than_or_equal_to: :min_attempts,
214
+ less_than_or_equal_to: :max_attempts,
215
+ only_integer: true
216
+ validates_length_of :name, maximum: 25
217
+ validates_length_of :description, maximum: 50
218
+ validates_length_of :action, maximum: 10, tokenizer: lambda { |str| str.scan(/\w+/) }
219
+ validates_length_of :home_picture, is: 12
164
220
 
165
221
  def min_amount
166
222
  10
@@ -182,26 +238,21 @@ end
182
238
  class OtherValidatingUser < User
183
239
  include ActiveModel::Validations
184
240
  validates_numericality_of :age,
185
- :greater_than => 17,
186
- :less_than => 100,
187
- :only_integer => true
241
+ greater_than: 17,
242
+ less_than: 100,
243
+ only_integer: true
188
244
  validates_numericality_of :amount,
189
- :greater_than => Proc.new { |user| user.age },
190
- :less_than => Proc.new { |user| user.age + 100},
191
- :only_integer => true
245
+ greater_than: Proc.new { |user| user.age },
246
+ less_than: Proc.new { |user| user.age + 100 },
247
+ only_integer: true
192
248
  validates_numericality_of :attempts,
193
- :greater_than_or_equal_to => Proc.new { |user| user.age },
194
- :less_than_or_equal_to => Proc.new { |user| user.age + 100},
195
- :only_integer => true
196
-
197
- validates_format_of :country, :with => /\w+/
249
+ greater_than_or_equal_to: Proc.new { |user| user.age },
250
+ less_than_or_equal_to: Proc.new { |user| user.age + 100 },
251
+ only_integer: true
198
252
 
199
- # TODO: Remove this check when we drop Rails 3.0 support
200
- if ActiveModel::VERSION::MAJOR == 3 && ActiveModel::VERSION::MINOR >= 1
201
- validates_format_of :name, :with => Proc.new { /\w+/ }
202
- else
203
- validates_format_of :name, :with => /\w+/
204
- end
253
+ validates_format_of :country, with: /\w+/
254
+ validates_format_of :name, with: Proc.new { /\w+/ }
255
+ validates_format_of :description, without: /\d+/
205
256
  end
206
257
 
207
258
  class HashBackedAuthor < Hash
@@ -214,3 +265,6 @@ class HashBackedAuthor < Hash
214
265
  'hash backed author'
215
266
  end
216
267
  end
268
+
269
+ class UserNumber1And2 < User
270
+ end
data/test/test_helper.rb CHANGED
@@ -1,16 +1,14 @@
1
- require 'rubygems'
2
1
  require 'bundler/setup'
3
2
 
4
- require 'test/unit'
5
- require 'mocha/setup'
3
+ require 'minitest/autorun'
6
4
 
7
5
  require 'active_model'
8
6
  require 'action_controller'
9
7
  require 'action_view'
8
+ ActionView::RoutingUrlFor.send(:include, ActionDispatch::Routing::UrlFor)
9
+
10
10
  require 'action_view/template'
11
11
 
12
- # Rails 3.0.4 is missing this "deprecation" require.
13
- require 'active_support/core_ext/module/deprecation'
14
12
  require 'action_view/test_case'
15
13
 
16
14
  module Rails
@@ -32,47 +30,42 @@ I18n.default_locale = :en
32
30
 
33
31
  require 'country_select'
34
32
 
35
- ActionDispatch::Assertions::NO_STRIP << "label"
33
+ if defined?(HTMLSelector::NO_STRIP)
34
+ HTMLSelector::NO_STRIP << "label"
35
+ else
36
+ ActionDispatch::Assertions::NO_STRIP << "label"
37
+ end
38
+
39
+ if ActiveSupport::TestCase.respond_to?(:test_order=)
40
+ ActiveSupport::TestCase.test_order = :random
41
+ end
36
42
 
37
43
  class ActionView::TestCase
38
44
  include MiscHelpers
39
45
  include SimpleForm::ActionViewExtensions::FormHelper
40
46
 
41
47
  setup :set_controller
42
- setup :setup_new_user
48
+ setup :setup_users
43
49
 
44
50
  def set_controller
45
51
  @controller = MockController.new
46
52
  end
47
53
 
48
- def setup_new_user(options={})
49
- @user = User.new({
50
- :id => 1,
51
- :name => 'New in SimpleForm!',
52
- :description => 'Hello!',
53
- :created_at => Time.now
54
- }.merge(options))
55
-
56
- @validating_user = ValidatingUser.new({
57
- :id => 1,
58
- :name => 'New in SimpleForm!',
59
- :description => 'Hello!',
60
- :home_picture => 'Home picture',
61
- :created_at => Time.now,
62
- :age => 19,
63
- :amount => 15,
64
- :attempts => 1,
65
- :company => [1]
66
- }.merge(options))
67
-
68
- @other_validating_user = OtherValidatingUser.new({
69
- :id => 1,
70
- :name => 'New in SimpleForm!',
71
- :description => 'Hello!',
72
- :created_at => Time.now,
73
- :age => 19,
74
- :company => 1
75
- }.merge(options))
54
+ def setup_users(extra_attributes = {})
55
+ @user = User.build(extra_attributes)
56
+
57
+ @validating_user = ValidatingUser.build({
58
+ home_picture: 'Home picture',
59
+ age: 19,
60
+ amount: 15,
61
+ attempts: 1,
62
+ company: [1]
63
+ }.merge!(extra_attributes))
64
+
65
+ @other_validating_user = OtherValidatingUser.build({
66
+ age: 19,
67
+ company: 1
68
+ }.merge!(extra_attributes))
76
69
  end
77
70
 
78
71
  def protect_against_forgery?
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
5
- prerelease:
4
+ version: 3.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - José Valim
@@ -11,42 +10,38 @@ authors:
11
10
  autorequire:
12
11
  bindir: bin
13
12
  cert_chain: []
14
- date: 2013-02-26 00:00:00.000000000 Z
13
+ date: 2015-09-22 00:00:00.000000000 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: activemodel
18
17
  requirement: !ruby/object:Gem::Requirement
19
- none: false
20
18
  requirements:
21
19
  - - ~>
22
20
  - !ruby/object:Gem::Version
23
- version: '3.0'
21
+ version: '4.0'
24
22
  type: :runtime
25
23
  prerelease: false
26
24
  version_requirements: !ruby/object:Gem::Requirement
27
- none: false
28
25
  requirements:
29
26
  - - ~>
30
27
  - !ruby/object:Gem::Version
31
- version: '3.0'
28
+ version: '4.0'
32
29
  - !ruby/object:Gem::Dependency
33
30
  name: actionpack
34
31
  requirement: !ruby/object:Gem::Requirement
35
- none: false
36
32
  requirements:
37
33
  - - ~>
38
34
  - !ruby/object:Gem::Version
39
- version: '3.0'
35
+ version: '4.0'
40
36
  type: :runtime
41
37
  prerelease: false
42
38
  version_requirements: !ruby/object:Gem::Requirement
43
- none: false
44
39
  requirements:
45
40
  - - ~>
46
41
  - !ruby/object:Gem::Version
47
- version: '3.0'
42
+ version: '4.0'
48
43
  description: Forms made easy!
49
- email: contact@plataformatec.com.br
44
+ email: opensource@plataformatec.com.br
50
45
  executables: []
51
46
  extensions: []
52
47
  extra_rdoc_files: []
@@ -65,7 +60,6 @@ files:
65
60
  - lib/generators/simple_form/templates/README
66
61
  - lib/generators/simple_form/USAGE
67
62
  - lib/simple_form/action_view_extensions/builder.rb
68
- - lib/simple_form/action_view_extensions/builder.rb.orig
69
63
  - lib/simple_form/action_view_extensions/form_helper.rb
70
64
  - lib/simple_form/components/errors.rb
71
65
  - lib/simple_form/components/hints.rb
@@ -78,10 +72,8 @@ files:
78
72
  - lib/simple_form/components/placeholders.rb
79
73
  - lib/simple_form/components/readonly.rb
80
74
  - lib/simple_form/components.rb
81
- - lib/simple_form/core_ext/hash.rb
82
75
  - lib/simple_form/error_notification.rb
83
76
  - lib/simple_form/form_builder.rb
84
- - lib/simple_form/form_builder.rb.orig
85
77
  - lib/simple_form/helpers/autofocus.rb
86
78
  - lib/simple_form/helpers/disabled.rb
87
79
  - lib/simple_form/helpers/readonly.rb
@@ -108,9 +100,11 @@ files:
108
100
  - lib/simple_form/inputs/text_input.rb
109
101
  - lib/simple_form/inputs.rb
110
102
  - lib/simple_form/map_type.rb
103
+ - lib/simple_form/railtie.rb
104
+ - lib/simple_form/tags.rb
111
105
  - lib/simple_form/version.rb
112
- - lib/simple_form/version.rb.orig
113
106
  - lib/simple_form/wrappers/builder.rb
107
+ - lib/simple_form/wrappers/leaf.rb
114
108
  - lib/simple_form/wrappers/many.rb
115
109
  - lib/simple_form/wrappers/root.rb
116
110
  - lib/simple_form/wrappers/single.rb
@@ -153,34 +147,28 @@ files:
153
147
  - test/support/models.rb
154
148
  - test/test_helper.rb
155
149
  homepage: https://github.com/plataformatec/simple_form
156
- licenses: []
150
+ licenses:
151
+ - MIT
152
+ metadata: {}
157
153
  post_install_message:
158
154
  rdoc_options: []
159
155
  require_paths:
160
156
  - lib
161
157
  required_ruby_version: !ruby/object:Gem::Requirement
162
- none: false
163
158
  requirements:
164
- - - ! '>='
159
+ - - '>='
165
160
  - !ruby/object:Gem::Version
166
161
  version: '0'
167
- segments:
168
- - 0
169
- hash: -389428450847468473
170
162
  required_rubygems_version: !ruby/object:Gem::Requirement
171
- none: false
172
163
  requirements:
173
- - - ! '>='
164
+ - - '>='
174
165
  - !ruby/object:Gem::Version
175
166
  version: '0'
176
- segments:
177
- - 0
178
- hash: -389428450847468473
179
167
  requirements: []
180
168
  rubyforge_project: simple_form
181
- rubygems_version: 1.8.23
169
+ rubygems_version: 2.0.3
182
170
  signing_key:
183
- specification_version: 3
171
+ specification_version: 4
184
172
  summary: Forms made easy!
185
173
  test_files:
186
174
  - test/action_view_extensions/builder_test.rb