Module: Merb::Helpers::Form

Defined in:
lib/merb_helpers_monkey.rb,
lib/merb_helpers_monkey.rb

Overview

– merb-helpers-1.0/lib/merb-helpers/helper.rb ++

Instance Method Summary collapse

Instance Method Details

#_radio_button_origObject



19
# File 'lib/merb_helpers_monkey.rb', line 19

alias _radio_button_orig radio_button

#fields_for(name, attrs = {}, &blk) ⇒ Object

– def fields_for(name, attrs = {}, &blk)

attrs ||= {}
with_form_context(name, attrs.delete(:builder)) do
  capture(&blk)
end

end ++



168
169
170
171
172
173
# File 'lib/merb_helpers_monkey.rb', line 168

def fields_for(name, attrs = {}, &blk)
  attrs ||= {}
  with_form_context(name, attrs.delete(:builder), attrs.delete(:index_by)) do
    capture(&blk)
  end
end

#fieldset_for(name, attrs = {}, &blk) ⇒ Object

– def fieldset_for(name, attrs = {}, &blk)

with_form_context(name, attrs.delete(:builder), attrs.delete(:index_by)) do
  current_form_context.fieldset(attrs, &blk)
end

end ++



182
183
184
185
186
# File 'lib/merb_helpers_monkey.rb', line 182

def fieldset_for(name, attrs = {}, &blk)
  with_form_context(name, attrs.delete(:builder)) do
    current_form_context.fieldset(attrs, &blk)
  end
end

#form_for(name, attrs = {}, &blk) ⇒ Object

– def form_for(name, attrs = {}, &blk)

with_form_context(name, attrs.delete(:builder)) do
  current_form_context.form(attrs, &blk)
end

end ++



154
155
156
157
158
# File 'lib/merb_helpers_monkey.rb', line 154

def form_for(name, attrs = {}, &blk)
  with_form_context(name, attrs.delete(:builder), attrs.delete(:index_by)) do
    current_form_context.form(attrs, &blk)
  end
end

#radio_button(*args) ⇒ Object



21
22
23
24
25
26
# File 'lib/merb_helpers_monkey.rb', line 21

def radio_button(*args)
  if (opts = args.last).is_a?(Hash)
    opts[:checked] = "checked" if opts.delete(:checked)
  end
  _radio_button_orig(*args)
end

#with_form_context(name, builder, index_by = nil) ⇒ Object

– def with_form_context(name, builder)

form_contexts.push(_new_form_context(name, builder))
ret = yield
form_contexts.pop
ret

end ++



135
136
137
138
139
140
141
142
143
144
145
# File 'lib/merb_helpers_monkey.rb', line 135

def with_form_context(name, builder, index_by=nil)
  form_contexts.push(c = _new_form_context(name, builder))
  if index_by
    c.instance_variable_set("@index_by", index_by) if index_by
    index = c.instance_variable_get("@obj").__send__(index_by)
    c.instance_variable_set("@index", index)
  end
  ret = yield
  form_contexts.pop
  ret
end