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