simple_form 2.1.0 → 3.2.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.

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