lib/roll.rb in roll-1.1.0 vs lib/roll.rb in roll-1.2.0

- old
+ new

@@ -1,21 +1,33 @@ -require 'roll/kernel' +require 'roll/config' +require 'roll/library' +require 'roll/kernel' # require last module Roll - VERSION = "1.0.0" #:till: VERSION = "<%= version %>" + VERSION = "1.2.0" # TODO: make verison reference dynamic # Get environment. - def self.env(name=nil) if name env = Environment.new(name) else env = Environment.new end env end + # Change current environment. + def self.use(name) + Environment.save(name) + end + + # Return Array of environment names. + def self.list + Environment.list + end + + # def self.index(name=nil) #if name # env = Environment.new(name) #else # env = Environment.new @@ -23,19 +35,17 @@ env(name).index.to_s end # Synchronize an environment by +name+. If a +name+ # is not given the current environment is synchronized. - def self.sync(name=nil) env = env(name) env.sync env.save end # Add path to current environment. - def self.in(path, depth=3) env = Environment.new lookup = env.lookup lookup.append(path, depth) @@ -46,11 +56,10 @@ return path, lookup.file end # Remove path from current environment. - def self.out(path) env = Environment.new lookup = env.lookup lookup.delete(path) @@ -61,11 +70,10 @@ return path, lookup.file end # Go thru each roll lib and collect bin paths. - def self.path binpaths = [] Library.list.each do |name| lib = Library[name] if lib.bindir? @@ -77,11 +85,24 @@ # Verify dependencies are in current environment. #-- # TODO: Instead of Dir.pwd, lookup project root. #++ - def self.verify(root=Dir.pwd) - Library.new(root).verify + def self.verify(name=nil) + if name + Library.open(name).verify + else + Library.new(Dir.pwd).verify + end + end + + # VersionError is raised when a requested version cannot be found. + class VersionError < ::RangeError # :nodoc: + end + + # VersionConflict is raised when selecting another version + # of a library when a previous version has already been selected. + class VersionConflict < ::LoadError # :nodoc: end end