Class: JekyllGemini::Command

Inherits:
Jekyll::Command
  • Object
show all
Defined in:
lib/jekyll_gemini/command.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.init_with_program(prog) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/jekyll_gemini/command.rb', line 6

def init_with_program(prog)
  prog.command(:gemini) do |c|
    c.syntax "gemini [options]"
    c.description 'Build the Gemini capsule'

    add_build_options(c)

    c.action do |_, options|
      options["serving"] = false
      process_with_graceful_fail(c, options, self)
    end
  end

  def process(options)
    # Adjust verbosity quickly
    Jekyll.logger.adjust_verbosity(options)

    options = configuration_from_options(options)
    capsule = Capsule.new(options)

    if options.fetch("skip_initial_build", false)
      Jekyll.logger.warn "Build Warning:", "Skipping the initial build." \
                         " This may result in an out-of-date site."
    else
      build(capsule, options)
    end
  end

  def build(site, options)
    t = Time.now
    source      = File.expand_path(options["source"])
    destination = File.expand_path(options["destination"])
    incremental = options["incremental"]
    Jekyll.logger.info "Source:", source
    Jekyll.logger.info "Destination:", destination
    Jekyll.logger.info "Incremental build:",
                       (incremental ? "enabled" : "disabled. Enable with --incremental")
    Jekyll.logger.info "Generating..."
    process_site(site)
    Jekyll.logger.info "", "done in #{(Time.now - t).round(3)} seconds."
  end

  def configuration_from_options(options)
    return options if options.is_a?(Jekyll::Configuration)

    Configuration.build(options)
  end
end

Instance Method Details

#build(site, options) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/jekyll_gemini/command.rb', line 34

def build(site, options)
  t = Time.now
  source      = File.expand_path(options["source"])
  destination = File.expand_path(options["destination"])
  incremental = options["incremental"]
  Jekyll.logger.info "Source:", source
  Jekyll.logger.info "Destination:", destination
  Jekyll.logger.info "Incremental build:",
                     (incremental ? "enabled" : "disabled. Enable with --incremental")
  Jekyll.logger.info "Generating..."
  process_site(site)
  Jekyll.logger.info "", "done in #{(Time.now - t).round(3)} seconds."
end

#configuration_from_options(options) ⇒ Object



48
49
50
51
52
# File 'lib/jekyll_gemini/command.rb', line 48

def configuration_from_options(options)
  return options if options.is_a?(Jekyll::Configuration)

  Configuration.build(options)
end

#process(options) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/jekyll_gemini/command.rb', line 19

def process(options)
  # Adjust verbosity quickly
  Jekyll.logger.adjust_verbosity(options)

  options = configuration_from_options(options)
  capsule = Capsule.new(options)

  if options.fetch("skip_initial_build", false)
    Jekyll.logger.warn "Build Warning:", "Skipping the initial build." \
                       " This may result in an out-of-date site."
  else
    build(capsule, options)
  end
end