Class: Spring::Client::Rails

Inherits:
Command
  • Object
show all
Defined in:
lib/spring/client/rails.rb

Constant Summary collapse

COMMANDS =
%w(console runner generate destroy test)
ALIASES =
{
  "c" => "console",
  "r" => "runner",
  "g" => "generate",
  "d" => "destroy",
  "t" => "test"
}

Instance Attribute Summary

Attributes inherited from Command

#args, #env

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Command

call, #initialize

Constructor Details

This class inherits a constructor from Spring::Client::Command

Class Method Details

.descriptionObject



14
15
16
# File 'lib/spring/client/rails.rb', line 14

def self.description
  "Run a rails command. The following sub commands will use Spring: #{COMMANDS.to_a.join ', '}."
end

Instance Method Details

#callObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/spring/client/rails.rb', line 18

def call
  command_name = ALIASES[args[1]] || args[1]

  if COMMANDS.include?(command_name)
    Run.call(["rails_#{command_name}", *args.drop(2)])
  elsif command_name&.start_with?("db:") && !command_name.start_with?("db:system")
    Run.call(["rake", *args.drop(1)])
  else
    require "spring/configuration"
    ARGV.shift
    load Dir.glob(Spring.application_root_path.join("{bin,script}/rails")).first
    exit
  end
end