formtastic 2.3.0.rc3 → 2.3.0.rc4
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 +15 -0
- data/.travis.yml +18 -23
- data/CHANGELOG +25 -0
- data/README.textile +3 -3
- data/lib/formtastic.rb +2 -2
- data/lib/formtastic/helpers/input_helper.rb +3 -1
- data/lib/formtastic/inputs/base/validations.rb +2 -0
- data/lib/formtastic/inputs/base/wrapping.rb +10 -10
- data/lib/formtastic/inputs/boolean_input.rb +1 -3
- data/lib/formtastic/inputs/check_boxes_input.rb +12 -6
- data/lib/formtastic/inputs/country_input.rb +22 -5
- data/lib/formtastic/inputs/select_input.rb +10 -9
- data/lib/formtastic/inputs/time_select_input.rb +5 -1
- data/lib/formtastic/util.rb +13 -5
- data/lib/formtastic/version.rb +1 -1
- data/spec/helpers/input_helper_spec.rb +9 -0
- data/spec/inputs/boolean_input_spec.rb +10 -1
- data/spec/inputs/check_boxes_input_spec.rb +1 -0
- data/spec/inputs/select_input_spec.rb +1 -1
- data/spec/inputs/string_input_spec.rb +40 -0
- data/spec/inputs/time_select_input_spec.rb +0 -27
- data/spec/util_spec.rb +59 -0
- metadata +7 -38
- data/lib/formtastic/inputs/date_input.rb +0 -10
- data/lib/formtastic/inputs/datetime_input.rb +0 -10
- data/lib/formtastic/inputs/time_input.rb +0 -10
- data/spec/inputs/deprecated_time_date_datetime_inputs_spec.rb +0 -48
checksums.yaml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
!binary "U0hBMQ==":
|
|
3
|
+
metadata.gz: !binary |-
|
|
4
|
+
ZDM3NTE4ZDViMzMxYTExYmY4MWIxNTYxODMxNzYzYjdmMDM3NDY4YQ==
|
|
5
|
+
data.tar.gz: !binary |-
|
|
6
|
+
OTAwNmUwZGUyY2Q0NjQzMTM3NWRkMjBjMjY2YzU4YzEyZTQ1NWRmYw==
|
|
7
|
+
SHA512:
|
|
8
|
+
metadata.gz: !binary |-
|
|
9
|
+
OGJmYmEyZDU3NDZlOTI4ZmI1YzhlZTc0M2RiMjEwMTY0NmM1NmRhMWMzOGY2
|
|
10
|
+
ZjdmZGY1NzBlMzhmNjE2NTliOWFjMTRhMWZmOGM0YTQwNTdkMzU5MDI4NmMx
|
|
11
|
+
ODgxOWFhMTQ4ODhkODEyMTVmNzRhNmZkNzY2M2YxNTNmZTBlNGQ=
|
|
12
|
+
data.tar.gz: !binary |-
|
|
13
|
+
MDQxOGFiNGQxMTNiNWMzZmRjNDM3NzYzMGY5ZGFiOGIzZmY3Mjk4ODMwNjZi
|
|
14
|
+
MjJhMTZkNjRiNGRmYjY0ZjJhMzczM2UwZTU3MGZlNTNlNmQzNmM4MGNkZmU0
|
|
15
|
+
MTY2ZDRkOGY5MTA1ZjMzZDY5MzczMjg4YzJlNWY2NGY2NzQ1ODA=
|
data/.travis.yml
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
language: ruby
|
|
1
2
|
before_install:
|
|
2
3
|
- gem update --system
|
|
3
4
|
- gem update bundler
|
|
@@ -7,40 +8,37 @@ rvm:
|
|
|
7
8
|
- 1.9.2
|
|
8
9
|
- 1.9.3
|
|
9
10
|
- 2.0.0
|
|
10
|
-
- 2.1
|
|
11
|
+
- 2.1
|
|
11
12
|
gemfile:
|
|
12
13
|
- gemfiles/rails_3.0.gemfile
|
|
13
14
|
- gemfiles/rails_3.1.gemfile
|
|
14
15
|
- gemfiles/rails_3.2.gemfile
|
|
16
|
+
- gemfiles/rails_4.gemfile
|
|
17
|
+
- gemfiles/rails_4.0.4.gemfile
|
|
18
|
+
- gemfiles/rails_edge.gemfile
|
|
15
19
|
env:
|
|
16
20
|
- DEFER_GC=false RAILS_EDGE=true
|
|
17
|
-
script: "rake spec"
|
|
21
|
+
script: "bundle exec rake spec"
|
|
18
22
|
matrix:
|
|
19
|
-
|
|
20
|
-
- rvm: 1.
|
|
23
|
+
exclude:
|
|
24
|
+
- rvm: 1.8.7
|
|
21
25
|
gemfile: gemfiles/rails_4.gemfile
|
|
22
|
-
|
|
23
|
-
- rvm: 2.0.0
|
|
26
|
+
- rvm: ree
|
|
24
27
|
gemfile: gemfiles/rails_4.gemfile
|
|
25
|
-
|
|
26
|
-
- rvm: 2.1.0
|
|
28
|
+
- rvm: 1.9.2
|
|
27
29
|
gemfile: gemfiles/rails_4.gemfile
|
|
28
|
-
|
|
29
|
-
- rvm: 1.9.3
|
|
30
|
+
- rvm: 1.8.7
|
|
30
31
|
gemfile: gemfiles/rails_4.0.4.gemfile
|
|
31
|
-
|
|
32
|
-
- rvm: 2.0.0
|
|
32
|
+
- rvm: ree
|
|
33
33
|
gemfile: gemfiles/rails_4.0.4.gemfile
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
- rvm: 1.9.2
|
|
35
|
+
gemfile: gemfiles/rails_4.0.4.gemfile
|
|
36
|
+
- rvm: 1.8.7
|
|
36
37
|
gemfile: gemfiles/rails_edge.gemfile
|
|
37
|
-
|
|
38
|
-
- rvm: 2.0.0
|
|
38
|
+
- rvm: ree
|
|
39
39
|
gemfile: gemfiles/rails_edge.gemfile
|
|
40
|
-
|
|
41
|
-
- rvm: 2.1.0
|
|
40
|
+
- rvm: 1.9.2
|
|
42
41
|
gemfile: gemfiles/rails_edge.gemfile
|
|
43
|
-
env: DEFER_GC=false RAILS_EDGE=true
|
|
44
42
|
allow_failures:
|
|
45
43
|
- rvm: 1.9.3
|
|
46
44
|
gemfile: gemfiles/rails_edge.gemfile
|
|
@@ -48,9 +46,6 @@ matrix:
|
|
|
48
46
|
- rvm: 2.0.0
|
|
49
47
|
gemfile: gemfiles/rails_edge.gemfile
|
|
50
48
|
env: DEFER_GC=false RAILS_EDGE=true
|
|
51
|
-
- rvm: 2.1
|
|
52
|
-
gemfile: gemfiles/rails_4.gemfile
|
|
53
|
-
env: DEFER_GC=false RAILS_EDGE=true
|
|
54
|
-
- rvm: 2.1.0
|
|
49
|
+
- rvm: 2.1
|
|
55
50
|
gemfile: gemfiles/rails_edge.gemfile
|
|
56
51
|
env: DEFER_GC=false RAILS_EDGE=true
|
data/CHANGELOG
CHANGED
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
2.3.0.rc4
|
|
2
|
+
|
|
3
|
+
* Removed deprecated date, time and datetime inputs
|
|
4
|
+
* Fixed comparison checking of boolean checked values
|
|
5
|
+
* Fixed errors raised when handling some validations
|
|
6
|
+
* Fixed that we weren't rendering a label on checkbox inputs when hidden_fields was set to true
|
|
7
|
+
* Fixed eager loading in test environments
|
|
8
|
+
* Fixed documentation to point to the new official country_select gem
|
|
9
|
+
* Fixed that we would previously render a default wrapper id if wrapper_html[:id] was deliberately set to nil
|
|
10
|
+
* Fixed bg with duplicate hidden fields in Rails >= 3.2.13
|
|
11
|
+
* Note: Re-built 2.3-stable branch from 2.3.0.rc3 onwards due to accidental merges of master inside PRs
|
|
12
|
+
|
|
13
|
+
2.3.0.rc3
|
|
14
|
+
|
|
15
|
+
* Fixed invalid HTML attributes in BooleanInput with a whitelist
|
|
16
|
+
* Fixed compatibility with Rails 4.0.x, 4.1
|
|
17
|
+
* Fixed compatibility with newer I18n
|
|
18
|
+
* Fixed compatibility with Paperclip
|
|
19
|
+
* Fixed submit button in slim template
|
|
20
|
+
* Fixed class with Rails' field_error_proc
|
|
21
|
+
* Deprecated :error_class option
|
|
22
|
+
* Deprecated support for Rails < 3.2.13
|
|
23
|
+
* Added ability to change the model-derived class we add to the form (eg 'post')
|
|
24
|
+
* Added support for symbols & sets in collections
|
|
25
|
+
|
|
1
26
|
2.3.0.rc2
|
|
2
27
|
|
|
3
28
|
* deprecate support for Rails < 3.2
|
data/README.textile
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
h1. Formtastic
|
|
2
2
|
|
|
3
3
|
!https://travis-ci.org/justinfrench/formtastic.png?branch=master!:https://travis-ci.org/justinfrench/formtastic
|
|
4
|
-
!http://inch-
|
|
4
|
+
!http://inch-ci.org/github/justinfrench/formtastic.png!:http://inch-ci.org/github/justinfrench/formtastic
|
|
5
5
|
!https://codeclimate.com/github/justinfrench/formtastic.png!:https://codeclimate.com/github/justinfrench/formtastic
|
|
6
6
|
!https://badge.fury.io/rb/formtastic.png!:http://badge.fury.io/rb/formtastic
|
|
7
7
|
!https://gemnasium.com/justinfrench/formtastic.png!:https://gemnasium.com/justinfrench/formtastic
|
|
@@ -20,7 +20,7 @@ h2. Documentation & Support
|
|
|
20
20
|
|
|
21
21
|
h2. Compatibility
|
|
22
22
|
|
|
23
|
-
* Formtastic
|
|
23
|
+
* Formtastic 3 (master on Github) will require Rails 3.2 minimum
|
|
24
24
|
* Formtastic 2.3 is Rails 3 and Rails 4 compatible (Rails < 3.2 is deprecated)
|
|
25
25
|
* Formtastic 2.1 & 2.2 is Rails 3 and Rails 4 compatible
|
|
26
26
|
* Formtastic, much like Rails, is very ActiveRecord-centric. Many are successfully using other ActiveModel-like ORMs and objects (DataMapper, MongoMapper, Mongoid, Authlogic, Devise...) but we're not guaranteeing full compatibility at this stage. Patches are welcome!
|
|
@@ -602,7 +602,7 @@ h2. Dependencies
|
|
|
602
602
|
|
|
603
603
|
There are none other than Rails itself, but...
|
|
604
604
|
|
|
605
|
-
* If you want to use the @:country@ input, you'll need to install the "country-select plugin":https://github.com/stefanpenner/country_select (or any other country_select plugin with the same API).
|
|
605
|
+
* If you want to use the @:country@ input, you'll need to install the "country-select plugin":https://github.com/stefanpenner/country_select (or any other country_select plugin with the same API). Both 1.x and 2.x are supported, but they behave differently when storing data, so please see their "upgrade notes":https://github.com/stefanpenner/country_select/blob/master/UPGRADING.md if switching from 1.x.
|
|
606
606
|
* There are a bunch of development dependencies if you plan to contribute to Formtastic
|
|
607
607
|
|
|
608
608
|
|
data/lib/formtastic.rb
CHANGED
|
@@ -15,9 +15,9 @@ module Formtastic
|
|
|
15
15
|
autoload :Util
|
|
16
16
|
|
|
17
17
|
# Deprecate support for Rails < 3.2
|
|
18
|
-
if Util.deprecated_version_of_rails?
|
|
18
|
+
if defined?(::Rails) && Util.deprecated_version_of_rails?
|
|
19
19
|
::ActiveSupport::Deprecation.warn(
|
|
20
|
-
"Support for Rails
|
|
20
|
+
"Support for Rails < 3.2.13 will be dropped from Formtastic 3.0",
|
|
21
21
|
caller)
|
|
22
22
|
end
|
|
23
23
|
|
|
@@ -321,7 +321,9 @@ module Formtastic
|
|
|
321
321
|
def input_class(as)
|
|
322
322
|
@input_classes_cache ||= {}
|
|
323
323
|
@input_classes_cache[as] ||= begin
|
|
324
|
-
Rails.application.config
|
|
324
|
+
config = Rails.application.config
|
|
325
|
+
use_const_defined = config.respond_to?(:eager_load) ? config.eager_load : config.cache_classes
|
|
326
|
+
use_const_defined ? input_class_with_const_defined(as) : input_class_by_trying(as)
|
|
325
327
|
end
|
|
326
328
|
end
|
|
327
329
|
|
|
@@ -37,6 +37,8 @@ module Formtastic
|
|
|
37
37
|
|
|
38
38
|
result = if conditional.respond_to?(:call) && conditional.arity > 0
|
|
39
39
|
conditional.call(object)
|
|
40
|
+
elsif conditional.respond_to?(:call) && conditional.arity == 0
|
|
41
|
+
object.instance_exec(&conditional)
|
|
40
42
|
elsif conditional.is_a?(::Symbol) && object.respond_to?(conditional)
|
|
41
43
|
object.send(conditional)
|
|
42
44
|
else
|
|
@@ -3,33 +3,33 @@ module Formtastic
|
|
|
3
3
|
module Base
|
|
4
4
|
# @todo relies on `dom_id`, `required?`, `optional`, `errors?`, `association_primary_key` & `sanitized_method_name` methods from another module
|
|
5
5
|
module Wrapping
|
|
6
|
-
|
|
6
|
+
|
|
7
7
|
# Override this method if you want to change the display order (for example, rendering the
|
|
8
8
|
# errors before the body of the input).
|
|
9
9
|
def input_wrapping(&block)
|
|
10
|
-
template.content_tag(:li,
|
|
11
|
-
[template.capture(&block), error_html, hint_html].join("\n").html_safe,
|
|
10
|
+
template.content_tag(:li,
|
|
11
|
+
[template.capture(&block), error_html, hint_html].join("\n").html_safe,
|
|
12
12
|
wrapper_html_options
|
|
13
13
|
)
|
|
14
14
|
end
|
|
15
|
-
|
|
15
|
+
|
|
16
16
|
def wrapper_html_options
|
|
17
17
|
opts = wrapper_html_options_raw
|
|
18
18
|
opts[:class] = wrapper_classes
|
|
19
|
-
opts[:id]
|
|
19
|
+
opts[:id] = wrapper_dom_id unless opts.has_key? :id
|
|
20
20
|
opts
|
|
21
21
|
end
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
def wrapper_html_options_raw
|
|
24
24
|
(options[:wrapper_html] || {}).dup
|
|
25
25
|
end
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
def wrapper_classes_raw
|
|
28
28
|
classes = wrapper_html_options_raw[:class] || []
|
|
29
29
|
return classes.dup if classes.is_a?(Array)
|
|
30
30
|
return [classes]
|
|
31
31
|
end
|
|
32
|
-
|
|
32
|
+
|
|
33
33
|
def wrapper_classes
|
|
34
34
|
classes = wrapper_classes_raw
|
|
35
35
|
classes << as
|
|
@@ -41,11 +41,11 @@ module Formtastic
|
|
|
41
41
|
|
|
42
42
|
classes.join(' ')
|
|
43
43
|
end
|
|
44
|
-
|
|
44
|
+
|
|
45
45
|
def wrapper_dom_id
|
|
46
46
|
@wrapper_dom_id ||= "#{dom_id.to_s.gsub((association_primary_key || method).to_s, sanitized_method_name.to_s)}_input"
|
|
47
47
|
end
|
|
48
|
-
|
|
48
|
+
|
|
49
49
|
end
|
|
50
50
|
end
|
|
51
51
|
end
|
|
@@ -103,18 +103,16 @@ module Formtastic
|
|
|
103
103
|
end
|
|
104
104
|
|
|
105
105
|
def choice_html(choice)
|
|
106
|
-
template.content_tag(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
check_box_without_hidden_input(choice) <<
|
|
110
|
-
choice_label(choice),
|
|
106
|
+
template.content_tag(
|
|
107
|
+
:label,
|
|
108
|
+
checkbox_input(choice) + choice_label(choice),
|
|
111
109
|
label_html_options.merge(:for => choice_input_dom_id(choice), :class => nil)
|
|
112
110
|
)
|
|
113
111
|
end
|
|
114
112
|
|
|
115
113
|
def hidden_field_for_all
|
|
116
114
|
if hidden_fields?
|
|
117
|
-
|
|
115
|
+
''
|
|
118
116
|
else
|
|
119
117
|
options = {}
|
|
120
118
|
options[:class] = [method.to_s.singularize, 'default'].join('_') if value_as_class?
|
|
@@ -183,6 +181,14 @@ module Formtastic
|
|
|
183
181
|
|
|
184
182
|
protected
|
|
185
183
|
|
|
184
|
+
def checkbox_input(choice)
|
|
185
|
+
if hidden_fields?
|
|
186
|
+
check_box_with_hidden_input(choice)
|
|
187
|
+
else
|
|
188
|
+
check_box_without_hidden_input(choice)
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
186
192
|
def make_selected_values
|
|
187
193
|
if object.respond_to?(method)
|
|
188
194
|
selected_items = object.send(method)
|
|
@@ -4,13 +4,15 @@ module Formtastic
|
|
|
4
4
|
# Rails doesn't come with a `country_select` helper by default any more, so you'll need to do
|
|
5
5
|
# one of the following:
|
|
6
6
|
#
|
|
7
|
-
# * install the [
|
|
8
|
-
# * install the no longer maintained [official Rails plugin](http://github.com/rails/iso-3166-country-select)
|
|
7
|
+
# * install the [country_select](https://github.com/stefanpenner/country_select) gem
|
|
9
8
|
# * install any other country_select plugin that behaves in a similar way
|
|
10
9
|
# * roll your own `country_select` helper with the same args and options as the Rails one
|
|
11
10
|
#
|
|
11
|
+
# Formtastic supports both 1.x and 2.x of stefanpenner/country_select, but if you're upgrading
|
|
12
|
+
# from 1.x, they behave quite differently, so please see their [upgrade instructions](https://github.com/stefanpenner/country_select/blob/master/UPGRADING.md).
|
|
13
|
+
#
|
|
12
14
|
# By default, Formtastic includes a handful of English-speaking countries as "priority
|
|
13
|
-
#
|
|
15
|
+
# countries", which can be set in the `priority_countries` configuration array in the
|
|
14
16
|
# formtastic.rb initializer to suit your market and user base (see README for more info on
|
|
15
17
|
# configuration). Additionally, it is possible to set the :priority_countries on a per-input
|
|
16
18
|
# basis through the `:priority_countries` option. These priority countries will be passed down
|
|
@@ -31,7 +33,7 @@ module Formtastic
|
|
|
31
33
|
# # ...
|
|
32
34
|
# </li>
|
|
33
35
|
#
|
|
34
|
-
# @example `:priority_countries` set on a specific input
|
|
36
|
+
# @example `:priority_countries` set on a specific input (country_select 1.x)
|
|
35
37
|
#
|
|
36
38
|
# <%= semantic_form_for @user do |f| %>
|
|
37
39
|
# <%= f.inputs do %>
|
|
@@ -46,12 +48,27 @@ module Formtastic
|
|
|
46
48
|
# # ...
|
|
47
49
|
# </li>
|
|
48
50
|
#
|
|
51
|
+
# @example `:priority_countries` set on a specific input (country_select 2.x)
|
|
52
|
+
#
|
|
53
|
+
# <%= semantic_form_for @user do |f| %>
|
|
54
|
+
# <%= f.inputs do %>
|
|
55
|
+
# <%= f.input :nationality, :as => :country, :priority_countries => ["AU", "NZ"] %>
|
|
56
|
+
# <% end %>
|
|
57
|
+
# <% end %>
|
|
58
|
+
#
|
|
59
|
+
# <li class='country'>
|
|
60
|
+
# <label for="user_nationality">Country</label>
|
|
61
|
+
# <select id="user_nationality" name="user[nationality]">
|
|
62
|
+
# <option value="...">...</option>
|
|
63
|
+
# # ...
|
|
64
|
+
# </li>
|
|
65
|
+
#
|
|
49
66
|
# @see Formtastic::Helpers::InputsHelper#input InputsHelper#input for full documentation of all possible options.
|
|
50
67
|
class CountryInput
|
|
51
68
|
include Base
|
|
52
69
|
|
|
53
70
|
def to_html
|
|
54
|
-
raise "To use the :country input, please install a country_select plugin, like this one: https://github.com/
|
|
71
|
+
raise "To use the :country input, please install a country_select plugin, like this one: https://github.com/stefanpenner/country_select" unless builder.respond_to?(:country_select)
|
|
55
72
|
input_wrapping do
|
|
56
73
|
label_html <<
|
|
57
74
|
builder.country_select(method, priority_countries, input_options, input_html_options)
|
|
@@ -144,12 +144,21 @@ module Formtastic
|
|
|
144
144
|
|
|
145
145
|
def to_html
|
|
146
146
|
input_wrapping do
|
|
147
|
-
|
|
147
|
+
deprecated_hidden_input <<
|
|
148
148
|
label_html <<
|
|
149
149
|
(options[:group_by] ? grouped_select_html : select_html)
|
|
150
150
|
end
|
|
151
151
|
end
|
|
152
152
|
|
|
153
|
+
# TODO: remove from Formtastic 3.0
|
|
154
|
+
def deprecated_hidden_input
|
|
155
|
+
if multiple? && Util.rails3? && Util.deprecated_version_of_rails?
|
|
156
|
+
template.hidden_field_tag(input_html_options_name_multiple, '', :id => nil)
|
|
157
|
+
else
|
|
158
|
+
"".html_safe
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
|
|
153
162
|
def select_html
|
|
154
163
|
builder.select(input_name, collection, input_options, input_html_options)
|
|
155
164
|
end
|
|
@@ -171,14 +180,6 @@ module Formtastic
|
|
|
171
180
|
options.key?(:include_blank) ? options[:include_blank] : (single? && builder.include_blank_for_select_by_default)
|
|
172
181
|
end
|
|
173
182
|
|
|
174
|
-
def hidden_input
|
|
175
|
-
if multiple?
|
|
176
|
-
template.hidden_field_tag(input_html_options_name_multiple, '', :id => nil)
|
|
177
|
-
else
|
|
178
|
-
"".html_safe
|
|
179
|
-
end
|
|
180
|
-
end
|
|
181
|
-
|
|
182
183
|
def prompt?
|
|
183
184
|
!!options[:prompt]
|
|
184
185
|
end
|
|
@@ -15,8 +15,12 @@ module Formtastic
|
|
|
15
15
|
time_fragments
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
+
def value_or_default_value
|
|
19
|
+
value ? value : Time.current
|
|
20
|
+
end
|
|
21
|
+
|
|
18
22
|
def fragment_value(fragment)
|
|
19
|
-
|
|
23
|
+
value_or_default_value.send(fragment)
|
|
20
24
|
end
|
|
21
25
|
|
|
22
26
|
def hidden_fragments
|
data/lib/formtastic/util.rb
CHANGED
|
@@ -22,23 +22,31 @@ module Formtastic
|
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
def rails3?
|
|
25
|
-
::
|
|
25
|
+
rails_version >= Gem::Version.new("3.0.0") &&
|
|
26
|
+
rails_version < Gem::Version.new("4.0.0")
|
|
26
27
|
end
|
|
27
28
|
|
|
28
29
|
def rails4?
|
|
29
|
-
::
|
|
30
|
+
rails_version >= Gem::Version.new("4.0.0") &&
|
|
31
|
+
rails_version < Gem::Version.new("5.0.0")
|
|
30
32
|
end
|
|
31
33
|
|
|
32
34
|
def rails4_0?
|
|
33
|
-
|
|
35
|
+
rails_version >= Gem::Version.new("4.0.0") &&
|
|
36
|
+
rails_version < Gem::Version.new("4.1.0")
|
|
34
37
|
end
|
|
35
38
|
|
|
36
39
|
def rails4_1?
|
|
37
|
-
|
|
40
|
+
rails_version >= Gem::Version.new("4.1.0") &&
|
|
41
|
+
rails_version < Gem::Version.new("4.2.0")
|
|
38
42
|
end
|
|
39
43
|
|
|
40
44
|
def deprecated_version_of_rails?
|
|
41
|
-
|
|
45
|
+
rails_version < Gem::Version.new("3.2.13")
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def rails_version
|
|
49
|
+
Gem::Version.new(::Rails::VERSION::STRING)
|
|
42
50
|
end
|
|
43
51
|
|
|
44
52
|
end
|
data/lib/formtastic/version.rb
CHANGED
|
@@ -821,6 +821,15 @@ describe 'Formtastic::FormBuilder#input' do
|
|
|
821
821
|
output_buffer.should have_tag("form li.my_class")
|
|
822
822
|
output_buffer.should have_tag("form li.another_class")
|
|
823
823
|
end
|
|
824
|
+
|
|
825
|
+
describe 'when nil' do
|
|
826
|
+
it 'should not put an id attribute on the div tag' do
|
|
827
|
+
concat(semantic_form_for(@new_post) do |builder|
|
|
828
|
+
concat(builder.input(:title, :wrapper_html => {:id => nil}))
|
|
829
|
+
end)
|
|
830
|
+
output_buffer.should have_tag('form li:not([id])')
|
|
831
|
+
end
|
|
832
|
+
end
|
|
824
833
|
end
|
|
825
834
|
|
|
826
835
|
describe 'when not provided' do
|
|
@@ -127,6 +127,16 @@ describe 'boolean input' do
|
|
|
127
127
|
output_buffer.should have_tag('form li label input[@type="checkbox"][@value="yes"][@checked="checked"]')
|
|
128
128
|
end
|
|
129
129
|
|
|
130
|
+
it 'should generate a checked input if object.method returns checked value when inverted' do
|
|
131
|
+
@new_post.stub(:allow_comments).and_return(0)
|
|
132
|
+
|
|
133
|
+
concat(semantic_form_for(@new_post) do |builder|
|
|
134
|
+
concat(builder.input(:allow_comments, :as => :boolean, :checked_value => 0, :unchecked_value => 1))
|
|
135
|
+
end)
|
|
136
|
+
|
|
137
|
+
output_buffer.should have_tag('form li label input[@type="checkbox"][@value="0"][@checked="checked"]')
|
|
138
|
+
end
|
|
139
|
+
|
|
130
140
|
it 'should not generate a checked input if object.method returns unchecked value' do
|
|
131
141
|
@new_post.stub(:allow_comments).and_return('no')
|
|
132
142
|
|
|
@@ -227,5 +237,4 @@ describe 'boolean input' do
|
|
|
227
237
|
end
|
|
228
238
|
|
|
229
239
|
end
|
|
230
|
-
|
|
231
240
|
end
|
|
@@ -107,6 +107,7 @@ describe 'check_boxes input' do
|
|
|
107
107
|
::Post.all.each do |post|
|
|
108
108
|
output_buffer.should have_tag("form li fieldset ol li label input#author_post_ids_#{post.id}")
|
|
109
109
|
output_buffer.should have_tag("form li fieldset ol li label input[@name='author[post_ids][]']", :count => 2)
|
|
110
|
+
output_buffer.should have_tag('form li fieldset ol li label', /#{post.to_label}/)
|
|
110
111
|
end
|
|
111
112
|
|
|
112
113
|
end
|
|
@@ -383,7 +383,7 @@ describe 'select input' do
|
|
|
383
383
|
end
|
|
384
384
|
|
|
385
385
|
it 'should have a hidden field' do
|
|
386
|
-
output_buffer.should have_tag('form li input[@type="hidden"][@name="author[post_ids][]"]')
|
|
386
|
+
output_buffer.should have_tag('form li input[@type="hidden"][@name="author[post_ids][]"]', :count => 1)
|
|
387
387
|
end
|
|
388
388
|
|
|
389
389
|
it 'should have a select option for each Post' do
|
|
@@ -108,6 +108,46 @@ describe 'string input' do
|
|
|
108
108
|
should_have_maxlength(42, :options => { :maximum => 42, :unless => :specify_maxlength })
|
|
109
109
|
end
|
|
110
110
|
end
|
|
111
|
+
|
|
112
|
+
describe 'any conditional validation' do
|
|
113
|
+
describe 'proc with arity that calls an instance method' do
|
|
114
|
+
it 'calls the method on the object' do
|
|
115
|
+
@new_post.should_receive(:something?)
|
|
116
|
+
@new_post.class.should_receive(:validators_on).with(:title).at_least(1).and_return([
|
|
117
|
+
active_model_presence_validator([:title], { :unless => Proc.new { |user| user.something? } })
|
|
118
|
+
])
|
|
119
|
+
concat(semantic_form_for(@new_post) do |builder|
|
|
120
|
+
concat(builder.input(:title))
|
|
121
|
+
end)
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
describe 'symbol method name' do
|
|
126
|
+
it 'calls the method on the object if the method exists' do
|
|
127
|
+
@new_post.should_receive(:something?)
|
|
128
|
+
@new_post.class.should_receive(:validators_on).with(:title).at_least(1).and_return([
|
|
129
|
+
active_model_presence_validator([:title], { :unless => :something? })
|
|
130
|
+
])
|
|
131
|
+
concat(semantic_form_for(@new_post) do |builder|
|
|
132
|
+
concat(builder.input(:title))
|
|
133
|
+
end)
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
describe 'any other conditional' do
|
|
138
|
+
it 'does not raise an error' do
|
|
139
|
+
@conditional = double()
|
|
140
|
+
@new_post.class.should_receive(:validators_on).with(:title).at_least(1).and_return([
|
|
141
|
+
active_model_presence_validator([:title], { :unless => @conditional })
|
|
142
|
+
])
|
|
143
|
+
concat(semantic_form_for(@new_post) do |builder|
|
|
144
|
+
concat(builder.input(:title))
|
|
145
|
+
end)
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
end
|
|
150
|
+
|
|
111
151
|
end
|
|
112
152
|
end
|
|
113
153
|
|
|
@@ -64,33 +64,6 @@ describe 'time select input' do
|
|
|
64
64
|
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
-
describe "with :ignore_date => false and no initial Time" do
|
|
68
|
-
before do
|
|
69
|
-
@new_post.stub(:publish_at)
|
|
70
|
-
concat(semantic_form_for(@new_post) do |builder|
|
|
71
|
-
concat(builder.input(:publish_at, :as => :time_select, :ignore_date => false))
|
|
72
|
-
end)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
it 'should have a hidden input for day, month and year' do
|
|
76
|
-
output_buffer.should have_tag('input#post_publish_at_1i')
|
|
77
|
-
output_buffer.should have_tag('input#post_publish_at_2i')
|
|
78
|
-
output_buffer.should have_tag('input#post_publish_at_3i')
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
it 'should not have values in hidden inputs for day, month and year' do
|
|
82
|
-
output_buffer.should have_tag('input#post_publish_at_1i[@value=""]')
|
|
83
|
-
output_buffer.should have_tag('input#post_publish_at_2i[@value=""]')
|
|
84
|
-
output_buffer.should have_tag('input#post_publish_at_3i[@value=""]')
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
it 'should have an select for hour and minute' do
|
|
88
|
-
output_buffer.should have_tag('select#post_publish_at_4i')
|
|
89
|
-
output_buffer.should have_tag('select#post_publish_at_5i')
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
end
|
|
93
|
-
|
|
94
67
|
describe "without seconds" do
|
|
95
68
|
before do
|
|
96
69
|
concat(semantic_form_for(@new_post) do |builder|
|
data/spec/util_spec.rb
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe 'Formtastic::Util' do
|
|
5
|
+
|
|
6
|
+
describe '.deprecated_version_of_rails?' do
|
|
7
|
+
|
|
8
|
+
subject { Formtastic::Util.deprecated_version_of_rails? }
|
|
9
|
+
|
|
10
|
+
context '3.0.0' do
|
|
11
|
+
before { allow(Formtastic::Util).to receive(:rails_version) { Gem::Version.new("3.0.0") } }
|
|
12
|
+
it 'should be true' do
|
|
13
|
+
expect(subject).to be_true
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
context '3.1.0' do
|
|
18
|
+
before { allow(Formtastic::Util).to receive(:rails_version) { Gem::Version.new("3.1.0") } }
|
|
19
|
+
it 'should be true' do
|
|
20
|
+
expect(subject).to be_true
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
context '3.2.12' do
|
|
25
|
+
before { allow(Formtastic::Util).to receive(:rails_version) { Gem::Version.new("3.2.12") } }
|
|
26
|
+
it 'should be true' do
|
|
27
|
+
expect(subject).to be_true
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
context '3.2.13' do
|
|
32
|
+
before { allow(Formtastic::Util).to receive(:rails_version) { Gem::Version.new("3.2.13") } }
|
|
33
|
+
it 'should be true' do
|
|
34
|
+
expect(subject).to be_false
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
context '3.2.14' do
|
|
39
|
+
before { allow(Formtastic::Util).to receive(:rails_version) { Gem::Version.new("3.2.14") } }
|
|
40
|
+
it 'should be true' do
|
|
41
|
+
expect(subject).to be_false
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
context '3.3.0' do
|
|
46
|
+
before { allow(Formtastic::Util).to receive(:rails_version) { Gem::Version.new("3.3.0") } }
|
|
47
|
+
it 'should be true' do
|
|
48
|
+
expect(subject).to be_false
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
context '4.0.0' do
|
|
53
|
+
before { allow(Formtastic::Util).to receive(:rails_version) { Gem::Version.new("4.0.0") } }
|
|
54
|
+
it 'should be true' do
|
|
55
|
+
expect(subject).to be_false
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
metadata
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: formtastic
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.3.0.
|
|
5
|
-
prerelease: 6
|
|
4
|
+
version: 2.3.0.rc4
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Justin French
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date: 2014-
|
|
11
|
+
date: 2014-08-13 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: actionpack
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
17
|
- - ! '>='
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
@@ -22,7 +20,6 @@ dependencies:
|
|
|
22
20
|
type: :runtime
|
|
23
21
|
prerelease: false
|
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
23
|
requirements:
|
|
27
24
|
- - ! '>='
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
@@ -30,7 +27,6 @@ dependencies:
|
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
|
31
28
|
name: nokogiri
|
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
30
|
requirements:
|
|
35
31
|
- - <
|
|
36
32
|
- !ruby/object:Gem::Version
|
|
@@ -38,7 +34,6 @@ dependencies:
|
|
|
38
34
|
type: :development
|
|
39
35
|
prerelease: false
|
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
37
|
requirements:
|
|
43
38
|
- - <
|
|
44
39
|
- !ruby/object:Gem::Version
|
|
@@ -46,7 +41,6 @@ dependencies:
|
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
|
47
42
|
name: rspec-rails
|
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
44
|
requirements:
|
|
51
45
|
- - ~>
|
|
52
46
|
- !ruby/object:Gem::Version
|
|
@@ -54,7 +48,6 @@ dependencies:
|
|
|
54
48
|
type: :development
|
|
55
49
|
prerelease: false
|
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
51
|
requirements:
|
|
59
52
|
- - ~>
|
|
60
53
|
- !ruby/object:Gem::Version
|
|
@@ -62,7 +55,6 @@ dependencies:
|
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
|
63
56
|
name: rspec_tag_matchers
|
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
-
none: false
|
|
66
58
|
requirements:
|
|
67
59
|
- - ! '>='
|
|
68
60
|
- !ruby/object:Gem::Version
|
|
@@ -70,7 +62,6 @@ dependencies:
|
|
|
70
62
|
type: :development
|
|
71
63
|
prerelease: false
|
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
-
none: false
|
|
74
65
|
requirements:
|
|
75
66
|
- - ! '>='
|
|
76
67
|
- !ruby/object:Gem::Version
|
|
@@ -78,7 +69,6 @@ dependencies:
|
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
|
79
70
|
name: hpricot
|
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
72
|
requirements:
|
|
83
73
|
- - ~>
|
|
84
74
|
- !ruby/object:Gem::Version
|
|
@@ -86,7 +76,6 @@ dependencies:
|
|
|
86
76
|
type: :development
|
|
87
77
|
prerelease: false
|
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
79
|
requirements:
|
|
91
80
|
- - ~>
|
|
92
81
|
- !ruby/object:Gem::Version
|
|
@@ -94,7 +83,6 @@ dependencies:
|
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
|
95
84
|
name: BlueCloth
|
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
none: false
|
|
98
86
|
requirements:
|
|
99
87
|
- - ! '>='
|
|
100
88
|
- !ruby/object:Gem::Version
|
|
@@ -102,7 +90,6 @@ dependencies:
|
|
|
102
90
|
type: :development
|
|
103
91
|
prerelease: false
|
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
106
93
|
requirements:
|
|
107
94
|
- - ! '>='
|
|
108
95
|
- !ruby/object:Gem::Version
|
|
@@ -110,7 +97,6 @@ dependencies:
|
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
|
111
98
|
name: yard
|
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
none: false
|
|
114
100
|
requirements:
|
|
115
101
|
- - ~>
|
|
116
102
|
- !ruby/object:Gem::Version
|
|
@@ -118,7 +104,6 @@ dependencies:
|
|
|
118
104
|
type: :development
|
|
119
105
|
prerelease: false
|
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
none: false
|
|
122
107
|
requirements:
|
|
123
108
|
- - ~>
|
|
124
109
|
- !ruby/object:Gem::Version
|
|
@@ -126,7 +111,6 @@ dependencies:
|
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
|
127
112
|
name: colored
|
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
|
129
|
-
none: false
|
|
130
114
|
requirements:
|
|
131
115
|
- - ! '>='
|
|
132
116
|
- !ruby/object:Gem::Version
|
|
@@ -134,7 +118,6 @@ dependencies:
|
|
|
134
118
|
type: :development
|
|
135
119
|
prerelease: false
|
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
137
|
-
none: false
|
|
138
121
|
requirements:
|
|
139
122
|
- - ! '>='
|
|
140
123
|
- !ruby/object:Gem::Version
|
|
@@ -142,7 +125,6 @@ dependencies:
|
|
|
142
125
|
- !ruby/object:Gem::Dependency
|
|
143
126
|
name: tzinfo
|
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
|
145
|
-
none: false
|
|
146
128
|
requirements:
|
|
147
129
|
- - ! '>='
|
|
148
130
|
- !ruby/object:Gem::Version
|
|
@@ -150,7 +132,6 @@ dependencies:
|
|
|
150
132
|
type: :development
|
|
151
133
|
prerelease: false
|
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
153
|
-
none: false
|
|
154
135
|
requirements:
|
|
155
136
|
- - ! '>='
|
|
156
137
|
- !ruby/object:Gem::Version
|
|
@@ -158,7 +139,6 @@ dependencies:
|
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
|
159
140
|
name: ammeter
|
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
|
161
|
-
none: false
|
|
162
142
|
requirements:
|
|
163
143
|
- - '='
|
|
164
144
|
- !ruby/object:Gem::Version
|
|
@@ -166,7 +146,6 @@ dependencies:
|
|
|
166
146
|
type: :development
|
|
167
147
|
prerelease: false
|
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
169
|
-
none: false
|
|
170
149
|
requirements:
|
|
171
150
|
- - '='
|
|
172
151
|
- !ruby/object:Gem::Version
|
|
@@ -174,7 +153,6 @@ dependencies:
|
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
|
175
154
|
name: appraisal
|
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
|
177
|
-
none: false
|
|
178
156
|
requirements:
|
|
179
157
|
- - '='
|
|
180
158
|
- !ruby/object:Gem::Version
|
|
@@ -182,7 +160,6 @@ dependencies:
|
|
|
182
160
|
type: :development
|
|
183
161
|
prerelease: false
|
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
185
|
-
none: false
|
|
186
163
|
requirements:
|
|
187
164
|
- - '='
|
|
188
165
|
- !ruby/object:Gem::Version
|
|
@@ -190,7 +167,6 @@ dependencies:
|
|
|
190
167
|
- !ruby/object:Gem::Dependency
|
|
191
168
|
name: rake
|
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
|
193
|
-
none: false
|
|
194
170
|
requirements:
|
|
195
171
|
- - <=
|
|
196
172
|
- !ruby/object:Gem::Version
|
|
@@ -198,7 +174,6 @@ dependencies:
|
|
|
198
174
|
type: :development
|
|
199
175
|
prerelease: false
|
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
|
201
|
-
none: false
|
|
202
177
|
requirements:
|
|
203
178
|
- - <=
|
|
204
179
|
- !ruby/object:Gem::Version
|
|
@@ -206,7 +181,6 @@ dependencies:
|
|
|
206
181
|
- !ruby/object:Gem::Dependency
|
|
207
182
|
name: activemodel
|
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
|
209
|
-
none: false
|
|
210
184
|
requirements:
|
|
211
185
|
- - ! '>='
|
|
212
186
|
- !ruby/object:Gem::Version
|
|
@@ -214,7 +188,6 @@ dependencies:
|
|
|
214
188
|
type: :development
|
|
215
189
|
prerelease: false
|
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
217
|
-
none: false
|
|
218
191
|
requirements:
|
|
219
192
|
- - ! '>='
|
|
220
193
|
- !ruby/object:Gem::Version
|
|
@@ -294,10 +267,8 @@ files:
|
|
|
294
267
|
- lib/formtastic/inputs/boolean_input.rb
|
|
295
268
|
- lib/formtastic/inputs/check_boxes_input.rb
|
|
296
269
|
- lib/formtastic/inputs/country_input.rb
|
|
297
|
-
- lib/formtastic/inputs/date_input.rb
|
|
298
270
|
- lib/formtastic/inputs/date_picker_input.rb
|
|
299
271
|
- lib/formtastic/inputs/date_select_input.rb
|
|
300
|
-
- lib/formtastic/inputs/datetime_input.rb
|
|
301
272
|
- lib/formtastic/inputs/datetime_picker_input.rb
|
|
302
273
|
- lib/formtastic/inputs/datetime_select_input.rb
|
|
303
274
|
- lib/formtastic/inputs/email_input.rb
|
|
@@ -312,7 +283,6 @@ files:
|
|
|
312
283
|
- lib/formtastic/inputs/select_input.rb
|
|
313
284
|
- lib/formtastic/inputs/string_input.rb
|
|
314
285
|
- lib/formtastic/inputs/text_input.rb
|
|
315
|
-
- lib/formtastic/inputs/time_input.rb
|
|
316
286
|
- lib/formtastic/inputs/time_picker_input.rb
|
|
317
287
|
- lib/formtastic/inputs/time_select_input.rb
|
|
318
288
|
- lib/formtastic/inputs/time_zone_input.rb
|
|
@@ -356,7 +326,6 @@ files:
|
|
|
356
326
|
- spec/inputs/date_select_input_spec.rb
|
|
357
327
|
- spec/inputs/datetime_picker_input_spec.rb
|
|
358
328
|
- spec/inputs/datetime_select_input_spec.rb
|
|
359
|
-
- spec/inputs/deprecated_time_date_datetime_inputs_spec.rb
|
|
360
329
|
- spec/inputs/email_input_spec.rb
|
|
361
330
|
- spec/inputs/file_input_spec.rb
|
|
362
331
|
- spec/inputs/hidden_input_spec.rb
|
|
@@ -384,31 +353,31 @@ files:
|
|
|
384
353
|
- spec/support/deferred_garbage_collection.rb
|
|
385
354
|
- spec/support/deprecation.rb
|
|
386
355
|
- spec/support/test_environment.rb
|
|
356
|
+
- spec/util_spec.rb
|
|
387
357
|
homepage: http://github.com/justinfrench/formtastic
|
|
388
358
|
licenses:
|
|
389
359
|
- MIT
|
|
360
|
+
metadata: {}
|
|
390
361
|
post_install_message:
|
|
391
362
|
rdoc_options:
|
|
392
363
|
- --charset=UTF-8
|
|
393
364
|
require_paths:
|
|
394
365
|
- lib
|
|
395
366
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
396
|
-
none: false
|
|
397
367
|
requirements:
|
|
398
368
|
- - ! '>='
|
|
399
369
|
- !ruby/object:Gem::Version
|
|
400
370
|
version: '0'
|
|
401
371
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
402
|
-
none: false
|
|
403
372
|
requirements:
|
|
404
373
|
- - ! '>='
|
|
405
374
|
- !ruby/object:Gem::Version
|
|
406
375
|
version: '0'
|
|
407
376
|
requirements: []
|
|
408
377
|
rubyforge_project:
|
|
409
|
-
rubygems_version:
|
|
378
|
+
rubygems_version: 2.4.1
|
|
410
379
|
signing_key:
|
|
411
|
-
specification_version:
|
|
380
|
+
specification_version: 4
|
|
412
381
|
summary: A Rails form builder plugin/gem with semantically rich and accessible markup
|
|
413
382
|
test_files:
|
|
414
383
|
- spec/actions/button_action_spec.rb
|
|
@@ -436,7 +405,6 @@ test_files:
|
|
|
436
405
|
- spec/inputs/date_select_input_spec.rb
|
|
437
406
|
- spec/inputs/datetime_picker_input_spec.rb
|
|
438
407
|
- spec/inputs/datetime_select_input_spec.rb
|
|
439
|
-
- spec/inputs/deprecated_time_date_datetime_inputs_spec.rb
|
|
440
408
|
- spec/inputs/email_input_spec.rb
|
|
441
409
|
- spec/inputs/file_input_spec.rb
|
|
442
410
|
- spec/inputs/hidden_input_spec.rb
|
|
@@ -464,4 +432,5 @@ test_files:
|
|
|
464
432
|
- spec/support/deferred_garbage_collection.rb
|
|
465
433
|
- spec/support/deprecation.rb
|
|
466
434
|
- spec/support/test_environment.rb
|
|
435
|
+
- spec/util_spec.rb
|
|
467
436
|
has_rdoc:
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
module Formtastic
|
|
2
|
-
module Inputs
|
|
3
|
-
class DateInput < DateSelectInput
|
|
4
|
-
def to_html
|
|
5
|
-
::ActiveSupport::Deprecation.warn("DateInput (:as => :date) has been renamed to DateSelectInput (:as => :date_select) and will be removed or changed in the next version of Formtastic, please update your forms.", caller(2))
|
|
6
|
-
super
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
module Formtastic
|
|
2
|
-
module Inputs
|
|
3
|
-
class DatetimeInput < DatetimeSelectInput
|
|
4
|
-
def to_html
|
|
5
|
-
::ActiveSupport::Deprecation.warn("DatetimeInput (:as => :datetime) has been renamed to DatetimeSelectInput (:as => :datetime_select) and will be removed or changed in the next version of Formtastic, please update your forms.", caller(2))
|
|
6
|
-
super
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
module Formtastic
|
|
2
|
-
module Inputs
|
|
3
|
-
class TimeInput < TimeSelectInput
|
|
4
|
-
def to_html
|
|
5
|
-
::ActiveSupport::Deprecation.warn("TimeInput (:as => :time) has been renamed to TimeSelectInput (:as => :time_select) and will be removed or changed in the next version of Formtastic, please update your forms.", caller(2))
|
|
6
|
-
super
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe 'deprecated time, datetime and date inputs' do
|
|
4
|
-
include FormtasticSpecHelper
|
|
5
|
-
|
|
6
|
-
before do
|
|
7
|
-
@output_buffer = ''
|
|
8
|
-
mock_everything
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
it 'should warn :time is deprecated' do
|
|
12
|
-
::ActiveSupport::Deprecation.should_receive(:warn)
|
|
13
|
-
semantic_form_for(@new_post) do |f|
|
|
14
|
-
concat(f.input :created_at, :as => :time)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
it 'should warn :datetime is deprecated' do
|
|
19
|
-
::ActiveSupport::Deprecation.should_receive(:warn)
|
|
20
|
-
semantic_form_for(@new_post) do |f|
|
|
21
|
-
concat(f.input :created_at, :as => :datetime)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
it 'should warn :date is deprecated' do
|
|
26
|
-
::ActiveSupport::Deprecation.should_receive(:warn)
|
|
27
|
-
semantic_form_for(@new_post) do |f|
|
|
28
|
-
concat(f.input :created_at, :as => :date)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
it 'should use wrapper css class based off :as, not off their parent class' do
|
|
33
|
-
with_deprecation_silenced do
|
|
34
|
-
concat(semantic_form_for(@new_post) do |f|
|
|
35
|
-
concat(f.input :created_at, :as => :time)
|
|
36
|
-
concat(f.input :created_at, :as => :datetime)
|
|
37
|
-
concat(f.input :created_at, :as => :date)
|
|
38
|
-
end)
|
|
39
|
-
end
|
|
40
|
-
output_buffer.should have_tag('li.time')
|
|
41
|
-
output_buffer.should have_tag('li.datetime')
|
|
42
|
-
output_buffer.should have_tag('li.date')
|
|
43
|
-
output_buffer.should_not have_tag('li.time_select')
|
|
44
|
-
output_buffer.should_not have_tag('li.datetime_select')
|
|
45
|
-
output_buffer.should_not have_tag('li.date_select')
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
end
|