Class: AssetsVersion
- Inherits:
-
OpenStruct
- Object
- OpenStruct
- AssetsVersion
- Defined in:
- lib/thunder_punch/recipes/asset_pipeline/assets_version.rb
Constant Summary collapse
- REVISIONS_FILE =
ensure this file is symlinked to your Capistrano shared folder and is kept between deployments
"config/assets_version.yml"
- ASSETS_DEPENDENCIES =
{ 'gemfile_lock' => 'Gemfile.lock', 'assets_dir' => 'app/assets', 'vendor_dir' => 'vendor', }
Class Method Summary collapse
- .current ⇒ Object
- .git_revision_for(file) ⇒ Object
- .last_version ⇒ Object
- .load_revisions_from_yaml_file ⇒ Object
- .needs_precompile? ⇒ Boolean
Instance Method Summary collapse
Class Method Details
.current ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/thunder_punch/recipes/asset_pipeline/assets_version.rb', line 30 def self.current revisions = {} ASSETS_DEPENDENCIES.each do |key, file| revisions[key] = git_revision_for(file) end AssetsVersion.new(revisions) end |
.git_revision_for(file) ⇒ Object
46 47 48 49 50 |
# File 'lib/thunder_punch/recipes/asset_pipeline/assets_version.rb', line 46 def self.git_revision_for(file) rev = `git log -n 1 --format="%H" #{file}` $CHILD_STATUS.success? ? rev.strip : nil end |
.last_version ⇒ Object
25 26 27 28 |
# File 'lib/thunder_punch/recipes/asset_pipeline/assets_version.rb', line 25 def self.last_version revisions = load_revisions_from_yaml_file AssetsVersion.new(revisions) end |
.load_revisions_from_yaml_file ⇒ Object
40 41 42 43 44 |
# File 'lib/thunder_punch/recipes/asset_pipeline/assets_version.rb', line 40 def self.load_revisions_from_yaml_file YAML.load_file(REVISIONS_FILE) rescue Hash.new end |
.needs_precompile? ⇒ Boolean
18 19 20 21 22 23 |
# File 'lib/thunder_punch/recipes/asset_pipeline/assets_version.rb', line 18 def self.needs_precompile? @last = last_version @current = current @last.incomplete? || @current.incomplete? || @current != @last end |
Instance Method Details
#incomplete? ⇒ Boolean
56 57 58 59 |
# File 'lib/thunder_punch/recipes/asset_pipeline/assets_version.rb', line 56 def incomplete? revisions = ASSETS_DEPENDENCIES.keys.collect { |k| send(k) } revisions.any?(&:nil?) || revisions.any?(&:empty?) end |
#save_to_yaml ⇒ Object
52 53 54 |
# File 'lib/thunder_punch/recipes/asset_pipeline/assets_version.rb', line 52 def save_to_yaml File.open(REVISIONS_FILE, "w") { |f| f.write(to_json) } end |
#to_json ⇒ Object
61 62 63 |
# File 'lib/thunder_punch/recipes/asset_pipeline/assets_version.rb', line 61 def to_json YAML.to_json(marshal_dump) end |