rocketeer 0.5.1 → 0.6.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.
- data/lib/rocketeer/helpers/form.rb +51 -8
- data/lib/rocketeer/version.rb +1 -1
- metadata +1 -1
@@ -35,7 +35,7 @@ module Rocketeer
|
|
35
35
|
# @return [String]
|
36
36
|
#
|
37
37
|
def label(text, options = {})
|
38
|
-
options[:for] =
|
38
|
+
options[:for] = _id(options[:for]) if options[:for]
|
39
39
|
"<label#{HTML.attributes(options)}>#{text}</label>"
|
40
40
|
end
|
41
41
|
|
@@ -52,10 +52,17 @@ module Rocketeer
|
|
52
52
|
#
|
53
53
|
def input_field(name, options = {})
|
54
54
|
options = {
|
55
|
-
:id => _name(name).to_s,
|
56
55
|
:name => _name(name).to_s
|
57
56
|
}.merge(options)
|
58
57
|
|
58
|
+
# If the ID is not set, use the field name
|
59
|
+
if !options.key? :id
|
60
|
+
options[:id] = _id(name).to_s
|
61
|
+
end
|
62
|
+
|
63
|
+
# Remove the ID if it's false
|
64
|
+
options.delete(:id) if options[:id] === false
|
65
|
+
|
59
66
|
"<input#{HTML.attributes(options)}>"
|
60
67
|
end
|
61
68
|
|
@@ -118,7 +125,7 @@ module Rocketeer
|
|
118
125
|
#
|
119
126
|
def select_box(name, rows, selected = nil)
|
120
127
|
name = _name(name)
|
121
|
-
html = ["<select name=\"#{name.to_s}\" id=\"#{name.to_s}\">"]
|
128
|
+
html = ["<select name=\"#{name.to_s}\" id=\"#{_id(name).to_s}\">"]
|
122
129
|
|
123
130
|
rows.each do |row|
|
124
131
|
if row[1] == selected
|
@@ -133,6 +140,34 @@ module Rocketeer
|
|
133
140
|
return html.join("\n")
|
134
141
|
end
|
135
142
|
|
143
|
+
##
|
144
|
+
# Checkbox
|
145
|
+
#
|
146
|
+
# @param [Mixed] name
|
147
|
+
# @param [Hash] options
|
148
|
+
#
|
149
|
+
# @return [String]
|
150
|
+
#
|
151
|
+
# @since 0.6
|
152
|
+
#
|
153
|
+
def checkbox(name, options = {})
|
154
|
+
input_field name, options.merge({ :type => 'checkbox' })
|
155
|
+
end
|
156
|
+
|
157
|
+
##
|
158
|
+
# Radio button
|
159
|
+
#
|
160
|
+
# @param [Mixed] name
|
161
|
+
# @param [Hash] options
|
162
|
+
#
|
163
|
+
# @return [String]
|
164
|
+
#
|
165
|
+
# @since 0.6
|
166
|
+
#
|
167
|
+
def radio_button(name, options = {})
|
168
|
+
input_field name, options.merge({ :type => 'radio', :id => false })
|
169
|
+
end
|
170
|
+
|
136
171
|
##
|
137
172
|
# Text area builder
|
138
173
|
#
|
@@ -146,7 +181,7 @@ module Rocketeer
|
|
146
181
|
#
|
147
182
|
def textarea(name, options = {})
|
148
183
|
options = {
|
149
|
-
:id =>
|
184
|
+
:id => _id(name).to_s,
|
150
185
|
:name => _name(name).to_s
|
151
186
|
}.merge(options)
|
152
187
|
|
@@ -177,11 +212,19 @@ module Rocketeer
|
|
177
212
|
|
178
213
|
private
|
179
214
|
def _name(name)
|
180
|
-
if name.
|
181
|
-
name = "#{name[0]}[#{name[1]}]"
|
182
|
-
|
183
|
-
|
215
|
+
if name.is_a?(Array)
|
216
|
+
return name = "#{name[0]}[#{name[1]}]"
|
217
|
+
end
|
218
|
+
|
219
|
+
name
|
220
|
+
end
|
221
|
+
|
222
|
+
def _id(name)
|
223
|
+
if name.is_a?(Array)
|
224
|
+
return "#{name[0]}_#{name[1]}"
|
184
225
|
end
|
226
|
+
|
227
|
+
name
|
185
228
|
end
|
186
229
|
end
|
187
230
|
end
|
data/lib/rocketeer/version.rb
CHANGED