class Orkester::PackageHandler

Public Class Methods

new(args) click to toggle source
# File lib/orkester/package_handler.rb, line 7
def initialize(args)
  @context = args[:context]
  @package = args[:package]
  @install_location = @package["location"] || @package["name"]
  @package_path = @context.root.join(@install_location) 
  self.load_defination
end

Public Instance Methods

compile() click to toggle source
# File lib/orkester/package_handler.rb, line 28
def compile
  self.dependencies.to_a.each do |dependency|
    match = @context.included_packages.find { |x| x == dependency["name"] }
    if match
    else
      dependency_handler = PackageHandler.new context: @context, package: dependency
      dependency_handler.compile
    end
  end

  compiler = Compiler.new context: @context, package_defination: @package_defination
  compiler.compile 
end
dependencies() click to toggle source
# File lib/orkester/package_handler.rb, line 24
def dependencies
  @package_defination["dependencies"]
end
include_from_remote(dependency) click to toggle source
# File lib/orkester/package_handler.rb, line 43
def include_from_remote(dependency)
  p dependency
  uri = URI(dependency["remote"])
  FileUtils.mkdir_p @package_path.join("javascripts")
  str = Net::HTTP.get(uri)

  File.write @package_path.join( "javascripts", "main.js"), str
  File.write @package_path.join("package.yaml"), dependency.to_yaml
end
load_defination() click to toggle source
# File lib/orkester/package_handler.rb, line 15
def load_defination
  if @package_path.exist?
  else
    self.include_from_remote @package
  end
  package_yaml = File.read @package_path.join("package.yaml")
  @package_defination = YAML.load package_yaml
end