Sha256: 63c6034c8f3f03d4c5f7ec0877cdec723f9fa1cda700cbf19ae717ad275f9cf0

Contents?: true

Size: 1.87 KB

Versions: 16

Compression:

Stored size: 1.87 KB

Contents

require 'fanforce/api'
require 'fileutils'
require 'json'
require 'yaml'
require_relative 'app_factory/sprockets/hacks'
require_relative 'app_factory/sprockets/compiler'
require_relative 'app_factory/version'

FanforceApp.config.load_env
FanforceApp.config.load_redis

namespace :assets do
  root_dir = FanforceApp.config.root_dir
  factory_root_dir = FanforceApp.config.factory_root_dir

  desc 'Precompile assets for production'
  task :precompile => :clean do
    sprockets = SprocketsCompiler.setup(root_dir)

    puts 'PRECOMPILING ASSETS... '
    SprocketsCompiler.new(sprockets: sprockets, precompile: [/(\/|^)[^_\/]+[^\/]*\.(css|js|png|gif|jpeg|jpg|otf|eot|svg|ttf|woff)/]).compile
    puts 'DONE'

    print 'GENERATING ASSET MANIFESTS... '
    asset_list = {}
    sprockets.each_logical_path do |logical_path|
      if File.basename(logical_path) !~ /^[_]/ and asset = sprockets.find_asset(logical_path)
        asset_list[logical_path] = "/assets/#{asset.digest_path}"
      end
    end
    IO.write File.join(root_dir, '/public/asset_manifest.json'), JSON.generate(asset_list)
    IO.write File.join(root_dir, '/public/asset_manifest.json'), "ASSETS=#{JSON.generate(asset_list)}"
    IO.write File.join(root_dir, '/public/asset_manifest.json'), asset_list.to_yaml
    puts 'DONE'

    print 'ENSURING FAVICON EXISTS... '
    FileUtils.cp("#{factory_root_dir}/public/favicon.ico", "#{root_dir}/public/favicon.ico") if !File.exists?(root_dir+'/public/favicon.ico')
    puts 'DONE'

    print 'ENSURING ROBOTS.TXT EXISTS... '
    FileUtils.cp("#{factory_root_dir}/public/robots.txt", "#{root_dir}/public/robots.txt") if !File.exists?(root_dir+'/public/robots.txt')
    puts 'DONE'
  end

  desc 'Clean assets folder'
  task :clean do
    print 'DESTROYING PUBLIC/ASSETS... '
    FileUtils.rm_rf File.join(root_dir, '/public/assets')
    puts 'DONE'
  end

  task :test do
    puts 'TEST WORKED!'
  end

end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
fanforce-app-factory-1.7.1 lib/fanforce/app_factory.rake
fanforce-app-factory-1.7.0 lib/fanforce/app_factory.rake
fanforce-app-factory-1.6.3 lib/fanforce/app_factory.rake
fanforce-app-factory-1.6.2 lib/fanforce/app_factory.rake
fanforce-app-factory-1.6.1 lib/fanforce/app_factory.rake
fanforce-app-factory-1.6.0 lib/fanforce/app_factory.rake
fanforce-app-factory-1.5.0 lib/fanforce/app_factory.rake
fanforce-app-factory-1.4.4 lib/fanforce/app_factory.rake
fanforce-app-factory-1.4.3 lib/fanforce/app_factory.rake
fanforce-app-factory-1.4.2 lib/fanforce/app_factory.rake
fanforce-app-factory-1.4.1 lib/fanforce/app_factory.rake
fanforce-app-factory-1.4.0 lib/fanforce/app_factory.rake
fanforce-app-factory-1.3.0 lib/fanforce/app_factory.rake
fanforce-app-factory-1.2.0 lib/fanforce/app_factory.rake
fanforce-app-factory-1.1.0 lib/fanforce/app_factory.rake
fanforce-app-factory-1.0.0 lib/fanforce/app_factory.rake