Module: Bait::Assets

Included in:
Bait
Defined in:
lib/bait/assets.rb

Instance Method Summary collapse

Instance Method Details

#assetsObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/bait/assets.rb', line 3

def assets
  Class.new do
    def missing?
      !Bait.public.join('js', 'application.js').exist? &&
      !Bait.public.join('css', 'application.css').exist?
    end

    def remove!
      FileUtils.rm(Bait.public.join('js', 'application.js')) rescue nil
      FileUtils.rm(Bait.public.join('css', 'application.css')) rescue nil
    end

    def dynamic?
      Bait.env != "production"
    end

    def compile!
      Module.new do
        require 'bait/api'
        require 'sinatra/asset_snack'
        extend Sinatra::AssetSnack::InstanceMethods
        Sinatra::AssetSnack.assets.each do |assets|
          path = File.join(Bait.public, assets[:route])
          File.open(path, 'w') do |file|
            file.write compile(assets[:paths])[:body]
          end
        end
      end
    end
  end.new
end