rocketeer 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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