class Rextract::Parser

Attributes

content[R]
doc[R]
opts[R]

Public Class Methods

new(content, *opts) click to toggle source
# File lib/rextract/parser.rb, line 7
def initialize(content, *opts)
  @opts = opts
  case content
  when content.respond_to?(:parser) && content.respond_to?(:html_body)
    @doc     = content.parser
    @content = content.html_body
  when content.respond_to?(:body)
    @doc     = content
    @content = content.body
  else
    @doc     = Nokogiri::HTML(content.to_s)
    @content = content.to_s
  end
end

Public Instance Methods

extract(regex) click to toggle source
# File lib/rextract/parser.rb, line 22
def extract(regex)
  @content.scan(regex).flatten.first
end
parse() click to toggle source
# File lib/rextract/parser.rb, line 30
def parse
  result = {}
  parsing_methods.each do |method|
    key = method.to_s.scan(/parse_(\w*)/).flatten.first.to_sym
    result[key] = self.send(method.to_sym)
  end
  result
end
parsing_methods() click to toggle source
# File lib/rextract/parser.rb, line 26
def parsing_methods
  (self.methods - self.class.superclass.methods).collect{|m| m if m =~ /parse_/}.compact
end