Module: DataMapper::Form::Elements
- Included in:
- ModelElements
- Defined in:
- lib/dm-forms/elements.rb
Defined Under Namespace
Classes: Proxy
Class Method Summary collapse
-
.button(name, options = {}) ⇒ Object
Generates a button.
-
.capture_elements(model = nil, &block) ⇒ Object
Capture results of elements called within
block. -
.checkbox(name, options = {}) ⇒ Object
Generates a checkbox.
-
.desc(text) ⇒ Object
Generates a description.
-
.fieldset(name, options = {}, &block) ⇒ Object
Generates a fieldset.
-
.file(name, options = {}) ⇒ Object
Generates a file field.
-
.form(name, options = {}, &block) ⇒ Object
Generates a form.
-
.hidden(name, options = {}) ⇒ Object
Generates a hidden field.
-
.hidden_method(method) ⇒ Object
Creates hidden _method, with value of
method. -
.label(value, options = {}) ⇒ Object
Generates a label.
-
.legend(value) ⇒ Object
Generates a legend.
-
.option(value, title) ⇒ Object
Generates an option.
-
.password(name, options = {}) ⇒ Object
Generates a password field.
-
.radio(name, options = {}) ⇒ Object
Generates a radio button.
-
.select(name, options = {}, &block) ⇒ Object
Generates a select field.
-
.submit(name, options = {}) ⇒ Object
Generates a submit button.
-
.tag(name, options = {}, &block) ⇒ Object
Generates a generic HTML
nametag. -
.textarea(name, options = {}, &block) ⇒ Object
Generates a textarea.
-
.textfield(name, options = {}) ⇒ Object
Generates a textfield.
Class Method Details
.button(name, options = {}) ⇒ Object
Generates a button.
182 183 184 185 186 |
# File 'lib/dm-forms/elements.rb', line 182 def name, = {} type = .has_key?(:src) ? :image : :button = { :type => type, :name => name }.merge tag :input, :self_closing => true, :attributes => end |
.capture_elements(model = nil, &block) ⇒ Object
Capture results of elements called within block. Optionally a DataMapper model may be passed, at which point error classes will be applied to invalid elements.
193 194 195 196 |
# File 'lib/dm-forms/elements.rb', line 193 def capture_elements model = nil, &block elements = yield Proxy.new(model) elements.join end |
.checkbox(name, options = {}) ⇒ Object
Generates a checkbox.
117 118 119 120 |
# File 'lib/dm-forms/elements.rb', line 117 def checkbox name, = {} = { :type => :checkbox, :name => name }.merge tag :input, :self_closing => true, :attributes => end |
.desc(text) ⇒ Object
Generates a description.
64 65 66 |
# File 'lib/dm-forms/elements.rb', line 64 def desc text %(\n<p class="description">#{text}</p>) unless text.blank? end |
.fieldset(name, options = {}, &block) ⇒ Object
Generates a fieldset.
91 92 93 94 95 96 |
# File 'lib/dm-forms/elements.rb', line 91 def fieldset name, = {}, &block legend_value = .has_key?(:legend) ? .delete(:legend) : name.humanize.capitalize = { :class => "fieldset-#{name}" }.merge [:value] = "\n" << legend(legend_value) << (.delete(:value) || '') tag :fieldset, :attributes => , &block end |
.file(name, options = {}) ⇒ Object
Generates a file field.
148 149 150 151 |
# File 'lib/dm-forms/elements.rb', line 148 def file name, = {} = { :type => :file, :name => name }.merge tag :input, :self_closing => true, :attributes => end |
.form(name, options = {}, &block) ⇒ Object
Generates a form.
78 79 80 81 82 83 84 85 86 |
# File 'lib/dm-forms/elements.rb', line 78 def form name, = {}, &block = { :method => :post, :id => "form-#{name}" }.merge unless valid_http_verb? old_value = [:value] || '' [:value] = hidden_method([:method]) << old_value [:method] = :post end tag :form, :attributes => , &block end |
.hidden(name, options = {}) ⇒ Object
Generates a hidden field.
125 126 127 128 |
# File 'lib/dm-forms/elements.rb', line 125 def hidden name, = {} = { :type => :hidden, :name => name }.merge tag :input, :self_closing => true, :attributes => end |
.hidden_method(method) ⇒ Object
Creates hidden _method, with value of method.
133 134 135 |
# File 'lib/dm-forms/elements.rb', line 133 def hidden_method method hidden :_method, :value => method end |
.label(value, options = {}) ⇒ Object
Generates a label.
48 49 50 51 52 |
# File 'lib/dm-forms/elements.rb', line 48 def label value, = {} value << ':' value << '<em>*</em>' if .delete :required %(<label for="#{[:for]}">#{value}</label>\n) end |
.legend(value) ⇒ Object
Generates a legend.
57 58 59 |
# File 'lib/dm-forms/elements.rb', line 57 def legend value %(<legend>#{value}</legend>) end |
.option(value, title) ⇒ Object
Generates an option.
71 72 73 |
# File 'lib/dm-forms/elements.rb', line 71 def option value, title %(<option value="#{value}">#{title}</option>\n) end |
.password(name, options = {}) ⇒ Object
Generates a password field.
109 110 111 112 |
# File 'lib/dm-forms/elements.rb', line 109 def password name, = {} = { :type => :password, :name => name }.merge tag :input, :self_closing => true, :attributes => end |
.radio(name, options = {}) ⇒ Object
Generates a radio button.
140 141 142 143 |
# File 'lib/dm-forms/elements.rb', line 140 def radio name, = {} = { :type => :radio, :name => name }.merge tag :input, :self_closing => true, :attributes => end |
.select(name, options = {}, &block) ⇒ Object
Generates a select field.
156 157 158 159 160 161 |
# File 'lib/dm-forms/elements.rb', line 156 def select name, = {}, &block = { :name => name, :value => "\n" }.merge [:value] << capture_elements(&block) if block_given? [:value] << () if .include? :options tag :select, :attributes => end |
.submit(name, options = {}) ⇒ Object
Generates a submit button.
174 175 176 177 |
# File 'lib/dm-forms/elements.rb', line 174 def submit name, = {} = { :type => :submit, :name => name }.merge tag :input, :self_closing => true, :attributes => end |
.tag(name, options = {}, &block) ⇒ Object
Generates a generic HTML name tag. Although this method is generally used internally by dm-forms, you may utilize it directly passing any of the following options.
Options:
:self_closing Wither or not the element should self-close (<br />)
:attributes Hash of attributes such as :type => :textfield
41 42 43 |
# File 'lib/dm-forms/elements.rb', line 41 def tag name, = {}, &block Tag.new(name, , &block).render end |
.textarea(name, options = {}, &block) ⇒ Object
Generates a textarea.
166 167 168 169 |
# File 'lib/dm-forms/elements.rb', line 166 def textarea name, = {}, &block = { :name => name }.merge tag :textarea, :attributes => , &block end |
.textfield(name, options = {}) ⇒ Object
Generates a textfield.
101 102 103 104 |
# File 'lib/dm-forms/elements.rb', line 101 def textfield name, = {} = { :type => :textfield, :name => name }.merge tag :input, :self_closing => true, :attributes => end |