Module: Tedium::SitePrism::FormDsl

Defined in:
lib/tedium/site_prism/form_dsl.rb

Instance Method Summary collapse

Instance Method Details

#date_field(name, attribute_name = name) ⇒ Object



17
18
19
20
21
# 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) ⇒ Object



23
24
25
26
27
# 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) ⇒ Object



7
8
9
10
11
# 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) ⇒ Object



13
14
15
# File 'lib/tedium/site_prism/form_dsl.rb', line 13

def fields(*names)
  names.each { |n| field n }
end

#submission(name, fields = nil) ⇒ Object



37
38
39
40
41
42
43
44
45
# 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
    submit!
  end
end

#submit_button(role = nil) ⇒ Object



29
30
31
32
33
34
35
# 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