Parent

Files

Jammit::CommandLine

The @CommandLine@ is able to compress, pre-package, and pre-gzip all the assets specified in the configuration file, in order to avoid an initial round of slow requests after a fresh deployment.

Constants

BANNER

Public Class Methods

new() click to toggle source

The @Jammit::CommandLine@ runs from the contents of @ARGV@.

# File lib/jammit/command_line.rb, line 26
def initialize
  parse_options
  ensure_configuration_file
  Jammit.package!(@options)
end

Private Instance Methods

ensure_configuration_file() click to toggle source

Make sure that we have a readable configuration file. The @jammit@ command can't run without one.

# File lib/jammit/command_line.rb, line 37
def ensure_configuration_file
  config = @options[:config_path]
  return true if File.exists?(config) && File.readable?(config)
  puts "Could not find the asset configuration file \"#{config}\""
  exit(1)
end
parse_options() click to toggle source

Uses @OptionParser@ to grab the options: --output, --config, and --base-url...

# File lib/jammit/command_line.rb, line 46
def parse_options
  @options = {
    :config_path    => Jammit::DEFAULT_CONFIG_PATH,
    :output_folder  => nil,
    :base_url       => nil,
    :force          => false
  }
  @option_parser = OptionParser.new do |opts|
    opts.on('-o', '--output PATH', 'output folder for packages (default: "public/assets")') do |output_folder|
      @options[:output_folder] = output_folder
    end
    opts.on('-c', '--config PATH', 'path to assets.yml (default: "config/assets.yml")') do |config_path|
      @options[:config_path] = config_path
    end
    opts.on('-u', '--base-url URL', 'base URL for MHTML (ex: "http://example.com")') do |base_url|
      @options[:base_url] = base_url
    end
    opts.on('-f', '--force', 'force a rebuild of all assets') do |force|
      @options[:force] = force
    end
    opts.on('-p', '--packages LIST', 'list of packages to build (ex: "core,ui", default: all)') do |package_names|
      @options[:package_names] = package_names.split(/,\s*/).map {|n| n.to_sym }
    end
    opts.on('-P', '--public-root PATH', 'path to public assets (default: "public")') do |public_root|
      puts "Option for PUBLIC_ROOT"
      @options[:public_root] = public_root
    end
    opts.on_tail('-v', '--version', 'display Jammit version') do
      puts "Jammit version #{Jammit::VERSION}"
      exit
    end
  end
  @option_parser.banner = BANNER
  @option_parser.parse!(ARGV)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.