css3buttons 0.9.3 → 0.9.4

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.
data/Gemfile.lock CHANGED
@@ -13,7 +13,7 @@ GIT
13
13
  PATH
14
14
  remote: .
15
15
  specs:
16
- css3buttons (0.9.3)
16
+ css3buttons (0.9.4)
17
17
  actionpack (>= 3.0.0)
18
18
 
19
19
  GEM
@@ -4,11 +4,11 @@ module Css3buttons
4
4
  include ActionView::Helpers::UrlHelper
5
5
  include ActionView::Helpers::FormTagHelper
6
6
  def method_missing(method, *args)
7
- if method.to_s.index("button_link_to") || method.to_s.index("button_submit_tag")
7
+ if is_link_method?(method) || is_submit_method?(method) || is_button_method?(method)
8
8
  qualifiers = ["primary", "big", "positive", "negative", "pill", "danger", "safe", "button"]
9
9
  color_map = {"positive" => "safe", "negative" => "danger"}
10
10
 
11
- method_qualifiers = method.to_s.split("_")[0...-3] + ["button"]
11
+ method_qualifiers = strip_method_name(method).split("_") + ["button"]
12
12
  method_qualifiers.map! do |qualifier|
13
13
  if color_map.has_key?(qualifier)
14
14
  qualifier = color_map[qualifier]
@@ -31,6 +31,8 @@ module Css3buttons
31
31
 
32
32
  if is_link_method?(method)
33
33
  link_to(label, link, options)
34
+ elsif is_button_method?(method)
35
+ content_tag :button, label, { "type" => "submit", "name" => "commit", "value" => "commit" }.merge(options.stringify_keys)
34
36
  else
35
37
  submit_tag(label, options)
36
38
  end
@@ -74,6 +76,18 @@ module Css3buttons
74
76
  def is_link_method?(method)
75
77
  method.to_s.index("button_link_to")
76
78
  end
79
+
80
+ def is_button_method?(method)
81
+ method.to_s.index("button_tag")
82
+ end
83
+
84
+ def is_submit_method?(method)
85
+ method.to_s.index("button_submit_tag")
86
+ end
87
+
88
+ def strip_method_name(method)
89
+ method.to_s.gsub("button_link_to", "").gsub("button_tag", "").gsub("button_submit_tag", "")
90
+ end
77
91
  end
78
92
  end
79
93
  end
@@ -1,3 +1,3 @@
1
1
  module Css3buttons
2
- VERSION = "0.9.3"
2
+ VERSION = "0.9.4"
3
3
  end
data/readme.md CHANGED
@@ -108,12 +108,39 @@ And, of course, minor groups:
108
108
  You know the drill by now.
109
109
  <% end %>
110
110
 
111
- ## Other stuff
112
111
 
113
- Submit tags are also ushered in with this version. Everything works as it does above, except instead of `button_link_to` it's `button_submit_tag`. Example:
112
+ ## Submit tags, button tags and using icons on form buttons
113
+
114
+ Submit tags were ushered in with version 0.9.2. Everything works as it does above, except instead of `button_link_to` it's `button_submit_tag`. Example:
114
115
 
115
116
  <%= positive_button_submit_tag "Publish" %>
116
117
 
