Module: Capybara::Pagemap::Select
- Included in:
- Capybara::Pagemap
- Defined in:
- lib/capybara/pagemap/select.rb
Overview
Select build methods for selectable DOM elements
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #select_getter_build_and_send(method_name, _args, _block) ⇒ Object
- #select_input_build_and_send(method_name, _args, _block) ⇒ Object
- #select_method_missing(method_name, args, block) ⇒ Object
- #select_opt_build_and_send(method_name, args, _block) ⇒ Object
- #select_respond_to_missing?(method_name, _include_private = false) ⇒ Boolean
- #select_validator_for(node) ⇒ Object
- #select_value_build_and_send(method_name, args, _block) ⇒ Object
Instance Method Details
#select_getter_build_and_send(method_name, _args, _block) ⇒ Object
43 44 45 46 47 |
# File 'lib/capybara/pagemap/select.rb', line 43 def select_getter_build_and_send(method_name, _args, _block) return unless self.class.node_definitions[method_name.to_sym] build_select_getter(method_name) send(method_name) end |
#select_input_build_and_send(method_name, _args, _block) ⇒ Object
25 26 27 28 29 |
# File 'lib/capybara/pagemap/select.rb', line 25 def select_input_build_and_send(method_name, _args, _block) return unless /(?<key>.*)_input$/ =~ method_name && self.class.node_definitions[key.to_sym] build_select_input(key) send(method_name) end |
#select_method_missing(method_name, args, block) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/capybara/pagemap/select.rb', line 18 def select_method_missing(method_name, args, block) select_input_build_and_send(method_name, args, block) || select_opt_build_and_send(method_name, args, block) || select_value_build_and_send(method_name, args, block) || select_getter_build_and_send(method_name, args, block) end |
#select_opt_build_and_send(method_name, args, _block) ⇒ Object
31 32 33 34 35 |
# File 'lib/capybara/pagemap/select.rb', line 31 def select_opt_build_and_send(method_name, args, _block) return unless /(?<key>.*)_select$/ =~ method_name && self.class.node_definitions[key.to_sym] && self.class.node_definitions[key.to_sym][:type] == :select build_select_opt(key) send(method_name, args.first) end |
#select_respond_to_missing?(method_name, _include_private = false) ⇒ Boolean
49 50 51 52 53 54 |
# File 'lib/capybara/pagemap/select.rb', line 49 def select_respond_to_missing?(method_name, _include_private = false) /(.*)_input$/ =~ method_name || /(.*)_select$/ =~ method_name || /(.*)_select_by$/ =~ method_name || self.class.node_definitions[(Regexp.last_match(1) || method_name).to_sym] end |
#select_validator_for(node) ⇒ Object
14 15 16 |
# File 'lib/capybara/pagemap/select.rb', line 14 def select_validator_for(node) !send("#{node}_select").nil? end |
#select_value_build_and_send(method_name, args, _block) ⇒ Object
37 38 39 40 41 |
# File 'lib/capybara/pagemap/select.rb', line 37 def select_value_build_and_send(method_name, args, _block) return unless /(?<key>.*)_select_by$/ =~ method_name && self.class.node_definitions[key.to_sym] && self.class.node_definitions[key.to_sym][:type] == :select build_select_by(key) send(method_name, args.first) end |