Sha256: 64c824ba100c876b5cf859cf7a72547d1d7d3c31ee6f42ca49a470a79eca6caa

Contents?: true

Size: 1.25 KB

Versions: 5

Compression:

Stored size: 1.25 KB

Contents

module Spring
  module Commands
    class Rails
      def call
        ARGV.unshift command_name
        Object.const_set(:APP_PATH, ::Rails.root.join('config/application'))
        require "rails/commands"
      end

      def description
        nil
      end
    end

    class RailsConsole < Rails
      def env(args)
        args.first if args.first && !args.first.index("-")
      end

      def command_name
        "console"
      end
    end

    class RailsGenerate < Rails
      def command_name
        "generate"
      end
    end

    class RailsDestroy < Rails
      def command_name
        "destroy"
      end
    end

    class RailsRunner < Rails
      def env(tail)
        previous_option = nil
        tail.reverse.each do |option|
          case option
          when /--environment=(\w+)/ then return $1
          when '-e' then return previous_option
          end
          previous_option = option
        end
        nil
      end

      def command_name
        "runner"
      end
    end

    Spring.register_command "rails_console",  RailsConsole.new
    Spring.register_command "rails_generate", RailsGenerate.new
    Spring.register_command "rails_destroy",  RailsDestroy.new
    Spring.register_command "rails_runner",   RailsRunner.new
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
spring-1.0.0 lib/spring/commands/rails.rb
spring-0.9.2 lib/spring/commands/rails.rb
spring-0.9.1 lib/spring/commands/rails.rb
spring-0.9.0 lib/spring/commands/rails.rb
spring-0.0.11 lib/spring/commands/rails.rb