module Tedium::SitePrism::FormDsl

Public Instance Methods

date_field(name, attribute_name = name) click to toggle source
# File lib/tedium/site_prism/form_dsl.rb, line 17
def date_field(name, attribute_name = name)
  define_method "#{name}_field" do
    VirtualDateElement.new(root_element_or_page, attribute_name)
  end
end
datetime_field(name, attribute_name = name) click to toggle source
# File lib/tedium/site_prism/form_dsl.rb, line 23
def datetime_field(name, attribute_name = name)
  define_method "#{name}_field" do
    VirtualDateTimeElement.new(root_element_or_page, attribute_name)
  end
end
field(name, attribute_name = name) click to toggle source
# File lib/tedium/site_prism/form_dsl.rb, line 7
def field(name, attribute_name = name)
  @fields ||= []
  @fields << name
  element "#{name}_field", :input_for_field, attribute_name
end
fields(*names) click to toggle source
# File lib/tedium/site_prism/form_dsl.rb, line 13
def fields(*names)
  names.each { |n| field n }
end
submission(name, fields = nil) click to toggle source
# File lib/tedium/site_prism/form_dsl.rb, line 37
def submission(name, fields = nil)
  fields ||= @fields
  define_method "#{name}" do |*args|
    Array(fields).each_with_index do |field, i|
      send("#{field}_field").set(args[i])
    end
  end
  define_method "#{name}!" do |*args|
    send(name, *args)
    submit!
  end
end
submit_button(role = nil) click to toggle source
# File lib/tedium/site_prism/form_dsl.rb, line 29
def submit_button(role = nil)
  element :submit_button, :submit_button, role

  define_method :submit! do
    submit_button.click
  end
end