module Squasher

Constants

COLORS
VERSION

Attributes

config[R]

Public Instance Methods

ask(*args) click to toggle source
# File lib/squasher.rb, line 36
def ask(*args)
  tell(*args)
  $stdin.gets[0].downcase == 'y'
end
clean() click to toggle source
# File lib/squasher.rb, line 24
def clean
  Cleaner.process
end
error(*args) click to toggle source
# File lib/squasher.rb, line 52
def error(*args)
  tell(*args)
  abort
end
print(message, options = {}) click to toggle source
rake(command, description = nil) click to toggle source
# File lib/squasher.rb, line 28
def rake(command, description = nil)
  tell(description) if description
  config.in_app_root do
    env = { 'RAILS_ENV' => 'development', 'DISABLE_DATABASE_ENVIRONMENT_CHECK' => '1' }
    system(env, "bundle exec rake #{ command }")
  end
end
setup(options) click to toggle source
# File lib/squasher.rb, line 14
def setup(options)
  options.each { |(k, v)| config.set(k, v) }
end
squash(raw_date) click to toggle source
# File lib/squasher.rb, line 18
def squash(raw_date)
  parts = raw_date.to_s.split('/').map(&:to_i)
  date = Time.new(*parts)
  Worker.process(date)
end
tell(key, options = {}) click to toggle source
# File lib/squasher.rb, line 41
def tell(key, options = {})
  message = messages.fetch(key.to_s)
  message = message.join("\n") if message.is_a?(Array)
  message = colorize(message)
  print(message, options)
end

Private Instance Methods

colorize(message) click to toggle source
# File lib/squasher.rb, line 69
def colorize(message)
  message.gsub(/\:(\w+)\<([^>]+)\>/) { |_| "\033[#{ COLORS[$1] }m#{ $2 }\033[039m" }
end
messages() click to toggle source
# File lib/squasher.rb, line 59
def messages
  return @messages if @messages

  require 'yaml'
  path = File.join(File.dirname(__FILE__), 'squasher/messages.yml')
  @messages = YAML.load(File.open(path))
end