class Assetify::Asset

What's an Asset?

Attributes

as[RW]
ext[RW]
name[RW]
ns[RW]
pkg[RW]
type[RW]
url[RW]
ver[RW]

Public Class Methods

all() click to toggle source

Simple cache store, read Assetfile and dump it here to use.

# File lib/assetify/asset.rb, line 125
def all
  @all ||= Assetfile.read
end
filter(params) click to toggle source
# File lib/assetify/asset.rb, line 129
def filter(params)
  all.select do |a|
    blob = "#{a.name}#{a.pkg.name if a.pkg}"
    blob.include? params
  end
end
new(type, name, url, ver = nil, params = {}) click to toggle source
# File lib/assetify/asset.rb, line 14
def initialize(type, name, url, ver = nil, params = {})
  raise 'NoType' unless type
  raise 'NoName' unless name
  raise 'NoURL' unless url
  @type = type
  @name = name.to_s
  @url = (@ver = ver) ? url.gsub(/{VERSION}/, @ver) : url
  if @name =~ /\./
    @name, @ext = name.split('.')
  else
    @ext = @type == :img ? find_ext_for(url) : @type
  end

  @pkg = params[:pkg]
  @as = params[:as]
  @ns = params[:ns]
  @to = params[:to] || ''
end

Public Instance Methods

data() click to toggle source
# File lib/assetify/asset.rb, line 74
def data
  return @data if @data
  # Get data, from a pkg or download directly
  @data = @pkg ? @pkg.get(url, :force).values.first : get_data(url)

  # Compile/fix paths if asked to
  @data = Pathfix.new(@data, @as, @ns).fix if @as

  @data
end
file_exists?() click to toggle source
# File lib/assetify/asset.rb, line 70
def file_exists?
  File.exist? fullpath
end
filename() click to toggle source
# File lib/assetify/asset.rb, line 33
def filename
  return @filename if @filename
  @filename = "#{name}.#{ext}"
  @filename += ".#{as}" if as
  @filename
end
find_ext_for(file) click to toggle source
# File lib/assetify/asset.rb, line 40
def find_ext_for(file)
  file.split('.').last[0, 3]
end
find_path_for(txt) click to toggle source

Find correct path to put me

# File lib/assetify/asset.rb, line 47
def find_path_for(txt)
  case txt
  when /js/  then :javascripts
  when /css|style/ then :stylesheets
  else :images
  end
end
fullpath() click to toggle source
# File lib/assetify/asset.rb, line 66
def fullpath
  @fullpath ||= File.join(path, filename)
end
header() click to toggle source

Prints info about the asset (TODO: move this to cli…)

# File lib/assetify/asset.rb, line 92
def header
  "-> #{name}.#{type}"
end
install!(_force = false) click to toggle source

Write down asset to disk

# File lib/assetify/asset.rb, line 114
def install!(_force = false)
  write data
rescue => e
  LINE.f :FAIL, :red
  p "Fail: #{e} #{e.backtrace}"
end
path() click to toggle source
# File lib/assetify/asset.rb, line 55
def path
  args = if @to.empty?
           tpath = Opt[find_path_for(type)]
           raise "Don`t know where to put #{type} files..." unless tpath
           [tpath, @ns ? @ns.to_s : '']
         else
           [Dir.pwd, @to]
         end
  @path = File.join(args)
end
print_version() click to toggle source
read_data() click to toggle source
# File lib/assetify/asset.rb, line 85
def read_data
  @data = File.read(fullpath)
end