Sha256: a910a7e135aa55f6954e6c24a8106cd4d738fd2e1bb6e1954c0266eb30d5799f

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

class Entry

  attr_reader :number
  attr_reader :link
  attr_reader :voting
  attr_reader :user

  def initialize(number, link, voting, user, comments, time)
    @number   = number
    @link     = link
    @voting   = voting
    @user     = user    
    @time     = time
    @comments_info = comments
  end

  def comments
    unless @comments
      @comments = CommentService.new.get_comments(@comments_info.page)
    end
    return @comments
  end

  def self.all(pages = 1)
    return EntryService.new.get_entries(pages)
  end

  def self.newest(pages = 1)
    return EntryService.new.get_new_entries(pages)
  end

  def self.questions(pages = 1)
    return EntryService.new.get_questions(pages)
  end

  def self.jobs(pages = 1)
    return EntryService.new.get_jobs(pages)
  end

  def time
    return @time.time
  end

  def id
    return @comments_info ? @comments_info.id : nil
  end

  def comments_count
    return @comments_info.count
  end

  def write_comment(text)
    return CommentService.new.write_comment(@comments_info.page, text)
  end

  def self.submit(*args)
    return EntryService.new.submit(*args)
  end

  def upvote
    return VotingService.new.vote(@voting.upvote)
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ruby-hackernews-1.1.2 lib/ruby-hackernews/domain/entry/entry.rb