67 lines
1.4 KiB
Ruby
67 lines
1.4 KiB
Ruby
require 'guard'
|
|
require 'guard/guard'
|
|
require 'jammit'
|
|
|
|
module Guard
|
|
class Jammit < Guard
|
|
|
|
def initialize(watchers = [], options = {})
|
|
super
|
|
|
|
# init stuff here, thx!
|
|
::Jammit.load_configuration ::Jammit::DEFAULT_CONFIG_PATH
|
|
end
|
|
|
|
# ================
|
|
# = Guard method =
|
|
# ================
|
|
|
|
# If one of those methods raise an exception, the Guard instance
|
|
# will be removed from the active guard.
|
|
|
|
# Call once when guard starts
|
|
# Please override initialize method to init stuff
|
|
def start
|
|
jammit
|
|
end
|
|
|
|
# Call with Ctrl-C signal (when Guard quit)
|
|
def stop
|
|
true
|
|
end
|
|
|
|
# Call with Ctrl-Z signal
|
|
# This method should be mainly used for "reload" (really!) actions like reloading passenger/spork/bundler/...
|
|
def reload
|
|
jammit
|
|
end
|
|
|
|
# Call with Ctrl-/ signal
|
|
# This method should be principally used for long action like running all specs/tests/...
|
|
def run_all
|
|
jammit
|
|
end
|
|
|
|
# Call on file(s) modifications
|
|
def run_on_change(paths)
|
|
jammit
|
|
end
|
|
|
|
def jammit
|
|
ensure_rails_env!
|
|
::Jammit.reload!
|
|
puts "Jamming assets..."
|
|
::Jammit.packager.force = true
|
|
::Jammit.packager.precache_all
|
|
true
|
|
end
|
|
|
|
private
|
|
def ensure_rails_env!
|
|
if !defined?(::Rails) || !::Rails.respond_to?(:env)
|
|
require 'rails'
|
|
end
|
|
end
|
|
end
|
|
end
|