Module: Capybara::BootstrapDatepicker
- Defined in:
- lib/capybara-bootstrap-datepicker.rb,
lib/capybara-bootstrap-datepicker/version.rb
Overview
Adds datepicker interaction facilities to Capybara
Defined Under Namespace
Classes: Picker
Constant Summary collapse
- VERSION =
the current version of the gem
'1.0.2'
Instance Method Summary collapse
-
#select_bootstrap_date(date_input, value:, format: nil) ⇒ Object
Selects a date by simulating human interaction with the datepicker.
-
#select_date(value, datepicker: :bootstrap, format: nil, from: nil, xpath: nil, **args) ⇒ Object
Selects a date by simulating human interaction with the datepicker or filling the input field.
-
#select_simple_date(date_input, value:, format: nil) ⇒ Object
Selects a date by filling the input field.
Instance Method Details
#select_bootstrap_date(date_input, value:, format: nil) ⇒ Object
Selects a date by simulating human interaction with the datepicker
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/capybara-bootstrap-datepicker.rb', line 42 def select_bootstrap_date(date_input, value:, format: nil) date_input.click picker = Picker.new picker.goto_decade_panel picker.navigate_through_decades value.year picker.find_year(value.year).click picker.find_month(value.month).click picker.find_day(value.day).click if format.nil? || format.include?('%d') end |
#select_date(value, datepicker: :bootstrap, format: nil, from: nil, xpath: nil, **args) ⇒ Object
Selects a date by simulating human interaction with the datepicker or filling the input field
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/capybara-bootstrap-datepicker.rb', line 15 def select_date(value, datepicker: :bootstrap, format: nil, from: nil, xpath: nil, **args) raise "Must pass a hash containing 'from' or 'xpath'" if from.nil? && xpath.nil? value = value.respond_to?(:to_date) ? value.to_date : Date.parse(value) date_input = xpath ? find(:xpath, xpath, **args) : find_field(from, **args) case datepicker when :bootstrap select_bootstrap_date(date_input, value:, format:) else select_simple_date(date_input, value:, format:) first(:xpath, '//body').click end end |
#select_simple_date(date_input, value:, format: nil) ⇒ Object
Selects a date by filling the input field
34 35 36 37 38 |
# File 'lib/capybara-bootstrap-datepicker.rb', line 34 def select_simple_date(date_input, value:, format: nil) value = value.strftime format unless format.nil? date_input.set "#{value}\e" end |