class CitizenCodeScripts::Base

Attributes

argv[R]

Public Class Methods

description() click to toggle source
# File lib/citizen_code_scripts/base.rb, line 65
def self.description
  ""
end
help() click to toggle source
# File lib/citizen_code_scripts/base.rb, line 47
  def self.help
    msg = <<-HELP
Help has not been implemented for "#{name}". Please implement a help method like so:

class #{self} < CitizenCodeScripts::Base
  def self.help
    <<-EOF
    My awesome help message here.

    This will be so useful for people.
    EOF
  end
end
HELP

    puts msg
  end
inherited(klass) click to toggle source
# File lib/citizen_code_scripts/base.rb, line 24
def self.inherited(klass)
  CitizenCodeScripts::Base.script_classes << klass
end
load_scripts_deferred() click to toggle source
# File lib/citizen_code_scripts/base.rb, line 36
def self.load_scripts_deferred
  script_classes.reduce(Hash.new) do |result, klass|
    result[klass.name] = klass
    result
  end
end
name() click to toggle source
# File lib/citizen_code_scripts/base.rb, line 15
def self.name
  self
    .to_s
    .split('::')
    .last
    .gsub(/[A-Z]/, "-\\0")
    .downcase[1..-1]
end
new(*argv) click to toggle source
# File lib/citizen_code_scripts/base.rb, line 11
def initialize(*argv)
  @argv = argv
end
run(*args) click to toggle source
# File lib/citizen_code_scripts/base.rb, line 69
def self.run(*args)
  new(*args).run
end
script_classes() click to toggle source
# File lib/citizen_code_scripts/base.rb, line 28
def self.script_classes
  @script_classes ||= []
end
script_names() click to toggle source
# File lib/citizen_code_scripts/base.rb, line 43
def self.script_names
  scripts.keys
end
scripts() click to toggle source
# File lib/citizen_code_scripts/base.rb, line 32
def self.scripts
  @scripts ||= load_scripts_deferred
end

Public Instance Methods

app_names() click to toggle source
# File lib/citizen_code_scripts/base.rb, line 88
def app_names
  YAML.load_file('citizen.yml')['heroku_app_names']
end
app_root() click to toggle source

path to your application root.

# File lib/citizen_code_scripts/base.rb, line 74
def app_root
  Pathname.new(Dir.pwd)
end
staging_app_name() click to toggle source
# File lib/citizen_code_scripts/base.rb, line 92
def staging_app_name
  app_names['staging']
end
step(name) { || ... } click to toggle source
# File lib/citizen_code_scripts/base.rb, line 83
def step(name)
  puts colorize(:info, "\n== #{name} ==")
  yield
end
system!(*args) click to toggle source
# File lib/citizen_code_scripts/base.rb, line 78
def system!(*args)
  puts colorize(:command, args.join(" "))
  system(*args) || abort(colorize(:error, "\n== Command #{args} failed =="))
end