module Dashboard::BowerHelpers
Public Instance Methods
bower_no_deps?(mod)
click to toggle source
# File lib/rubyneat_dashboard/bower_dsl.rb, line 52 def bower_no_deps?(mod) bower_resolve(mod)[:deps].nil? or bower_resolve(mod)[:deps].empty? end
bower_packages()
click to toggle source
generates a list of Bower package names and their json manifests [pkgname, manifest]
# File lib/rubyneat_dashboard/bower_dsl.rb, line 38 def bower_packages @bower_packages ||= Dir["#{File.expand_path(bower_root, gem_root)}/*/.bower.json"]. map{ |path| [File.basename(File.dirname(path)), File.read(path)] }. map{ |pkg, json| [pkg, JSON::Stream::Parser.parse(json) ]}. map{ |pkg, manifest| [pkg, manifest['main'], manifest['version'], manifest['dependencies']] }. map{ |pkg, files, ver, deps| [pkg, ver, files || "#{pkg}.js", deps]}. inject({}){ |memo, (pkg, ver, files, deps)| memo[pkg] = { files: path_to(pkg, files.kind_of?(String)? [files] : files), deps: deps, version: ver} memo } end
bower_resolve(modspec)
click to toggle source
The parameter may either be a module (string), or a [module, ver] pair. Find and return the matchinng module, or throw an exception if the resolution fails.
# File lib/rubyneat_dashboard/bower_dsl.rb, line 59 def bower_resolve(modspec) mod, verspec = if modspec.kind_of?(Array) modspec else [modspec, '>=0.0.0'] end raise DashboardException.new("Missing Asset Module #{mod} version #{verspec}") if bower_packages[mod].nil? bower_packages[mod] # FIXME: must check for version match too!!! end
bower_root(path = 'bower_components')
click to toggle source
# File lib/rubyneat_dashboard/bower_dsl.rb, line 19 def bower_root(path = 'bower_components') @bower_root ||= path end
bower_route(path = '/bower')
click to toggle source
# File lib/rubyneat_dashboard/bower_dsl.rb, line 23 def bower_route(path = '/bower') @bower_route ||= path end
bower_serve()
click to toggle source
# File lib/rubyneat_dashboard/bower_dsl.rb, line 27 def bower_serve serve bower_route(), from: bower_root end
gem_root()
click to toggle source
# File lib/rubyneat_dashboard/bower_dsl.rb, line 17 def gem_root; @gem_root ||= Dashboard::BowerDSL.gem_root; end
path_to(pkg, files)
click to toggle source
# File lib/rubyneat_dashboard/bower_dsl.rb, line 31 def path_to(pkg, files) files.map do |file| File.expand_path file, File.expand_path(pkg, bower_route) end end