Module: Tedium::SitePrism::FormDsl
- Defined in:
- lib/tedium/site_prism/form_dsl.rb
Instance Method Summary collapse
- #date_field(name, attribute_name = name) ⇒ Object
- #datetime_field(name, attribute_name = name) ⇒ Object
- #field(name, attribute_name = name) ⇒ Object
- #fields(*names) ⇒ Object
- #submission(name, fields = nil) ⇒ Object
- #submit_button(role = nil) ⇒ Object
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 (role = nil) element :submit_button, :submit_button, role define_method :submit! do .click end end |