Sha256: fdf697774944abc49a52a5952a78fab6d595b25e054eaed2993a4dbde4b99309

Contents?: true

Size: 1.82 KB

Versions: 18

Compression:

Stored size: 1.82 KB

Contents

require 'thor/group'

module Padrino
  module Generators
    ##
    # This class bootstrap +config/boot+ and perform
    # +Padrino::Generators.load_components!+ for handle 3rd party generators.
    #
    class Cli < Thor::Group

      include Thor::Actions

      class_option :root, :desc => "The root destination", :aliases => '-r', :default => ".", :type => :string
      class_option :help, :type => :boolean, :desc => "Show help usage"

      ##
      # We need to try to load boot because some of our app dependencies maybe have
      # custom generators, so is necessary know who are.
      #
      def load_boot
        begin
          ENV['PADRINO_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 'padrino-support'
          end
        rescue StandardError => e
          puts "=> Problem loading #{boot}"
          puts ["=> #{e.message}", *e.backtrace].join("\n  ")
        ensure
          ENV.delete('BUNDLE_GEMFILE')
          ENV.delete('PADRINO_LOG_LEVEL')
        end
      end

      ##
      # Loads the components available for all generators.
      #
      def setup
        Padrino::Generators.load_components!

        generator_kind  = ARGV.delete_at(0).to_s.downcase.to_sym if ARGV[0].present?
        generator_class = Padrino::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 (#{Padrino::Generators.mappings.keys.join(", ")})"
        end
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
padrino-gen-0.12.9 lib/padrino-gen/generators/cli.rb
padrino-gen-0.12.8.1 lib/padrino-gen/generators/cli.rb
padrino-gen-0.13.3 lib/padrino-gen/generators/cli.rb
padrino-gen-0.12.8 lib/padrino-gen/generators/cli.rb
padrino-gen-0.12.7 lib/padrino-gen/generators/cli.rb
padrino-gen-0.12.6 lib/padrino-gen/generators/cli.rb
padrino-gen-0.13.2 lib/padrino-gen/generators/cli.rb
padrino-gen-0.13.1 lib/padrino-gen/generators/cli.rb
padrino-gen-0.13.1.beta1 lib/padrino-gen/generators/cli.rb
padrino-gen-0.13.0 lib/padrino-gen/generators/cli.rb
padrino-gen-0.13.0.beta3 lib/padrino-gen/generators/cli.rb
padrino-gen-0.13.0.beta2 lib/padrino-gen/generators/cli.rb
padrino-gen-0.12.5 lib/padrino-gen/generators/cli.rb
padrino-gen-0.13.0.beta1 lib/padrino-gen/generators/cli.rb
padrino-gen-0.12.4 lib/padrino-gen/generators/cli.rb
padrino-gen-0.12.3 lib/padrino-gen/generators/cli.rb
padrino-gen-0.12.2 lib/padrino-gen/generators/cli.rb
padrino-gen-0.12.1 lib/padrino-gen/generators/cli.rb