class SubstitutionContext
Public Class Methods
new()
click to toggle source
# File lib/rails/dom/testing/assertions/selector_assertions/substitution_context.rb, line 2 def initialize @substitute = '?' @regexes = [] end
Public Instance Methods
match(matches, attribute, substitution_id)
click to toggle source
# File lib/rails/dom/testing/assertions/selector_assertions/substitution_context.rb, line 13 def match(matches, attribute, substitution_id) matches.find_all { |node| node[attribute] =~ @regexes[substitution_id] } end
substitute!(selector, values)
click to toggle source
# File lib/rails/dom/testing/assertions/selector_assertions/substitution_context.rb, line 7 def substitute!(selector, values) while !values.empty? && substitutable?(values.first) && selector.index(@substitute) selector.sub! @substitute, substitution_id_for(values.shift) end end
Private Instance Methods
substitutable?(value)
click to toggle source
# File lib/rails/dom/testing/assertions/selector_assertions/substitution_context.rb, line 27 def substitutable?(value) value.is_a?(String) || value.is_a?(Regexp) end
substitution_id_for(value)
click to toggle source
# File lib/rails/dom/testing/assertions/selector_assertions/substitution_context.rb, line 18 def substitution_id_for(value) if value.is_a?(Regexp) @regexes << value @regexes.size - 1 else value end.inspect # Nokogiri doesn't like arbitrary values without quotes, hence inspect. end