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