Class: Ramaze::Helper::BlueForm::Form
- Defined in:
- lib/ramaze/helper/blue_form.rb
Overview
Note that an instance of this class is not thread-safe, so you should modify it only within one thread of execution
Instance Attribute Summary collapse
-
#g ⇒ Object
readonly
Returns the value of attribute g.
Instance Method Summary collapse
- #build(form_errors = {}) ⇒ Object
-
#initialize(options) ⇒ Form
constructor
A new instance of Form.
- #input_checkbox(label, name, checked = false) ⇒ Object (also: #checkbox)
- #input_file(label, name) ⇒ Object (also: #file)
- #input_hidden(name, value = nil) ⇒ Object (also: #hidden)
- #input_password(label, name) ⇒ Object (also: #password)
- #input_radio(label, name, values, options = {}) ⇒ Object (also: #radio)
- #input_submit(value = nil) ⇒ Object (also: #submit)
- #input_text(label, name, value = nil, args = {}) ⇒ Object (also: #text)
- #legend(text) ⇒ Object
- #select(label, name, values, options = {}) ⇒ Object
- #textarea(label, name, value = nil) ⇒ Object
- #to_s ⇒ Object
Constructor Details
Instance Attribute Details
#g ⇒ Object (readonly)
Returns the value of attribute g.
41 42 43 |
# File 'lib/ramaze/helper/blue_form.rb', line 41 def g @g end |
Instance Method Details
#build(form_errors = {}) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/ramaze/helper/blue_form.rb', line 48 def build(form_errors = {}) @form_errors = form_errors @g.form(@form_args) do if block_given? @g.fieldset do yield self end end end end |
#input_checkbox(label, name, checked = false) ⇒ Object Also known as: checkbox
97 98 99 100 101 102 103 104 105 106 |
# File 'lib/ramaze/helper/blue_form.rb', line 97 def input_checkbox(label, name, checked = false) id = id_for(name) args = {:type => :checkbox, :name => name, :class => 'checkbox', :id => id} args[:checked] = 'checked' if checked @g.p do label_for(id, label, name) @g.input(args) end end |
#input_file(label, name) ⇒ Object Also known as: file
137 138 139 140 141 142 143 144 145 |
# File 'lib/ramaze/helper/blue_form.rb', line 137 def input_file(label, name) id = id_for(name) args = {:type => :file, :name => name, :class => 'file', :id => id} @g.p do label_for(id, label, name) @g.input(args) end end |
#input_hidden(name, value = nil) ⇒ Object Also known as:
148 149 150 151 152 153 |
# File 'lib/ramaze/helper/blue_form.rb', line 148 def input_hidden(name, value = nil) args = {:type => :hidden, :name => name} args[:value] = value.to_s unless value.nil? @g.input(args) end |
#input_password(label, name) ⇒ Object Also known as: password
76 77 78 79 80 81 82 83 84 |
# File 'lib/ramaze/helper/blue_form.rb', line 76 def input_password(label, name) id = id_for(name) args = {:type => :password, :name => name, :class => 'text', :id => id} @g.p do label_for(id, label, name) @g.input(args) end end |
#input_radio(label, name, values, options = {}) ⇒ Object Also known as: radio
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/ramaze/helper/blue_form.rb', line 109 def input_radio(label, name, values, = {}) has_checked, checked = .key?(:checked), [:checked] @g.p do values.each_with_index do |(value, o_name), index| o_name ||= value id = id_for("#{name}-#{index}") o_args = {:type => :radio, :value => value, :id => id, :name => name} o_args[:checked] = 'checked' if has_checked && value == checked if error = @form_errors.delete(name.to_s) @g.label(:for => id){ @g.span(:class => :error){ error } @g.input(o_args) @g.out << o_name } else @g.label(:for => id){ @g.input(o_args) @g.out << o_name } end end end end |
#input_submit(value = nil) ⇒ Object Also known as: submit
87 88 89 90 91 92 93 94 |
# File 'lib/ramaze/helper/blue_form.rb', line 87 def input_submit(value = nil) args = {:type => :submit, :class => 'button submit'} args[:value] = value unless value.nil? @g.p do @g.input(args) end end |
#input_text(label, name, value = nil, args = {}) ⇒ Object Also known as: text
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/ramaze/helper/blue_form.rb', line 64 def input_text(label, name, value = nil, args = {}) id = id_for(name) args = args.merge(:type => :text, :name => name, :class => 'text', :id => id) args[:value] = value unless value.nil? @g.p do label_for(id, label, name) @g.input(args) end end |
#legend(text) ⇒ Object
60 61 62 |
# File 'lib/ramaze/helper/blue_form.rb', line 60 def legend(text) @g.legend(text) end |
#select(label, name, values, options = {}) ⇒ Object
166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
# File 'lib/ramaze/helper/blue_form.rb', line 166 def select(label, name, values, = {}) id = id_for(name) multiple, size = .values_at(:multiple, :size) args = {:id => id} args[:multiple] = 'multiple' if multiple args[:size] = (size || multiple || 1).to_i args[:name] = multiple ? "#{name}[]" : name has_selected, selected = .key?(:selected), [:selected] @g.p do label_for(id, label, name) @g.select args do values.each do |value, o_name| o_name ||= value o_args = {:value => value} o_args[:selected] = 'selected' if has_selected && value == selected @g.option(o_args){ o_name } end end end end |
#textarea(label, name, value = nil) ⇒ Object
156 157 158 159 160 161 162 163 164 |
# File 'lib/ramaze/helper/blue_form.rb', line 156 def textarea(label, name, value = nil) id = id_for(name) args = {:name => name, :id => id} @g.p do label_for(id, label, name) @g.textarea(args){ value } end end |
#to_s ⇒ Object
190 191 192 |
# File 'lib/ramaze/helper/blue_form.rb', line 190 def to_s @g.to_s end |