Class: Middleman::Cli::Build

Inherits:
Thor
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/middleman-core/cli/build.rb

Overview

The CLI Build class

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#debuggingObject (readonly)

Returns the value of attribute debugging.



10
11
12
# File 'lib/middleman-core/cli/build.rb', line 10

def debugging
  @debugging
end

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


77
78
79
# File 'lib/middleman-core/cli/build.rb', line 77

def exit_on_failure?
  true
end

.shared_instance(verbose = false, instrument = false) ⇒ Middleman::Application

Middleman::Application singleton



84
85
86
87
88
89
# File 'lib/middleman-core/cli/build.rb', line 84

def shared_instance(verbose=false, instrument=false)
  @_shared_instance ||= ::Middleman::Application.server.inst do
    set :environment, :build
    logger(verbose ? 0 : 1, instrument)
  end
end

.shared_rackRack::Test::Session

Rack::Test::Session singleton

Returns:

  • (Rack::Test::Session)


101
102
103
104
105
106
# File 'lib/middleman-core/cli/build.rb', line 101

def shared_rack
  @_shared_rack ||= begin
    mock = ::Rack::MockSession.new(shared_server.to_rack_app)
    ::Rack::Test::Session.new(mock)
  end
end

.shared_serverMiddleman::Application

Middleman::Application class singleton



94
95
96
# File 'lib/middleman-core/cli/build.rb', line 94

def shared_server
  @_shared_server ||= shared_instance.class
end

.source_rootObject

Set the root path to the Middleman::Application’s root



109
110
111
# File 'lib/middleman-core/cli/build.rb', line 109

def source_root
  shared_instance.root
end

Instance Method Details

#buildvoid

This method returns an undefined value.

Core build Thor command



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/middleman-core/cli/build.rb', line 42

def build
  if !ENV["MM_ROOT"]
    raise Thor::Error, "Error: Could not find a Middleman project config, perhaps you are in the wrong folder?"
  end

  # Use Rack::Test for inspecting a running server for output
  require "rack"
  require "rack/test"

  require 'find'

  @debugging = Middleman::Cli::Base.respond_to?(:debugging) && Middleman::Cli::Base.debugging
  @had_errors = false

  self.class.shared_instance(options["verbose"], options["instrument"])

  self.class.shared_rack

  opts = {}
  opts[:glob]  = options["glob"]  if options.has_key?("glob")
  opts[:clean] = options["clean"] if options.has_key?("clean")

  action GlobAction.new(self, opts)

  if @had_errors && !@debugging
    self.shell.say "There were errors during this build, re-run with --verbose to see the full exception."
  end

  exit(1) if @had_errors

  self.class.shared_instance.run_hook :after_build, self
end