Skip to content

Instantly share code, notes, and snippets.

@RobWu
Created June 22, 2016 08:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RobWu/4447e0226ad3de00c8d6ddb35895cb94 to your computer and use it in GitHub Desktop.
Save RobWu/4447e0226ad3de00c8d6ddb35895cb94 to your computer and use it in GitHub Desktop.
class AppRunningMode
class << self
def resque_worker?
( ARGV & ["resque:work", "resque:worker"]).any?
end
def assets?
( ARGV & ["assets:precompile", "rake assets:environment"]).any? || (server? && !Rails.env.production?)
end
def console?
defined?(Rails::Console)
end
def server?
defined?(Rails::Server) || unicorn?
end
def executable
@executable ||= $0.split(' ').first.split('/').last
end
def match_executable?(name)
executable == name.to_s
end
def irb?
match_executable?(:irb)
end
def unicorn?
match_executable?(:unicorn_rails)
end
def spring?
match_executable?(:spring)
end
def rake?
match_executable?(:rake)
end
def values
@values ||= []
@values |= [:server] if server?
@values |= [:assets] if assets?
@values |= [:resque_worker] if resque_worker?
@values |= [:console] if console?
@values |= [:rake] if rake?
@values |= [:irb] if irb?
@values |= [:spring] if spring?
@values
end
def bundler_groups
values.collect{|v| [v, "#{v}_#{Rails.env}".to_sym] }.flatten
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment