lib/boson.rb in boson-0.2.3 vs lib/boson.rb in boson-0.2.4
- old
+ new
@@ -1,13 +1,12 @@
-$:.unshift File.dirname(__FILE__) unless $:.include? File.expand_path(File.dirname(__FILE__))
%w{hirb alias}.each {|e| require e }
%w{runner runners/console_runner repo manager loader inspector library}.each {|e| require "boson/#{e}" }
%w{argument method comment}.each {|e| require "boson/inspectors/#{e}_inspector" }
# order of library subclasses matters
%w{module file gem require local_file}.each {|e| require "boson/libraries/#{e}_library" }
(%w{namespace view command util commands option_parser options} +
- %w{index repo_index scientist option_command pipe pipes}).each {|e| require "boson/#{e}" }
+ %w{index repo_index scientist option_command pipe pipes version}).each {|e| require "boson/#{e}" }
# This module stores the libraries, commands, repos and main object used throughout Boson.
#
# Useful documentation links:
# * Boson::BinRunner - Runs the boson executable
@@ -18,10 +17,11 @@
# * Boson::Loader - Explains library module callbacks
# * Boson::OptionParser - All about options
module Boson
# Module which is extended by Boson.main_object to give it command functionality.
module Universe; include Commands::Namespace; end
+ NAMESPACE = '.' # Delimits namespace from command
extend self
# The object which holds and executes all command functionality
attr_accessor :main_object
attr_accessor :commands, :libraries
alias_method :higgs, :main_object
@@ -80,17 +80,17 @@
main_object.send(*args, &block)
end
# Invoke command string even with namespaces
def full_invoke(cmd, args) #:nodoc:
- command, subcommand = cmd.include?('.') ? cmd.split('.', 2) : [cmd, nil]
+ command, subcommand = cmd.include?(NAMESPACE) ? cmd.split(NAMESPACE, 2) : [cmd, nil]
dispatcher = subcommand ? Boson.invoke(command) : Boson.main_object
dispatcher.send(subcommand || command, *args)
end
# Boolean indicating if the main object can invoke the given method/command.
def can_invoke?(meth, priv=true)
Boson.main_object.respond_to? meth, priv
end
end
-Boson.main_object = self
\ No newline at end of file
+Boson.main_object = self