Module: Aranha::Parsers::Html::Node::Default::StringSupport
- Defined in:
- lib/aranha/parsers/html/node/default/string_support.rb
Instance Method Summary collapse
- #quoted_value(node, xpath) ⇒ Object
- #regxep(node, xpath, pattern) ⇒ Object
- #string_recursive_optional_value(node, xpath) ⇒ Object
-
#string_recursive_value(node, xpath, required = true) ⇒ Object
rubocop:disable Style/OptionalBooleanParameter.
- #string_value(node, xpath) ⇒ String
Instance Method Details
#quoted_value(node, xpath) ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/aranha/parsers/html/node/default/string_support.rb', line 9 def quoted_value(node, xpath) s = string_value(node, xpath) return '' unless s m = /"([^"]+)"/.match(s) return m[1] if m '' end |
#regxep(node, xpath, pattern) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/aranha/parsers/html/node/default/string_support.rb', line 19 def regxep(node, xpath, pattern) s = string_value(node, xpath) m = pattern.match(s) return m if m raise "Pattern \"#{pattern}\" not found in string \"#{s}\"" end |
#string_recursive_optional_value(node, xpath) ⇒ Object
49 50 51 |
# File 'lib/aranha/parsers/html/node/default/string_support.rb', line 49 def string_recursive_optional_value(node, xpath) string_recursive_value(node, xpath, false) end |
#string_recursive_value(node, xpath, required = true) ⇒ Object
rubocop:disable Style/OptionalBooleanParameter
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/aranha/parsers/html/node/default/string_support.rb', line 35 def string_recursive_value(node, xpath, required = true) # rubocop:disable Style/OptionalBooleanParameter root = node_value(node, xpath) if root.blank? return nil unless required raise "No node found (Xpath: #{xpath})" end result = string_recursive(root) return result if result.present? return nil unless required raise "String blank (Xpath: #{xpath})" end |
#string_value(node, xpath) ⇒ String
30 31 32 33 |
# File 'lib/aranha/parsers/html/node/default/string_support.rb', line 30 def string_value(node, xpath) found = node_value(node, xpath) found ? sanitize_string(found.text) : '' end |