class Hatenablog::Entries

Public Class Methods

new(client, page = 0, fetch = :partial) click to toggle source
# File lib/hatenablog/client.rb, line 212
def initialize(client, page = 0, fetch = :partial)
  @client = client
  @page = page
  @fetch = fetch
end

Public Instance Methods

each(&block) click to toggle source
# File lib/hatenablog/client.rb, line 218
def each(&block)
  return enum_for unless block_given?

  # @type var block: ^(Entry) -> void
  if @fetch == :all
    each_all(&block)
  else
    each_partial(&block)
  end
end

Private Instance Methods

each_all(&block) click to toggle source
# File lib/hatenablog/client.rb, line 231
def each_all(&block)
  feed = nil

  while feed = @client.next_feed(feed)
    feed.entries.each { |entry| block.call(entry) }
  end

  self
end
each_partial(&block) click to toggle source
# File lib/hatenablog/client.rb, line 241
def each_partial(&block)
  feed = nil

  current_page = 0
  while current_page <= @page && feed = @client.next_feed(feed)
    feed.entries.each { |entry| block.call(entry) }
    current_page += 1
  end

  self
end