Module: LuxAssets
- Extended by:
- LuxAssets
- Included in:
- LuxAssets
- Defined in:
- lib/lux_assets/base.rb,
lib/vendor/lux/misc.rb
Overview
include files from a plugin
Defined Under Namespace
Modules: Cli, Manifest Classes: Asset, Element
Instance Method Summary collapse
-
#add(added) ⇒ Object
adds file or list of files add ‘plugin:js_widgets/*’ add ‘js/vendor/*’ add ‘index.coffee’ add proc { … }.
- #asset(name) ⇒ Object
-
#compile(path, opts = {}) ⇒ Object
compile single asset.
-
#compile_all ⇒ Object
compile all assets.
- #configure(&block) ⇒ Object
- #css(name = nil, &block) ⇒ Object
-
#examine ⇒ Object
show files and file sizes.
-
#files(ext, name = nil) ⇒ Object
get list of files in the resource.
- #js(name = nil, &block) ⇒ Object
- #plugin(name) ⇒ Object
- #relative_root(name = nil) ⇒ Object
-
#to_h ⇒ Object
get all files as a hash.
Instance Method Details
#add(added) ⇒ Object
adds file or list of files add ‘plugin:js_widgets/*’ add ‘js/vendor/*’ add ‘index.coffee’ add proc { … }
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/lux_assets/base.rb', line 45 def add added return @bulk.push added if @in_bulk case added when Array add_local_files added return when Proc @files += [added] else files = if added[0,1] == '/' || added[0,2] == './' added else "#{@relative_root}/#{added}" end files = if files.include?('*') files += '/*' if files =~ %r{\/\*\*$} Dir[files].sort else [files] end files = files.select { |it| File.file?(it) } if files[0] add_local_files files else LuxAssets::Cli.die 'No files found in "%s -> :%s" (%s)'.red % [@ext, @name, added] end end end |
#asset(name) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/lux_assets/base.rb', line 21 def asset name @name = name.to_s @in_bulk = true @bulk = [] yield end |
#compile(path, opts = {}) ⇒ Object
compile single asset
87 88 89 90 |
# File 'lib/lux_assets/base.rb', line 87 def compile path, opts={} opts[:production] = false if opts[:production].nil? LuxAssets::Element.new(path).send :compile, opts end |
#compile_all ⇒ Object
compile all assets
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/lux_assets/base.rb', line 93 def compile_all # generate master file for every resource for ext in [:js, :css] for name in to_h[ext].keys path = LuxAssets.send(ext, name).compile yield "#{ext}/#{name}", path if block_given? end end # gzip if needed files = Dir['./public/assets/*.css'] + Dir['./public/assets/*.js'] files.each do |file| LuxAssets::Cli.run('gzip -k %s' % file, message: "Gzip: #{file}") unless File.exist?('%s.gz' % file) end # touch all files and reset the timestamp Dir['./public/assets/*'] .each { |file| system 'touch -t 201001010101 %s' % file } # add integirty checks LuxAssets::Manifest.update_integrity end |
#configure(&block) ⇒ Object
28 29 30 |
# File 'lib/lux_assets/base.rb', line 28 def configure &block class_eval &block end |
#css(name = nil, &block) ⇒ Object
36 37 38 |
# File 'lib/lux_assets/base.rb', line 36 def css name=nil, &block add_files :css, name, &block end |
#examine ⇒ Object
show files and file sizes
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/lux_assets/base.rb', line 128 def examine data = to_h.dup data.each do |ext, value_hash| puts ext.to_s.upcase.green value_hash.each do |key, files| puts ' %s' % key.to_s.green total = 0 files.each_with_index do |file, i| if File.exist?(file) size = File.size(file) total += size puts ' %s kB - %s' % [(size/1024.to_f).round(1).to_s.rjust(6), file] else puts ' %s' % file end end total = '%s kB in total' % (total/1024.to_f).round(1).to_s puts total.rjust(20) end end end |
#files(ext, name = nil) ⇒ Object
get list of files in the resource
81 82 83 84 |
# File 'lib/lux_assets/base.rb', line 81 def files ext, name=nil ext, name = ext.split('/', 2) unless name Asset.new(ext, name).files end |
#js(name = nil, &block) ⇒ Object
32 33 34 |
# File 'lib/lux_assets/base.rb', line 32 def js name=nil, &block add_files :js, name, &block end |
#plugin(name) ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/vendor/lux/misc.rb', line 48 def plugin name # load pluigin if needed Lux.plugin name plugin = Lux.plugin.get name add '%s/**' % plugin[:folder] end |
#relative_root(name = nil) ⇒ Object
16 17 18 19 |
# File 'lib/lux_assets/base.rb', line 16 def relative_root name=nil @relative_root = name if name @relative_root end |
#to_h ⇒ Object
get all files as a hash
117 118 119 120 121 122 123 124 125 |
# File 'lib/lux_assets/base.rb', line 117 def to_h unless @assets_loaded LuxAssets::Cli.die 'Assets rb config file not found in %s' % CONFIG_PATH unless CONFIG_PATH.exist? @assets_loaded = true eval CONFIG_PATH.read end @assets end |