Class: EY::Serverside::RailsAssets::Strategy::Shared

Inherits:
Object
  • Object
show all
Defined in:
lib/engineyard-serverside/rails_assets/strategy.rb

Overview

Basic shared assets. Precompiled assets go into a single shared assets directory. The assets directory is never cleaned, so a deploy hook should be used to clean assets appropriately.

When no assets changes are detected, shared directory is only symlinked and precompile task is not run.

Direct Known Subclasses

Cleaning, Shifting

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(paths, runner) ⇒ Shared

Returns a new instance of Shared.


87
88
89
90
# File 'lib/engineyard-serverside/rails_assets/strategy.rb', line 87

def initialize(paths, runner)
  @paths = paths
  @runner = runner
end

Instance Attribute Details

#pathsObject (readonly)

Returns the value of attribute paths


86
87
88
# File 'lib/engineyard-serverside/rails_assets/strategy.rb', line 86

def paths
  @paths
end

#runnerObject (readonly)

Returns the value of attribute runner


86
87
88
# File 'lib/engineyard-serverside/rails_assets/strategy.rb', line 86

def runner
  @runner
end

Instance Method Details

#prepareObject


100
101
102
103
# File 'lib/engineyard-serverside/rails_assets/strategy.rb', line 100

def prepare
  reuse
  yield
end

#reusable?Boolean

Returns:

  • (Boolean)

92
93
94
# File 'lib/engineyard-serverside/rails_assets/strategy.rb', line 92

def reusable?
  shared_assets_path.directory? && shared_assets_path.entries.any?
end

#reuseObject


96
97
98
# File 'lib/engineyard-serverside/rails_assets/strategy.rb', line 96

def reuse
  run "mkdir -p #{shared_assets_path} && ln -nfs #{shared_assets_path} #{paths.public}"
end