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
# File lib/assetify/asset.rb, line 104 def print_version return '' unless ver # chop to only first 10 chars if it's big hash ver_str = ver.size > 10 ? ver[0..10] : ver[0] "v#{ver_str}" end
read_data()
click to toggle source
# File lib/assetify/asset.rb, line 85 def read_data @data = File.read(fullpath) end