Module: Aranha::Parsers::Html::Node::Default::StringSupport

Defined in:
lib/aranha/parsers/html/node/default/string_support.rb

Instance Method Summary collapse

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

Parameters:

  • node (Nokogiri::XML::Node)
  • xpath (String)

Returns:

  • (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