Module: CapybaraSelect2::Helpers

Defined in:
lib/capybara_select2/helpers.rb

Class Method Summary collapse

Class Method Details

.select2_clear(options) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/capybara_select2/helpers.rb', line 44

def select2_clear(options)
  options = Utils.set_option_aliases(options)
  Utils.validate_options!(options)

  _, container, version = Utils.get_page_container_and_version(options, self)
  remove_option_selector = Selectors.remove_option_selector(version)

  container.all(remove_option_selector).map(&:click)
end

.select2_close(options = {}) ⇒ Object



18
19
20
# File 'lib/capybara_select2/helpers.rb', line 18

def select2_close(options = {})
  page.find(:css, 'body').click
end

.select2_open(options) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/capybara_select2/helpers.rb', line 8

def select2_open(options)
  options = Utils.set_option_aliases(options)
  Utils.validate_options!(options)

  _, container, version = Utils.get_page_container_and_version(options, self)
  opener_selector = Selectors.opener_selector(version)

  container.find(:css, opener_selector).click
end

.select2_search(text, options) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/capybara_select2/helpers.rb', line 22

def select2_search(text, options)
  options = Utils.set_option_aliases(options)
  Utils.validate_options!(options)

  page, _, version = Utils.get_page_container_and_version(options, self)
  search_input_selector = Selectors.search_input_selector(version)

  page.find(:xpath, '//body').find(:css, search_input_selector).set text
end

.select2_select(value, options) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/capybara_select2/helpers.rb', line 32

def select2_select(value, options)
  Utils.validate_options!(options)

  page, _, version = Utils.get_page_container_and_version(options, self)
  option_selector = Selectors.option_selector(version)

  find_options = options.select { |k, _| [:match, :exact_text].include?(k) }
  find_options = find_options.merge(text: value)

  page.find(:xpath, '//body').find(:css, option_selector, **find_options).click
end