Class: AssetsBooster::Packager

Inherits:
Object
  • Object
show all
Defined in:
lib/assets_booster/packager.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config_filename = nil) ⇒ Packager

Returns a new instance of Packager.



12
13
14
# File 'lib/assets_booster/packager.rb', line 12

def initialize(config_filename = nil)
  self.configuration_filename = config_filename || File.join(Rails.root, "config", "assets_booster.yml")
end

Instance Attribute Details

#configObject

Returns the value of attribute config.



4
5
6
# File 'lib/assets_booster/packager.rb', line 4

def config
  @config
end

#configuration_filenameObject

Returns the value of attribute configuration_filename.



5
6
7
# File 'lib/assets_booster/packager.rb', line 5

def configuration_filename
  @configuration_filename
end

#packagesObject

Returns the value of attribute packages.



6
7
8
# File 'lib/assets_booster/packager.rb', line 6

def packages
  @packages
end

Class Method Details

.asset_path(file) ⇒ Object



8
9
10
# File 'lib/assets_booster/packager.rb', line 8

def self.asset_path(file)
  File.join(Rails.root, "public", file)    
end

Instance Method Details

#boosted_environment?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/assets_booster/packager.rb', line 36

def boosted_environment?
  @boosted_environment ||= config['options']['environments'].include?(Rails.env)
end

#compile_allObject



44
45
46
# File 'lib/assets_booster/packager.rb', line 44

def compile_all
  each_package{ |package| package.compile }
end

#create_configurationObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/assets_booster/packager.rb', line 52

def create_configuration
  if File.exists?(configuration_filename)
    AssetsBooster.log("#{configuration_filename} already exists. Aborting task...")
    return
  end

  config = {
    'packages' => {
      'javascript' => {
        'base' => file_list("#{Rails.root}/public/javascripts", "js"),
      },
      'stylesheet' => {
        'base' => file_list("#{Rails.root}/public/stylesheets", "css"),
      },
    },
    'options' => {
      'javascript' => {
        'compiler' => "closure",
      },
      'stylesheet' => {
        'compiler' => "yui_css",
      },
      'environments' => %w(staging production),
    }
  }

  File.open(configuration_filename, "w") do |file|
    YAML.dump(config, file)
  end

  AssetsBooster.log("Configuration file #{configuration_filename} created!")
  AssetsBooster.log("Please check the generates packages so dependencies are loaded in correct order.")
end

#delete_allObject



48
49
50
# File 'lib/assets_booster/packager.rb', line 48

def delete_all
  each_package{ |package| package.delete }
end

#merge_allObject



40
41
42
# File 'lib/assets_booster/packager.rb', line 40

def merge_all
  each_package{ |package| package.merge }
end