Class: AssetFiles
Overview
Used to get a list of the assets and other included components from the dependencies.rb files.
Instance Method Summary collapse
- #add_assets(path) ⇒ Object
- #component(name) ⇒ Object
- #component_paths ⇒ Object
- #components ⇒ Object
- #css_file(url) ⇒ Object
- #css_files ⇒ Object
-
#initialize(component_name, component_paths) ⇒ AssetFiles
constructor
A new instance of AssetFiles.
- #javascript_file(url) ⇒ Object
- #javascript_files(opal_files) ⇒ Object
- #load_dependencies(path) ⇒ Object
Constructor Details
#initialize(component_name, component_paths) ⇒ AssetFiles
Returns a new instance of AssetFiles.
4 5 6 7 8 9 10 11 12 |
# File 'lib/volt/server/rack/asset_files.rb', line 4 def initialize(component_name, component_paths) @component_paths = component_paths @assets = [] @included_components = {} @components = [] component('volt') component(component_name) end |
Instance Method Details
#add_assets(path) ⇒ Object
61 62 63 64 65 66 |
# File 'lib/volt/server/rack/asset_files.rb', line 61 def add_assets(path) asset_folder = File.join(path, 'assets') if File.directory?(asset_folder) @assets << [:folder, asset_folder] end end |
#component(name) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/volt/server/rack/asset_files.rb', line 28 def component(name) unless @included_components[name] # Get the path to the component path = @component_paths.component_path(name) # Track that we added @included_components[name] = true # Load the dependencies load_dependencies(path) # Add any assets add_assets(path) @components << [path, name] end end |
#component_paths ⇒ Object
57 58 59 |
# File 'lib/volt/server/rack/asset_files.rb', line 57 def component_paths return @components end |
#components ⇒ Object
45 46 47 |
# File 'lib/volt/server/rack/asset_files.rb', line 45 def components @included_components.keys end |
#css_file(url) ⇒ Object
53 54 55 |
# File 'lib/volt/server/rack/asset_files.rb', line 53 def css_file(url) @assets << [:css_file, url] end |
#css_files ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/volt/server/rack/asset_files.rb', line 93 def css_files css_files = [] @assets.each do |type, path| case type when :folder css_files += Dir["#{path}/**/*.{css,scss}"].sort.map {|folder| '/assets' + folder[path.size..-1].gsub(/[.]scss$/, '') } when :css_file css_files << path end end return css_files end |
#javascript_file(url) ⇒ Object
49 50 51 |
# File 'lib/volt/server/rack/asset_files.rb', line 49 def javascript_file(url) @assets << [:javascript_file, url] end |
#javascript_files(opal_files) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/volt/server/rack/asset_files.rb', line 69 def javascript_files(opal_files) javascript_files = [] @assets.each do |type, path| case type when :folder javascript_files += Dir["#{path}/**/*.js"].sort.map {|folder| '/assets' + folder[path.size..-1] } when :javascript_file javascript_files << path end end opal_js_files = [] if Volt.source_maps? opal_js_files += opal_files.environment['volt/page/page'].to_a.map {|v| '/assets/' + v.logical_path + '?body=1' } else opal_js_files << '/assets/volt/page/page.js' end opal_js_files << '/components/home.js' javascript_files += opal_js_files return javascript_files end |
#load_dependencies(path) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/volt/server/rack/asset_files.rb', line 14 def load_dependencies(path) if path dependencies_file = File.join(path, "config/dependencies.rb") else raise "Unable to find component #{component_name.inspect}" end if File.exists?(dependencies_file) # Run the dependencies file in this asset files context code = File.read(dependencies_file) instance_eval(code) end end |