Module: Capybara::BootstrapDatepicker

Defined in:
lib/capybara-bootstrap-datepicker.rb,
lib/capybara-bootstrap-datepicker/version.rb

Defined Under Namespace

Classes: Picker

Constant Summary collapse

VERSION =
"0.1.0"

Instance Method Summary collapse

Instance Method Details

#select_bootstrap_date(date_input, value) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/capybara-bootstrap-datepicker.rb', line 28

def select_bootstrap_date(date_input, value)
  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.strftime('%b')).click
  picker.find_day(value.day).click

  fail if Date.parse(date_input.value) != value
end

#select_date(value, datepicker: :bootstrap, format: nil, from: nil, xpath: nil, **args) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/capybara-bootstrap-datepicker.rb', line 5

def select_date(value, datepicker: :bootstrap, format: nil, from: nil, xpath: nil, **args)
  fail "Must pass a hash containing 'from' or 'xpath'" if from.nil? && xpath.nil?

  value = Date.parse(value) unless value.respond_to? :to_date

  date_input = xpath ? find(:xpath, xpath, **args) : find_field(from, **args)

  case datepicker
  when :bootstrap
    select_bootstrap_date date_input, value
  else
    select_simple_date date_input, value
  end

  first(:xpath, '//body').click
end

#select_simple_date(date_input, value) ⇒ Object



22
23
24
25
26
# File 'lib/capybara-bootstrap-datepicker.rb', line 22

def select_simple_date(date_input, value)
  value = value.strftime format if format.present?

  date_input.set "#{value}\e"
end