rocketeer 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -35,7 +35,7 @@ module Rocketeer
35
35
  # @return [String]
36
36
  #
37
37
  def label(text, options = {})
38
- options[:for] = _name(options[:for]) if 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 => _name(name).to_s,
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.class == Array
181
- name = "#{name[0]}[#{name[1]}]"
182
- else
183
- name
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
@@ -18,5 +18,5 @@
18
18
  #
19
19
 
20
20
  module Rocketeer
21
- VERSION = "0.5.1"
21
+ VERSION = "0.6.0"
22
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocketeer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: