class Weaver::Form

Public Class Methods

new(page, anchors, options = {}, &block) click to toggle source
# 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

Public Instance Methods

generate() click to toggle source
# 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_script() click to toggle source
# 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