Sha256: 4752615a7a400a83dd6ef1d3f7a70f2ceee040dd48f0e37b8ca00f9e2b1cacac

Contents?: true

Size: 1.94 KB

Versions: 15

Compression:

Stored size: 1.94 KB

Contents

# Required by script/jax in a Jax (non-Rails) project.
require 'jax'

module Jax
  module Commands
    class << self
      def setup_generator_invocation
        require APP_PATH
        require 'rails/generators'
        Dir.chdir(::Rails.application.root)
        
        def (::Rails::Generators::Base).banner
         "jax generate #{namespace.sub(/^jax:/,'')} #{self.arguments.map{ |a| a.usage }.join(' ')} [options]".gsub(/\s+/, ' ')
        end

        ::Rails.application.initialize!
      end
      
      def invoke_jax_generator(name, args, options = {})
        ::Rails::Generators.invoke name, args, options
      end
      
      def invoke!(*args)
        case command = args.shift
          when 'package'
            puts "The `jax package` command has been deprecated."
            puts
            puts "Please run this command instead:"
            puts
            puts "    rake assets:precompile"
            puts
          when 'g', 'generate'
            setup_generator_invocation
            invoke_jax_generator args.shift, args
          when 'destroy'
            setup_generator_invocation
            invoke_jax_generator args.shift, args, :behavior => :revoke
          when 'server'
            Jax::Server.new(*args).tap do |server|
              require APP_PATH
              Dir.chdir(::Rails.application.root)
              server.start
            end
          when NilClass # no args given
            usage
          else
            raise ArgumentError, "Command not recognized: #{command.inspect}"
        end
      end
      
      def usage
        puts "Jax version #{Jax::Version::STRING}"
        puts
        puts "Usage:"
        puts "  jax server        - start development server"
        puts "  jax generate      - list all available generators"
        puts "  jax generate NAME - invoke a generator"
        puts
      end
    end
  end
end

begin
  Jax::Commands.invoke! *ARGV
rescue ArgumentError => err
  puts err.message
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
jax-3.0.0.rc2 lib/jax/commands.rb
jax-2.0.12 lib/jax/commands.rb
jax-3.0.0.rc1 lib/jax/commands.rb
jax-2.0.11 lib/jax/commands.rb
jax-2.0.10 lib/jax/commands.rb
jax-2.0.9 lib/jax/commands.rb
jax-2.0.8 lib/jax/commands.rb
jax-2.0.7 lib/jax/commands.rb
jax-2.0.6 lib/jax/commands.rb
jax-2.0.5 lib/jax/commands.rb
jax-2.0.4 lib/jax/commands.rb
jax-2.0.3 lib/jax/commands.rb
jax-2.0.2 lib/jax/commands.rb
jax-2.0.1 lib/jax/commands.rb
jax-2.0.0 lib/jax/commands.rb