118
+ Keep in mind however, that icons do not work on `<submit>` tags. If you're wanting to include icons in your forms there is also a helper method to insert `<button>` tags instead. The method suffix in this case is `button_tag`. Examples:
119
+
120
+ <%= approve_button_tag "Update profile" %>
121
+ <%= negative_trash_button_tag "Deactivate account" %>
122
+
123
+
124
+ # Formtastic compatibility
125
+
126
+ If you're using
127
+ [formtastic](https://github.com/justinfrench/formtastic), you may
128
+ experience issues with using css3buttons in your forms, due to the
129
+ way the built-in formtastic styles modify default form buttons. In this
130
+ instance, you can insert the following into your
131
+ `formtastic_changes.css` stylesheet.
132
+
133
+ form.formtastic input.button, form.formtastic.button.button {
134
+ height: 25px;
135
+ padding: 0.2em 1em 0.2em 2.5em;
136
+ font-family: sans-serif;
137
+ font-size: 11px;
138
+ margin-left: 5px;
139
+ }
140
+
141
+ CSS Snippet courtesy of [vitobotta](https://github.com/vitobotta).
142
+
143
+
117
144
 
118
145
  # What's missing?
119
146
 
@@ -10,6 +10,8 @@ describe Css3buttons::Helpers::ButtonHelper do
10
10
  @path = "/search/site"
11
11
  end
12
12
 
13
+ #--- basic buttons
14
+
13
15
  it "should create basic buttons" do
14
16
  link = html(button_link_to(@label, @path))
15
17
 
@@ -18,15 +20,23 @@ describe Css3buttons::Helpers::ButtonHelper do
18
20
  link.should_not have_selector("a.#{qualifier}")
19
21
  end
20
22
  end
21
-
22
23
  it "should create basic submit buttons" do
23
24
  button = html(button_submit_tag(@label))
24
-
25
+
25
26
  button.should have_selector("input.button[type='submit']")
26
27
  @qualifiers.each do |qualifier|
27
28
  button.should_not have_selector("input.#{qualifier}")
28
29
  end
29
30
  end
31
+ it "should create basic button tags" do
32
+ button = html(button_tag(@label))
33
+ button.should have_selector("button.button")
34
+ @qualifiers.each do |qualifier|
35
+ button.should_not have_selector("button.#{qualifier}")
36
+ end
37
+ end
38
+
39
+ #--- basic buttons with icons
30
40
 
31
41
  it "should create basic buttons with valid icons" do
32
42
  @icons.each do |icon|
@@ -34,7 +44,15 @@ describe Css3buttons::Helpers::ButtonHelper do
34
44
  link.should have_selector("a.button.icon.#{icon}[href='#{@path}']")
35
45
  end
36
46
  end
37
-
47
+ it "should create basic button tags with valid icons" do
48
+ @icons.each do |icon|
49
+ button = html(send(:"#{icon}_button_tag", @label))
50
+ button.should have_selector("button.button.icon.#{icon}[type='submit']")
51
+ end
52
+ end
53
+
54
+ #--- positive buttons
55
+
38
56
  it "should create positive buttons" do
39
57
  link = html(positive_button_link_to(@label, @path))
40
58
  link.should have_selector("a.button.safe[href='#{@path}']")
@@ -42,7 +60,6 @@ describe Css3buttons::Helpers::ButtonHelper do
42
60
  link.should_not have_selector("a.#{qualifier}") unless qualifier == "safe"
43
61
  end
44
62
  end
45
-
46
63
  it "should create positive submit buttons" do
47
64
  button = html(positive_button_submit_tag(@label))
48
65
  button.should have_selector("input.button.safe[type='submit']")
@@ -50,6 +67,15 @@ describe Css3buttons::Helpers::ButtonHelper do
50
67
  button.should_not have_selector("input.#{qualifier}") unless qualifier == "safe"
51
68
  end
52
69
  end
70
+ it "should create positive button tags" do
71
+ button = html(positive_button_tag(@label))
72
+ button.should have_selector("button.button.safe[type='submit']")
73
+ @qualifiers.each do |qualifier|
74
+ button.should_not have_selector("button.#{qualifier}") unless qualifier == "safe"
75
+ end
76
+ end
77
+
78
+ #--- negative buttons
53
79
 
54
80
  it "should create negative buttons" do
55
81
  link = html(negative_button_link_to(@label, @path))
@@ -58,14 +84,22 @@ describe Css3buttons::Helpers::ButtonHelper do
58
84
  link.should_not have_selector("a.#{qualifier}") unless qualifier == "danger"
59
85
  end
60
86
  end
61
-
62
- it "should create positive submit buttons" do
87
+ it "should create negative submit buttons" do
63
88
  button = html(negative_button_submit_tag(@label))
64
89
  button.should have_selector("input.button.danger[type='submit']")
65
90
  @qualifiers.each do |qualifier|
66
- button.should_not have_selector("a.#{qualifier}") unless qualifier == "danger"
91
+ button.should_not have_selector("input.#{qualifier}") unless qualifier == "danger"
67
92
  end
68
93
  end
94
+ it "should create negative button tags" do
95
+ button = html(negative_button_tag(@label))
96
+ button.should have_selector("button.button.danger[type='submit']")
97
+ @qualifiers.each do |qualifier|
98
+ button.should_not have_selector("button.#{qualifier}") unless qualifier == "danger"
99
+ end
100
+ end
101
+
102
+ #--- positive buttons with icons
69
103
 
70
104
  it "should create positive buttons with valid icons" do
71
105
  @icons.each do |icon|
@@ -76,6 +110,17 @@ describe Css3buttons::Helpers::ButtonHelper do
76
110
  end
77
111
  end
78
112
  end
113
+ it "should create positive button tags with valid icons" do
114
+ @icons.each do |icon|
115
+ button = html(send(:"positive_#{icon}_button_tag", @label))
116
+ button.should have_selector("button.button.safe.icon.#{icon}[type='submit']")
117
+ @qualifiers.each do |qualifier|
118
+ button.should_not have_selector("button.#{qualifier}") unless qualifier == "safe"
119
+ end
120
+ end
121
+ end
122
+
123
+ #--- negative buttons with icons
79
124
 
80
125
  it "should create negative buttons with valid icons" do
81
126
  @icons.each do |icon|
@@ -86,6 +131,17 @@ describe Css3buttons::Helpers::ButtonHelper do
86
131
  end
87
132
  end
88
133
  end
134
+ it "should create negative button tags with valid icons" do
135
+ @icons.each do |icon|
136
+ button = html(send(:"negative_#{icon}_button_tag"))
137
+ button.should have_selector("button.button.danger.icon.#{icon}[type='submit']")
138
+ @qualifiers.each do |qualifier|
139
+ button.should_not have_selector("button.#{qualifier}") unless qualifier == "danger"
140
+ end
141
+ end
142
+ end
143
+
144
+ #--- pill buttons
89
145
 
90
146
  it "should create pill buttons" do
91
147
  link = html(pill_button_link_to(@label, @path))
@@ -94,7 +150,6 @@ describe Css3buttons::Helpers::ButtonHelper do
94
150
  link.should_not have_selector("a.#{qualifier}") unless qualifier == "pill"
95
151
  end
96
152
  end
97
-
98
153
  it "should create pill submit buttons" do
99
154
  button = html(pill_button_submit_tag(@label))
100
155
  button.should have_selector("input.button.pill[type='submit']")
@@ -102,6 +157,15 @@ describe Css3buttons::Helpers::ButtonHelper do
102
157
  button.should_not have_selector("input.#{qualifier}") unless qualifier == "pill"
103
158
  end
104
159
  end
160
+ it "should create pill button tags" do
161
+ button = html(pill_button_tag(@label))
162
+ button.should have_selector("button.button.pill[type='submit']")
163
+ @qualifiers.each do |qualifier|
164
+ button.should_not have_selector("button.#{qualifier}") unless qualifier == "pill"
165
+ end
166
+ end
167
+
168
+ #--- pill buttons with icons
105
169
 
106
170
  it "should create pill buttons with valid icons" do
107
171
  @icons.each do |icon|
@@ -112,30 +176,53 @@ describe Css3buttons::Helpers::ButtonHelper do
112
176
  end
113
177
  end
114
178
  end
179
+ it "should create pill button tags with valid icons" do
180
+ @icons.each do |icon|
181
+ button = html(send(:"pill_#{icon}_button_tag", @label))
182
+ button.should have_selector("button.button.pill.icon.#{icon}[type='submit']")
183
+ @qualifiers.each do |qualifier|
184
+ button.should_not have_selector("button.#{qualifier}") unless qualifier == "pill"
185
+ end
186
+ end
187
+ end
188
+
189
+ #--- positive pill buttons
115
190
 
116
191
  it "should create positive pill buttons" do
117
192
  link = html(positive_pill_button_link_to(@label, @path))
118
193
  link.should have_selector("a.button.pill.safe[href='#{@path}']")
119
194
  link.should_not have_selector("a.danger")
120
195
  end
121
-
122
196
  it "should create positive pill submit buttons" do
123
197
  button = html(positive_pill_button_submit_tag(@label))
124
198
  button.should have_selector("input.button.pill.safe[type='submit']")
125
199
  button.should_not have_selector("input.danger")
126
200
  end
201
+ it "should create positive pill button tags" do
202
+ button = html(positive_pill_button_tag(@label))
203
+ button.should have_selector("button.button.pill.safe[type='submit']")
204
+ button.should_not have_selector("button.danger")
205
+ end
206
+
207
+ #--- negative pill buttons
127
208
 
128
209
  it "should create negative pill buttons" do
129
210
  link = html(negative_pill_button_link_to(@label, @path))
130
211
  link.should have_selector("a.button.pill.danger[href='#{@path}']")
131
212
  link.should_not have_selector("a.safe")
132
213
  end
133
-
134
214
  it "should create negative pill submit buttons" do
135
215
  button = html(negative_pill_button_submit_tag(@label))
136
216
  button.should have_selector("input.button.pill.danger[type='submit']")
137
217
  button.should_not have_selector("input.safe")
138
218
  end
219
+ it "should create negative pill button tags" do
220
+ button = html(negative_pill_button_tag(@label))
221
+ button.should have_selector("button.button.pill.danger[type='submit']")
222
+ button.should_not have_selector("button.safe")
223
+ end
224
+
225
+ #--- positive pill buttons with icons
139
226
 
140
227
  it "should create positive pill buttons with valid icons" do
141
228
  @icons.each do |icon|
@@ -144,14 +231,32 @@ describe Css3buttons::Helpers::ButtonHelper do
144
231
  link.should_not have_selector("a.danger")
145
232
  end
146
233
  end
234
+ it "should create positive pill button tags with valid icons" do
235
+ @icons.each do |icon|
236
+ button = html(send(:"positive_pill_#{icon}_button_tag", @label))
237
+ button.should have_selector("button.button.safe.pill.icon.#{icon}[type='submit']")
238
+ button.should_not have_selector("button.danger")
239
+ end
240
+ end
241
+
242
+ #--- negative pill buttons with icons
147
243
 
148
244
  it "should create negative pill buttons with valid icons" do
149
245
  @icons.each do |icon|
150
246
  link = html(send(:"negative_pill_#{icon}_button_link_to", @label, @path))
151
247
  link.should have_selector("a.button.danger.pill.icon.#{icon}[href='#{@path}']")
152
- link.should_not have_selector("a.positive")
248
+ link.should_not have_selector("a.safe")
153
249
  end
154
250
  end
251
+ it "should create negative pill button tags with valid icons" do
252
+ @icons.each do |icon|
253
+ button = html(send(:"negative_pill_#{icon}_button_tag", @label))
254
+ button.should have_selector("button.button.danger.pill.icon.#{icon}[type='submit']")
255
+ button.should_not have_selector("button.safe")
256
+ end
257
+ end
258
+
259
+ #--- end
155
260
 
156
261
  def html(text)
157
262
  Capybara::string(text)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: css3buttons
3
3
  version: !ruby/object:Gem::Version
4
- hash: 61
4
+ hash: 51
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 3
10
- version: 0.9.3
9
+ - 4
10
+ version: 0.9.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Nicholas Bruning
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-30 00:00:00 +10:00
18
+ date: 2011-05-03 00:00:00 +10:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency