speedo-formstrap 1.2.7 → 1.2.8
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -2
- data/Gemfile.lock +67 -65
- data/README.md +12 -2
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/formtastic-bootstrap.rb +1 -0
- data/lib/formtastic-bootstrap/actions.rb +4 -0
- data/lib/formtastic-bootstrap/actions/base.rb +18 -0
- data/lib/formtastic-bootstrap/actions/button_action.rb +7 -0
- data/lib/formtastic-bootstrap/actions/input_action.rb +7 -0
- data/lib/formtastic-bootstrap/actions/link_action.rb +7 -0
- data/lib/formtastic-bootstrap/form_builder.rb +7 -5
- data/lib/formtastic-bootstrap/helpers.rb +3 -1
- data/lib/formtastic-bootstrap/helpers/action_helper.rb +12 -0
- data/lib/formtastic-bootstrap/helpers/actions_helper.rb +23 -0
- data/lib/formtastic-bootstrap/helpers/buttons_helper.rb +13 -9
- data/lib/formtastic-bootstrap/helpers/fieldset_wrapper.rb +11 -6
- data/lib/formtastic-bootstrap/helpers/inputs_helper.rb +4 -4
- data/lib/formtastic-bootstrap/inputs/base.rb +2 -1
- data/lib/formtastic-bootstrap/inputs/base/choices.rb +12 -23
- data/lib/formtastic-bootstrap/inputs/base/labelling.rb +16 -6
- data/lib/formtastic-bootstrap/inputs/base/numeric.rb +18 -0
- data/lib/formtastic-bootstrap/inputs/base/timeish.rb +5 -12
- data/lib/formtastic-bootstrap/inputs/base/wrapping.rb +32 -14
- data/lib/formtastic-bootstrap/inputs/boolean_input.rb +7 -11
- data/lib/formtastic-bootstrap/inputs/check_boxes_input.rb +10 -9
- data/lib/formtastic-bootstrap/inputs/hidden_input.rb +5 -3
- data/lib/formtastic-bootstrap/inputs/number_input.rb +2 -2
- data/lib/formtastic-bootstrap/inputs/radio_input.rb +13 -12
- data/lib/formtastic-bootstrap/inputs/range_input.rb +2 -2
- data/spec/actions/button_action_spec.rb +68 -0
- data/spec/actions/generic_action_spec.rb +486 -0
- data/spec/actions/input_action_spec.rb +64 -0
- data/spec/actions/link_action_spec.rb +93 -0
- data/spec/builder/semantic_fields_for_spec.rb +14 -14
- data/spec/helpers/action_helper_spec.rb +365 -0
- data/spec/helpers/actions_helper_spec.rb +143 -0
- data/spec/helpers/buttons_helper_spec.rb +55 -45
- data/spec/helpers/input_helper_spec.rb +188 -188
- data/spec/helpers/inputs_helper_spec.rb +116 -102
- data/spec/inputs/boolean_input_spec.rb +72 -44
- data/spec/inputs/check_boxes_input_spec.rb +108 -80
- data/spec/inputs/date_input_spec.rb +80 -14
- data/spec/inputs/datetime_input_spec.rb +12 -12
- data/spec/inputs/email_input_spec.rb +33 -5
- data/spec/inputs/file_input_spec.rb +33 -5
- data/spec/inputs/hidden_input_spec.rb +40 -12
- data/spec/inputs/number_input_spec.rb +126 -96
- data/spec/inputs/password_input_spec.rb +33 -5
- data/spec/inputs/phone_input_spec.rb +33 -5
- data/spec/inputs/radio_input_spec.rb +72 -44
- data/spec/inputs/range_input_spec.rb +93 -65
- data/spec/inputs/search_input_spec.rb +32 -5
- data/spec/inputs/select_input_spec.rb +123 -77
- data/spec/inputs/string_input_spec.rb +66 -21
- data/spec/inputs/text_input_spec.rb +40 -13
- data/spec/inputs/time_input_spec.rb +22 -22
- data/spec/inputs/time_zone_input_spec.rb +17 -17
- data/spec/inputs/url_input_spec.rb +33 -5
- data/spec/support/custom_macros.rb +59 -188
- data/spec/support/formtastic_spec_helper.rb +19 -3
- data/speedo-formstrap.gemspec +146 -0
- metadata +31 -16
data/Gemfile
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
gem 'formtastic'
|
3
|
+
gem 'formtastic', '~> 2.1.0.beta1'
|
4
4
|
gem 'rails', '>= 3.1.0'
|
5
5
|
|
6
6
|
group :development, :test do
|
7
7
|
gem "rspec"
|
8
8
|
gem "bundler"
|
9
9
|
gem "jeweler"
|
10
|
-
gem "
|
10
|
+
gem "simplecov"
|
11
11
|
gem "rspec_tag_matchers"
|
12
12
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,119 +1,121 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
actionmailer (3.
|
5
|
-
actionpack (= 3.
|
6
|
-
mail (~> 2.
|
7
|
-
actionpack (3.
|
8
|
-
activemodel (= 3.
|
9
|
-
activesupport (= 3.
|
4
|
+
actionmailer (3.2.6)
|
5
|
+
actionpack (= 3.2.6)
|
6
|
+
mail (~> 2.4.4)
|
7
|
+
actionpack (3.2.6)
|
8
|
+
activemodel (= 3.2.6)
|
9
|
+
activesupport (= 3.2.6)
|
10
10
|
builder (~> 3.0.0)
|
11
11
|
erubis (~> 2.7.0)
|
12
|
-
|
13
|
-
rack (~> 1.
|
14
|
-
rack-cache (~> 1.
|
15
|
-
rack-mount (~> 0.8.2)
|
12
|
+
journey (~> 1.0.1)
|
13
|
+
rack (~> 1.4.0)
|
14
|
+
rack-cache (~> 1.2)
|
16
15
|
rack-test (~> 0.6.1)
|
17
|
-
sprockets (~> 2.
|
18
|
-
activemodel (3.
|
19
|
-
activesupport (= 3.
|
16
|
+
sprockets (~> 2.1.3)
|
17
|
+
activemodel (3.2.6)
|
18
|
+
activesupport (= 3.2.6)
|
20
19
|
builder (~> 3.0.0)
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
arel (~> 2.2.1)
|
20
|
+
activerecord (3.2.6)
|
21
|
+
activemodel (= 3.2.6)
|
22
|
+
activesupport (= 3.2.6)
|
23
|
+
arel (~> 3.0.2)
|
26
24
|
tzinfo (~> 0.3.29)
|
27
|
-
activeresource (3.
|
28
|
-
activemodel (= 3.
|
29
|
-
activesupport (= 3.
|
30
|
-
activesupport (3.
|
25
|
+
activeresource (3.2.6)
|
26
|
+
activemodel (= 3.2.6)
|
27
|
+
activesupport (= 3.2.6)
|
28
|
+
activesupport (3.2.6)
|
29
|
+
i18n (~> 0.6)
|
31
30
|
multi_json (~> 1.0)
|
32
|
-
arel (
|
31
|
+
arel (3.0.2)
|
33
32
|
builder (3.0.0)
|
34
33
|
diff-lcs (1.1.3)
|
35
34
|
erubis (2.7.0)
|
36
|
-
formtastic (2.
|
37
|
-
|
35
|
+
formtastic (2.1.1)
|
36
|
+
actionpack (~> 3.0)
|
38
37
|
git (1.2.5)
|
39
38
|
hike (1.2.1)
|
40
39
|
i18n (0.6.0)
|
41
|
-
jeweler (1.
|
40
|
+
jeweler (1.8.4)
|
42
41
|
bundler (~> 1.0)
|
43
42
|
git (>= 1.2.5)
|
44
43
|
rake
|
45
|
-
|
46
|
-
|
44
|
+
rdoc
|
45
|
+
journey (1.0.4)
|
46
|
+
json (1.7.3)
|
47
|
+
mail (2.4.4)
|
47
48
|
i18n (>= 0.4.0)
|
48
49
|
mime-types (~> 1.16)
|
49
50
|
treetop (~> 1.4.8)
|
50
|
-
mime-types (1.
|
51
|
-
multi_json (1.
|
52
|
-
nokogiri (1.5.
|
51
|
+
mime-types (1.19)
|
52
|
+
multi_json (1.3.6)
|
53
|
+
nokogiri (1.5.5)
|
53
54
|
polyglot (0.3.3)
|
54
|
-
rack (1.
|
55
|
-
rack-cache (1.
|
55
|
+
rack (1.4.1)
|
56
|
+
rack-cache (1.2)
|
56
57
|
rack (>= 0.4)
|
57
|
-
rack-mount (0.8.3)
|
58
|
-
rack (>= 1.0.0)
|
59
58
|
rack-ssl (1.3.2)
|
60
59
|
rack
|
61
60
|
rack-test (0.6.1)
|
62
61
|
rack (>= 1.0)
|
63
|
-
rails (3.
|
64
|
-
actionmailer (= 3.
|
65
|
-
actionpack (= 3.
|
66
|
-
activerecord (= 3.
|
67
|
-
activeresource (= 3.
|
68
|
-
activesupport (= 3.
|
62
|
+
rails (3.2.6)
|
63
|
+
actionmailer (= 3.2.6)
|
64
|
+
actionpack (= 3.2.6)
|
65
|
+
activerecord (= 3.2.6)
|
66
|
+
activeresource (= 3.2.6)
|
67
|
+
activesupport (= 3.2.6)
|
69
68
|
bundler (~> 1.0)
|
70
|
-
railties (= 3.
|
71
|
-
railties (3.
|
72
|
-
actionpack (= 3.
|
73
|
-
activesupport (= 3.
|
69
|
+
railties (= 3.2.6)
|
70
|
+
railties (3.2.6)
|
71
|
+
actionpack (= 3.2.6)
|
72
|
+
activesupport (= 3.2.6)
|
74
73
|
rack-ssl (~> 1.3.2)
|
75
74
|
rake (>= 0.8.7)
|
76
75
|
rdoc (~> 3.4)
|
77
|
-
thor (
|
76
|
+
thor (>= 0.14.6, < 2.0)
|
78
77
|
rake (0.9.2.2)
|
79
|
-
rcov (0.9.11)
|
80
78
|
rdoc (3.12)
|
81
79
|
json (~> 1.4)
|
82
|
-
rspec (2.
|
83
|
-
rspec-core (~> 2.
|
84
|
-
rspec-expectations (~> 2.
|
85
|
-
rspec-mocks (~> 2.
|
86
|
-
rspec-core (2.
|
87
|
-
rspec-expectations (2.
|
88
|
-
diff-lcs (~> 1.1.
|
89
|
-
rspec-mocks (2.
|
90
|
-
rspec-rails (2.
|
91
|
-
actionpack (
|
92
|
-
activesupport (
|
93
|
-
railties (
|
94
|
-
rspec (~> 2.
|
80
|
+
rspec (2.11.0)
|
81
|
+
rspec-core (~> 2.11.0)
|
82
|
+
rspec-expectations (~> 2.11.0)
|
83
|
+
rspec-mocks (~> 2.11.0)
|
84
|
+
rspec-core (2.11.0)
|
85
|
+
rspec-expectations (2.11.1)
|
86
|
+
diff-lcs (~> 1.1.3)
|
87
|
+
rspec-mocks (2.11.0)
|
88
|
+
rspec-rails (2.11.0)
|
89
|
+
actionpack (>= 3.0)
|
90
|
+
activesupport (>= 3.0)
|
91
|
+
railties (>= 3.0)
|
92
|
+
rspec (~> 2.11.0)
|
95
93
|
rspec_tag_matchers (1.0.0)
|
96
94
|
nokogiri (>= 1.4.0)
|
97
95
|
rspec-rails (>= 1.2.6)
|
98
|
-
|
96
|
+
simplecov (0.6.4)
|
97
|
+
multi_json (~> 1.0)
|
98
|
+
simplecov-html (~> 0.5.3)
|
99
|
+
simplecov-html (0.5.3)
|
100
|
+
sprockets (2.1.3)
|
99
101
|
hike (~> 1.2)
|
100
102
|
rack (~> 1.0)
|
101
103
|
tilt (~> 1.1, != 1.3.0)
|
102
|
-
thor (0.
|
104
|
+
thor (0.15.4)
|
103
105
|
tilt (1.3.3)
|
104
106
|
treetop (1.4.10)
|
105
107
|
polyglot
|
106
108
|
polyglot (>= 0.3.1)
|
107
|
-
tzinfo (0.3.
|
109
|
+
tzinfo (0.3.33)
|
108
110
|
|
109
111
|
PLATFORMS
|
110
112
|
ruby
|
111
113
|
|
112
114
|
DEPENDENCIES
|
113
115
|
bundler
|
114
|
-
formtastic
|
116
|
+
formtastic (~> 2.1.0.beta1)
|
115
117
|
jeweler
|
116
118
|
rails (>= 3.1.0)
|
117
|
-
rcov
|
118
119
|
rspec
|
119
120
|
rspec_tag_matchers
|
121
|
+
simplecov
|
data/README.md
CHANGED
@@ -127,7 +127,18 @@ In particular:
|
|
127
127
|
Contributions are welcome!
|
128
128
|
|
129
129
|
* Formtastic's <tt>:country</tt> has not yet been implemented.
|
130
|
-
* Twitter Bootstrap's Date Range, Prepend
|
130
|
+
* Twitter Bootstrap's Date Range, Prepend Checkbox and Appended Checkbox controls have not yet been implemented.
|
131
|
+
|
132
|
+
## Usage
|
133
|
+
|
134
|
+
#### Prepended Text
|
135
|
+
To create a Prepended Text field, use the ```:prepend``` option. This works on any text field input type, like ```:url```, ```:search```, and of course ```:string```
|
136
|
+
|
137
|
+
<%= semantic_form_for @user do |f| %>
|
138
|
+
<%= f.inputs do %>
|
139
|
+
<%= f.input :handle, :prepend => '@' %>
|
140
|
+
<% end %>
|
141
|
+
<% end %>
|
131
142
|
|
132
143
|
## Contributing
|
133
144
|
|
@@ -162,7 +173,6 @@ If you're filing a bug, thank you! Secondly, in the report please include:
|
|
162
173
|
* :time_zone
|
163
174
|
* Fancy Bootstrap Fields
|
164
175
|
* Date Range
|
165
|
-
* Prepend Text
|
166
176
|
* Prepend Checkbox
|
167
177
|
* Appended Checkbox
|
168
178
|
* :datetime, :date, :time
|
data/Rakefile
CHANGED
@@ -19,7 +19,7 @@ Jeweler::Tasks.new do |gem|
|
|
19
19
|
gem.license = "MIT"
|
20
20
|
gem.summary = %Q{Formtastic form builder to generate Twitter Bootstrap-friendly markup.}
|
21
21
|
gem.description = gem.summary
|
22
|
-
gem.email = "
|
22
|
+
gem.email = "stu@t.apio.ca"
|
23
23
|
gem.authors = ["Matthew Bellantoni", "Stu Basden"]
|
24
24
|
# dependencies defined in Gemfile
|
25
25
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.8
|
data/lib/formtastic-bootstrap.rb
CHANGED
@@ -2,5 +2,6 @@ require "formtastic"
|
|
2
2
|
require "formtastic-bootstrap/engine" if defined?(::Rails) # For tests
|
3
3
|
require "formtastic-bootstrap/helpers"
|
4
4
|
require "formtastic-bootstrap/inputs"
|
5
|
+
require "formtastic-bootstrap/actions"
|
5
6
|
require "formtastic-bootstrap/form_builder"
|
6
7
|
require "action_view/helpers/text_field_date_helper"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module FormtasticBootstrap
|
2
|
+
module Actions
|
3
|
+
module Base
|
4
|
+
|
5
|
+
def wrapper(&block)
|
6
|
+
template.capture(&block)
|
7
|
+
end
|
8
|
+
|
9
|
+
def button_html
|
10
|
+
new_class = [super[:class], wrapper_html_options[:class], "btn"]
|
11
|
+
new_class << "btn-primary" if method == :submit
|
12
|
+
new_class = new_class.compact.join(" ")
|
13
|
+
wrapper_html_options.merge(super).merge(:class => new_class)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module FormtasticBootstrap
|
2
|
-
|
2
|
+
|
3
3
|
class FormBuilder < Formtastic::FormBuilder
|
4
4
|
|
5
5
|
configure :default_inline_error_class, 'help-inline'
|
@@ -11,18 +11,18 @@ module FormtasticBootstrap
|
|
11
11
|
# self.default_inline_error_class
|
12
12
|
raise
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
def self.default_error_class=(error_class)
|
16
16
|
# self.default_inline_error_class = error_class
|
17
17
|
# self.default_block_error_class = error_class
|
18
18
|
raise
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def self.default_hint_class
|
22
22
|
# self.default_inline_hint_class
|
23
23
|
raise
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
def self.default_hint_class=(hint_class)
|
27
27
|
# self.default_inline_hint_class = hint_class
|
28
28
|
# self.default_block_hint_class = hint_class
|
@@ -32,7 +32,9 @@ module FormtasticBootstrap
|
|
32
32
|
include FormtasticBootstrap::Helpers::InputHelper
|
33
33
|
include FormtasticBootstrap::Helpers::InputsHelper
|
34
34
|
include FormtasticBootstrap::Helpers::ButtonsHelper
|
35
|
+
include FormtasticBootstrap::Helpers::ActionHelper
|
36
|
+
include FormtasticBootstrap::Helpers::ActionsHelper
|
35
37
|
|
36
38
|
end
|
37
39
|
|
38
|
-
end
|
40
|
+
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require "formtastic-bootstrap/helpers/buttons_helper"
|
2
2
|
require "formtastic-bootstrap/helpers/fieldset_wrapper"
|
3
|
+
require "formtastic-bootstrap/helpers/action_helper"
|
4
|
+
require "formtastic-bootstrap/helpers/actions_helper"
|
3
5
|
require "formtastic-bootstrap/helpers/input_helper"
|
4
6
|
require "formtastic-bootstrap/helpers/inputs_helper"
|
5
7
|
|
@@ -11,7 +13,7 @@ module FormtasticBootstrap
|
|
11
13
|
# autoload :FormHelper, 'formtastic/helpers/form_helper'
|
12
14
|
# autoload :InputHelper, 'formtastic/helpers/input_helper'
|
13
15
|
# autoload :InputsHelper, 'formtastic/helpers/inputs_helper'
|
14
|
-
# autoload :LabelHelper, 'formtastic/helpers/label_helper'
|
16
|
+
# autoload :LabelHelper, 'formtastic/helpers/label_helper'
|
15
17
|
# autoload :SemanticFormHelper, 'formtastic/helpers/semantic_form_helper'
|
16
18
|
# autoload :Reflection, 'formtastic/helpers/reflection'
|
17
19
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module FormtasticBootstrap
|
2
|
+
module Helpers
|
3
|
+
module ActionsHelper
|
4
|
+
|
5
|
+
include Formtastic::Helpers::ActionsHelper
|
6
|
+
include FormtasticBootstrap::Helpers::FieldsetWrapper
|
7
|
+
|
8
|
+
def actions(*args, &block)
|
9
|
+
html_options = args.extract_options!
|
10
|
+
html_options[:class] ||= "form-actions"
|
11
|
+
|
12
|
+
if block_given?
|
13
|
+
field_set_and_list_wrapping(html_options, &block)
|
14
|
+
else
|
15
|
+
args = default_actions if args.empty?
|
16
|
+
contents = args.map { |action_name| action(action_name) }
|
17
|
+
field_set_and_list_wrapping(html_options, contents)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -5,10 +5,11 @@ module FormtasticBootstrap
|
|
5
5
|
include Formtastic::Helpers::ButtonsHelper
|
6
6
|
|
7
7
|
def buttons(*args, &block)
|
8
|
+
::ActiveSupport::Deprecation.warn("f.buttons is deprecated in favour of f.actions and will be removed from Formtastic after 2.1. Please see ActionsHelper and InputAction or ButtonAction for more information")
|
8
9
|
|
9
10
|
html_options = args.extract_options!
|
10
|
-
html_options[:class] ||= "actions"
|
11
|
-
|
11
|
+
html_options[:class] ||= "form-actions"
|
12
|
+
|
12
13
|
if html_options.has_key?(:name)
|
13
14
|
ActiveSupport::Deprecation.warn('The :name option is not supported')
|
14
15
|
end
|
@@ -16,7 +17,7 @@ module FormtasticBootstrap
|
|
16
17
|
if block_given?
|
17
18
|
template.content_tag(:div, html_options) do
|
18
19
|
yield
|
19
|
-
end
|
20
|
+
end
|
20
21
|
else
|
21
22
|
args = [:commit] if args.empty?
|
22
23
|
contents = args.map { |button_name| send(:"#{button_name}_button") }
|
@@ -28,25 +29,28 @@ module FormtasticBootstrap
|
|
28
29
|
end
|
29
30
|
|
30
31
|
def commit_button(*args)
|
32
|
+
::ActiveSupport::Deprecation.warn("f.commit_button is deprecated in favour of f.action(:submit) and will be removed from Formtastic after 2.1. Please see ActionsHelper and InputAction or ButtonAction for more information")
|
33
|
+
|
31
34
|
options = args.extract_options!
|
32
35
|
text = options.delete(:label) || args.shift
|
33
|
-
|
36
|
+
|
34
37
|
text = (localized_string(commit_button_i18n_key, text, :action, :model => commit_button_object_name) ||
|
35
38
|
Formtastic::I18n.t(commit_button_i18n_key, :model => commit_button_object_name)) unless text.is_a?(::String)
|
36
|
-
|
39
|
+
|
37
40
|
button_html = options.delete(:button_html) || {}
|
41
|
+
button_html[:id] ||= "#{@object_name}_submit"
|
38
42
|
button_html.merge!(:class => [button_html[:class], "btn commit", commit_button_i18n_key].compact.join(' '))
|
39
|
-
|
43
|
+
|
40
44
|
# TODO We don't have a wrapper. Add deprecation message.
|
41
45
|
# wrapper_html = options.delete(:wrapper_html) || {}
|
42
46
|
# wrapper_html[:class] = (commit_button_wrapper_html_class << wrapper_html[:class]).flatten.compact.join(' ')
|
43
|
-
|
47
|
+
|
44
48
|
accesskey = (options.delete(:accesskey) || default_commit_button_accesskey) unless button_html.has_key?(:accesskey)
|
45
49
|
button_html = button_html.merge(:accesskey => accesskey) if accesskey
|
46
|
-
|
50
|
+
|
47
51
|
Formtastic::Util.html_safe(submit(text, button_html))
|
48
52
|
end
|
49
53
|
|
50
54
|
end
|
51
55
|
end
|
52
|
-
end
|
56
|
+
end
|