Class: Weaver::Form

Inherits:
Object
  • Object
show all
Defined in:
lib/weaver/element_types/form.rb

Instance Method Summary collapse

Constructor Details

#initialize(page, anchors, options = {}, &block) ⇒ Form

Returns a new instance of Form.



6
7
8
9
10
11
12
# File 'lib/weaver/element_types/form.rb', line 6

def initialize(page, anchors, options = {}, &block)
  @formName = options[:id] || page.create_anchor('form')

  @form_element = FormElements.new(page, anchors, @formName, options)

  @form_element.instance_eval(&block)
end

Instance Method Details

#generateObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/weaver/element_types/form.rb', line 25

def generate
  inner = @form_element.generate
  formName = @formName
  options = @form_element.options

  elem = Elements.new(@page, @anchors)
  elem.instance_eval do
    form_opts = {
      id: formName,
      role: 'form'
    }

    form_opts[:action] = options[:action] if options[:action]
    form_opts[:method] = options[:method] if options[:method]
    form_opts[:class] = options[:class] if options[:class]

    method_missing :form, form_opts do
      text inner
    end
  end

  elem.generate
end

#generate_scriptObject



14
15
16
17
18
19
20
21
22
23
# File 'lib/weaver/element_types/form.rb', line 14

def generate_script
  <<~SCRIPT
    function get_#{@formName}_object()
    {
    	var object = {}
    #{@form_element.scripts.join "\n"}
    	return object;
    }
  SCRIPT
end