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