class Tennpipes::Generators::Cli

This class bootstrap config/boot and perform Tennpipes::Generators.load_components! for handle 3rd party generators.

Public Instance Methods

load_boot() click to toggle source

We need to try to load boot because some of our app dependencies maybe have custom generators, so is necessary know who are.

# File lib/tennpipes-init/generators/cli.rb, line 20
def load_boot
  begin
    ENV['TENNPIPES_LOG_LEVEL'] ||= 'test'
    ENV['BUNDLE_GEMFILE'] = File.join(options[:root], 'Gemfile') if options[:root]
    boot = options[:root] ? File.join(options[:root], 'config/boot.rb') : 'config/boot.rb'
    if File.exist?(boot)
      require File.expand_path(boot)
    else
      require 'tennpipes-assist'
    end
  rescue StandardError => e
    puts "=> Problem loading #{boot}"
    puts ["=> #{e.message}", *e.backtrace].join("\n  ")
  ensure
    ENV.delete('BUNDLE_GEMFILE')
    ENV.delete('TENNPIPES_LOG_LEVEL')
  end
end
setup() click to toggle source

Loads the components available for all generators.

# File lib/tennpipes-init/generators/cli.rb, line 42
def setup
  Tennpipes::Generators.load_components!

  generator_kind  = ARGV.delete_at(0).to_s.downcase.to_sym if ARGV[0].present?
  generator_class = Tennpipes::Generators.mappings[generator_kind]

  if generator_class
    args = ARGV.empty? && generator_class.require_arguments? ? ['-h'] : ARGV
    generator_class.start(args)
  else
    puts "Please specify generator to use (#{Tennpipes::Generators.mappings.keys.join(", ")})"
  end
end