class Justicecz::Html::ResultLine

Public Class Methods

line(result_line) click to toggle source
# File lib/justicecz/html/result_line.rb, line 9
def self.line(result_line)
  new(result_line).line
end
new(result_line) click to toggle source
# File lib/justicecz/html/result_line.rb, line 4
def initialize(result_line)
  @result_line = result_line
  @company = ::Justicecz::Entities::Company.new
end

Public Instance Methods

line() click to toggle source
# File lib/justicecz/html/result_line.rb, line 13
def line
  return nil if headers.empty?
  parse_line
  @company
end

Private Instance Methods

headers() click to toggle source
# File lib/justicecz/html/result_line.rb, line 42
def headers
  @result_line.search('th')
end
parse_line() click to toggle source
# File lib/justicecz/html/result_line.rb, line 21
def parse_line
  headers.each_with_index do |element, index|
    header = to_header(element)
    key = ::Justicecz::Misc::ParamsLookup.by_value(header)
    data = element.next_element
    @company.public_send("#{key}=", to_data(data))
  end
end
to_data(element) click to toggle source
# File lib/justicecz/html/result_line.rb, line 34
def to_data(element)
  data = element.children.map(&:text).map do |text|
    text.gsub(/\t|\n/, '').strip
  end.reject(&:empty?)
  @company.misc = data.slice(1..-1).join(', ') if data.slice(1..-1).count.positive?
  data.first
end
to_header(element) click to toggle source
# File lib/justicecz/html/result_line.rb, line 30
def to_header(element)
  element.children.text.gsub(/:$/, '')
end