class RailsLineman::Asset

Public Class Methods

new(config, descriptor) click to toggle source
# File lib/rails_lineman/asset.rb, line 3
def initialize(config, descriptor)
  @descriptor = descriptor.strip
  @source = File.join(config.lineman_project_location, "dist", descriptor, ".")
  @destination = determine_destination(config.lineman_project_namespace)
end

Public Instance Methods

add_if_precompilable() click to toggle source
# File lib/rails_lineman/asset.rb, line 15
def add_if_precompilable
  return unless is_precompilable?
  Rails.application.config.assets.precompile += Dir.glob("#{@destination}/**/*.#{@descriptor}")
end
copy() click to toggle source
# File lib/rails_lineman/asset.rb, line 20
def copy
  FileUtils.cp_r(@source, @destination)
end
delete() click to toggle source
# File lib/rails_lineman/asset.rb, line 24
def delete
  FileUtils.rm_rf(@destination)
end
ensure_directories() click to toggle source
# File lib/rails_lineman/asset.rb, line 9
def ensure_directories
  [@source, @destination].each do |path|
    FileUtils.mkdir_p(path)
  end
end

Private Instance Methods

determine_destination(namespace) click to toggle source
# File lib/rails_lineman/asset.rb, line 30
def determine_destination(namespace)
  if is_precompilable?
    Rails.root.join(File.join(*["tmp", "rails_lineman", "lineman", namespace].compact))
  else
    Rails.root.join(File.join(*["public", "assets", namespace, @descriptor].compact))
  end
end
is_precompilable?() click to toggle source
# File lib/rails_lineman/asset.rb, line 38
def is_precompilable?
  ["js", "css"].include?(@descriptor)
end