Class: Assetify::Asset
- Inherits:
-
Object
- Object
- Assetify::Asset
- Includes:
- Helpers
- Defined in:
- lib/assetify/asset.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
-
#ns ⇒ Object
Returns the value of attribute ns.
-
#pkg ⇒ Object
Returns the value of attribute pkg.
-
#type ⇒ Object
(also: #ext)
Returns the value of attribute type.
-
#url ⇒ Object
Returns the value of attribute url.
-
#ver ⇒ Object
Returns the value of attribute ver.
Instance Method Summary collapse
- #check? ⇒ Boolean
- #data ⇒ Object
- #filename ⇒ Object
- #fullpath ⇒ Object
-
#initialize(type, name, url, ver = nil, params = {}) ⇒ Asset
constructor
A new instance of Asset.
- #install!(force = false) ⇒ Object
- #path ⇒ Object
- #print_version ⇒ Object
Methods included from Helpers
Constructor Details
#initialize(type, name, url, ver = nil, params = {}) ⇒ Asset
Returns a new instance of Asset.
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/assetify/asset.rb', line 10 def initialize(type, name, url, ver = nil, params={}) raise "NoType" unless type raise "NoName" unless name raise "NoURL" unless url @type, @name = type, name.to_s @url = (@ver = ver) ? url.gsub(/{VERSION}/, @ver) : url @ns = params[:ns] || "" @to = params[:to] || "" @pkg = params[:pkg] end |
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
7 8 9 |
# File 'lib/assetify/asset.rb', line 7 def name @name end |
#ns ⇒ Object
Returns the value of attribute ns.
7 8 9 |
# File 'lib/assetify/asset.rb', line 7 def ns @ns end |
#pkg ⇒ Object
Returns the value of attribute pkg.
7 8 9 |
# File 'lib/assetify/asset.rb', line 7 def pkg @pkg end |
#type ⇒ Object Also known as: ext
Returns the value of attribute type.
7 8 9 |
# File 'lib/assetify/asset.rb', line 7 def type @type end |
#url ⇒ Object
Returns the value of attribute url.
7 8 9 |
# File 'lib/assetify/asset.rb', line 7 def url @url end |
#ver ⇒ Object
Returns the value of attribute ver.
7 8 9 |
# File 'lib/assetify/asset.rb', line 7 def ver @ver end |
Instance Method Details
#check? ⇒ Boolean
43 44 45 |
# File 'lib/assetify/asset.rb', line 43 def check? File.exists? fullpath end |
#data ⇒ Object
53 54 55 56 |
# File 'lib/assetify/asset.rb', line 53 def data # Get data, from a pkg or download directly @data ||= @pkg ? @pkg.get(url, :force).values.first : get_data(url) end |
#filename ⇒ Object
21 22 23 24 25 26 |
# File 'lib/assetify/asset.rb', line 21 def filename return @filename if @filename @filename = Opt[:newname] ? name : url.split("/").last @filename += ".#{type}" unless @filename =~ /\.\w{1,6}$/ @filename end |
#fullpath ⇒ Object
39 40 41 |
# File 'lib/assetify/asset.rb', line 39 def fullpath @fullpath ||= File.join(path, filename) end |
#install!(force = false) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/assetify/asset.rb', line 63 def install!(force = false) LINE.p "-> #{name}.#{type}" if !force && check? @data = File.read(fullpath) return LINE.f "#{print_version}Installed" end begin # Creates a thread to insert dots while downloading points = Thread.new { loop do; LINE.p "."; sleep 1; end } write data LINE.f "#{print_version}ok" rescue => e LINE.f :FAIL, :red p "Fail: #{e} #{e.backtrace}" ensure points.kill end end |
#path ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/assetify/asset.rb', line 28 def path args = if @to.empty? tpath = Opt["#{type}path".to_sym] 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 ⇒ Object
47 48 49 50 51 |
# File 'lib/assetify/asset.rb', line 47 def print_version return "" unless ver ver_str = ver.size > 10 ? ver[0..10] : ver[0] "v#{ver_str} " end |