Module: Pageboy

Defined in:
lib/pageboy.rb,
lib/pageboy/page.rb,
lib/pageboy/config.rb,
lib/pageboy/version.rb,
lib/pageboy/collator.rb,
lib/pageboy/page_turner/base.rb,
lib/pageboy/page_turner/array.rb,
lib/pageboy/page_turner/link_header.rb

Defined Under Namespace

Modules: Config, PageTurner Classes: Collator, Page

Constant Summary collapse

VERSION =
'0.1.1'

Class Method Summary collapse

Class Method Details

.each(target, opts = {}, &block) ⇒ Object



17
18
19
20
# File 'lib/pageboy.rb', line 17

def self.each(target, opts={}, &block)
  page_turner = paginate(target, opts)
  Pageboy::Collator.new(page_turner).each(&block)
end

.map(target, opts = {}, &block) ⇒ Object



22
23
24
25
# File 'lib/pageboy.rb', line 22

def self.map(target, opts={}, &block)
  page_turner = paginate(target, opts)
  Pageboy::Collator.new(page_turner).map(&block)
end

.paginate(target, opts = {}) ⇒ Object



8
9
10
11
12
13
14
15
# File 'lib/pageboy.rb', line 8

def self.paginate(target, opts={})
  Pageboy::Config.turners.each_pair do |page_turner_class, matchers|
    matchers.each do |matcher|
      return page_turner_class.new(target, opts) if matcher.call(target)
    end
  end
  raise "could not find suitable PageTurner for #{target}"
end

.register_page_turner(klass, &block) ⇒ Object



27
28
29
30
# File 'lib/pageboy.rb', line 27

def self.register_page_turner(klass, &block)
  Pageboy::Config.turners[klass] ||= []
  Pageboy::Config.turners[klass] << block
end