Sha256: feef12e219e3b71e8c53416ebff5133a19d107969d8ec07913ebb7e89a2af687

Contents?: true

Size: 782 Bytes

Versions: 3

Compression:

Stored size: 782 Bytes

Contents

class EntryParser

  def initialize(first_line, second_line)
    @first_line  = first_line
    @second_line = second_line
  end

  def parse
    number   = @first_line.search("[@class='title']")[0].inner_html.sub(".","").to_i
    link     = LinkInfoParser.new(@first_line.search("[@class='title']")[1]).parse
    voting   = VotingInfoParser.new(@first_line.search("td/center/a"), @second_line.search("[@class='subtext']")[0]).parse
    user     = UserInfoParser.new(@second_line.search("[@class='subtext']")[0]).parse
    comments = CommentsInfoParser.new(@second_line.search("[@class='subtext']")[0]).parse
    time     = TimeInfoParser.new(@second_line.search("[@class='subtext']").children[3]).parse
    return Entry.new(number, link, voting, user, comments, time)
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ruby-hackernews-1.2.0 lib/ruby-hackernews/services/parsers/entry_parser.rb
ruby-hackernews-1.1.3 lib/ruby-hackernews/services/parsers/entry_parser.rb
ruby-hackernews-1.1.2 lib/ruby-hackernews/services/parsers/entry_parser.rb