Sha256: d90995d1d115eeeddc8e93c1d6c0e555f6bfe3ddee5e0ca27bc0a5a076afd53b

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

require 'guard'
require 'guard/guard'

module Guard
  class RailsAssets < Guard
    def initialize(watchers=[], options={})
      super
      @options = options || {}
    end

    def start
      compile_assets if run_for? :start
    end

    def reload
      compile_assets if run_for? :reload
    end

    def run_all
      compile_assets if run_for? :all
    end

    def run_on_change(paths=[])
      compile_assets if run_for? :change
    end

    def compile_assets
      puts 'Compiling rails assets'
      result = system "rm -rf public/assets && bundle exec rake assets:precompile"   
      if result
        tree = `tree public/assets`
        puts tree
        summary = tree.split("\n").last
        Notifier::notify summary, :title => 'Assets compiled'
      else
        Notifier::notify 'see the details in the terminal', :title => "Can't compile assets", :image => :failed
      end
    end

    private

    def run_for? command
      run_on = @options[:run_on]
      run_on = [:start, :all, :change] if not run_on or run_on.empty? 
      run_on = [run_on] unless run_on.respond_to?(:include?)
      run_on.include?(command)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
guard-rails-assets-0.0.1 lib/guard/rails-assets.rb