Class: Jekyll::Commands::Paginate

Inherits:
Command
  • Object
show all
Defined in:
lib/jekyll/commands/paginate.rb

Class Method Summary collapse

Class Method Details

.config(options) ⇒ Object



27
28
29
30
31
# File 'lib/jekyll/commands/paginate.rb', line 27

def config(options)
  defaults = Configuration[PaginateCommand::DEFAULTS]
  config = configuration_from_options(options)
  Utils.deep_merge_hashes(defaults, config)
end

.init_with_program(prog) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/jekyll/commands/paginate.rb', line 5

def init_with_program(prog)
  prog.command(:paginate) do |c|
    c.version Jekyll::PaginateCommand::VERSION
    c.syntax 'paginate [options]'
    c.description 'Generate pagination templates'

    c.option 'quiet',   '-q', '--quiet', 'Silence output.'
    c.option 'verbose', '-V', '--verbose', 'Print verbose output.'

    c.action do |_, options|
      process(options)
    end
  end
end

.paginate(pages, site) ⇒ Object



43
44
45
46
47
48
49
50
# File 'lib/jekyll/commands/paginate.rb', line 43

def paginate(pages, site)
  t = Time.now
  Jekyll.logger.info "Source:", site.config['source']
  Jekyll.logger.info "Destination:", site.config['paginate_destination']
  Jekyll.logger.info "Paginating..."
  pages.each { |page| PaginateCommand::Pagination.new(page, site).generate }
  Jekyll.logger.info "", "done in #{(Time.now - t).round(3)} seconds."
end

.process(options) ⇒ Object



20
21
22
23
24
25
# File 'lib/jekyll/commands/paginate.rb', line 20

def process(options)
  config = config(options)
  site = site(config)
  pages = target_pages(site)
  paginate(pages, site)
end

.site(config) ⇒ Object



33
34
35
36
37
# File 'lib/jekyll/commands/paginate.rb', line 33

def site(config)
  site = Site.new(config)
  site.read
  site
end

.target_pages(site) ⇒ Object



39
40
41
# File 'lib/jekyll/commands/paginate.rb', line 39

def target_pages(site)
  site.pages.select { |page| page['paginate'] }
end