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.
@@ -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: