lib/ceedling.rb in ceedling-0.29.1 vs lib/ceedling.rb in ceedling-0.30.0
- old
+ new
@@ -1,99 +1,99 @@
-##
-# This module defines the interface for interacting with and loading a project
-# with Ceedling.
-module Ceedling
- ##
- # Returns the location where the gem is installed.
- # === Return
- # _String_ - The location where the gem lives.
- def self.location
- File.join( File.dirname(__FILE__), '..')
- end
-
- ##
- # Return the path to the "built-in" plugins.
- # === Return
- # _String_ - The path where the default plugins live.
- def self.load_path
- File.join( self.location, 'plugins')
- end
-
- ##
- # Return the path to the Ceedling Rakefile
- # === Return
- # _String_
- def self.rakefile
- File.join( self.location, 'lib', 'ceedling', 'rakefile.rb' )
- end
-
- ##
- # This method selects the project file that Ceedling will use by setting the
- # CEEDLING_MAIN_PROJECT_FILE environment variable before loading the ceedling
- # rakefile. A path supplied as an argument to this method will override the
- # current value of the environment variable. If no path is supplied as an
- # argument then the existing value of the environment variable is used. If
- # the environment variable has not been set and no argument has been supplied
- # then a default path of './project.yml' will be used.
- #
- # === Arguments
- # +options+ _Hash_::
- # A hash containing the options for ceedling. Currently the following
- # options are supported:
- # * +config+ - The path to the project YAML configuration file.
- # * +root+ - The root of the project directory.
- # * +prefix+ - A prefix to prepend to plugin names in order to determine the
- # corresponding gem name.
- # * +plugins+ - The list of ceedling plugins to load
- def self.load_project(options = {})
- # Make sure our path to the yaml file is setup
- if options.has_key? :config
- ENV['CEEDLING_MAIN_PROJECT_FILE'] = options[:config]
- elsif ENV['CEEDLING_MAIN_PROJECT_FILE'].nil?
- ENV['CEEDLING_MAIN_PROJECT_FILE'] = './project.yml'
- end
-
- # Register the plugins
- if options.has_key? :plugins
- options[:plugins].each do |plugin|
- register_plugin( plugin, options[:prefix] )
- end
- end
-
- # Define the root of the project if specified
- Object.const_set('PROJECT_ROOT', options[:root]) if options.has_key? :root
-
- # Load ceedling
- load "#{self.rakefile}"
- end
-
- ##
- # Register a plugin for ceedling to use when a project is loaded. This method
- # *must* be called prior to calling the _load_project_ method.
- #
- # This method is intended to be used for loading plugins distributed via the
- # RubyGems mechanism. As such, the following gem structure is assumed for
- # plugins.
- #
- # * The gem name must be prefixed with 'ceedling-' followed by the plugin
- # name (ex. 'ceedling-bullseye')
- #
- # * The contents of the plugin must be isntalled into a subdirectory of
- # the gem with the same name as the plugin (ex. 'bullseye/')
- #
- # === Arguments
- # +name+ _String_:: The name of the plugin to load.
- # +prefix+ _String_::
- # (optional, default = nil) The prefix to use for the full gem name.
- def self.register_plugin(name, prefix=nil)
- # Figure out the full name of the gem and location
- prefix ||= 'ceedling-'
- gem_name = prefix + name
- gem_dir = Gem::Specification.find_by_name(gem_name).gem_dir()
-
- # Register the plugin with Ceedling
- require 'ceedling/defaults'
- DEFAULT_CEEDLING_CONFIG[:plugins][:enabled] << name
- DEFAULT_CEEDLING_CONFIG[:plugins][:load_paths] << gem_dir
- end
-end
-
+##
+# This module defines the interface for interacting with and loading a project
+# with Ceedling.
+module Ceedling
+ ##
+ # Returns the location where the gem is installed.
+ # === Return
+ # _String_ - The location where the gem lives.
+ def self.location
+ File.join( File.dirname(__FILE__), '..')
+ end
+
+ ##
+ # Return the path to the "built-in" plugins.
+ # === Return
+ # _String_ - The path where the default plugins live.
+ def self.load_path
+ File.join( self.location, 'plugins')
+ end
+
+ ##
+ # Return the path to the Ceedling Rakefile
+ # === Return
+ # _String_
+ def self.rakefile
+ File.join( self.location, 'lib', 'ceedling', 'rakefile.rb' )
+ end
+
+ ##
+ # This method selects the project file that Ceedling will use by setting the
+ # CEEDLING_MAIN_PROJECT_FILE environment variable before loading the ceedling
+ # rakefile. A path supplied as an argument to this method will override the
+ # current value of the environment variable. If no path is supplied as an
+ # argument then the existing value of the environment variable is used. If
+ # the environment variable has not been set and no argument has been supplied
+ # then a default path of './project.yml' will be used.
+ #
+ # === Arguments
+ # +options+ _Hash_::
+ # A hash containing the options for ceedling. Currently the following
+ # options are supported:
+ # * +config+ - The path to the project YAML configuration file.
+ # * +root+ - The root of the project directory.
+ # * +prefix+ - A prefix to prepend to plugin names in order to determine the
+ # corresponding gem name.
+ # * +plugins+ - The list of ceedling plugins to load
+ def self.load_project(options = {})
+ # Make sure our path to the yaml file is setup
+ if options.has_key? :config
+ ENV['CEEDLING_MAIN_PROJECT_FILE'] = options[:config]
+ elsif ENV['CEEDLING_MAIN_PROJECT_FILE'].nil?
+ ENV['CEEDLING_MAIN_PROJECT_FILE'] = './project.yml'
+ end
+
+ # Register the plugins
+ if options.has_key? :plugins
+ options[:plugins].each do |plugin|
+ register_plugin( plugin, options[:prefix] )
+ end
+ end
+
+ # Define the root of the project if specified
+ Object.const_set('PROJECT_ROOT', options[:root]) if options.has_key? :root
+
+ # Load ceedling
+ load "#{self.rakefile}"
+ end
+
+ ##
+ # Register a plugin for ceedling to use when a project is loaded. This method
+ # *must* be called prior to calling the _load_project_ method.
+ #
+ # This method is intended to be used for loading plugins distributed via the
+ # RubyGems mechanism. As such, the following gem structure is assumed for
+ # plugins.
+ #
+ # * The gem name must be prefixed with 'ceedling-' followed by the plugin
+ # name (ex. 'ceedling-bullseye')
+ #
+ # * The contents of the plugin must be isntalled into a subdirectory of
+ # the gem with the same name as the plugin (ex. 'bullseye/')
+ #
+ # === Arguments
+ # +name+ _String_:: The name of the plugin to load.
+ # +prefix+ _String_::
+ # (optional, default = nil) The prefix to use for the full gem name.
+ def self.register_plugin(name, prefix=nil)
+ # Figure out the full name of the gem and location
+ prefix ||= 'ceedling-'
+ gem_name = prefix + name
+ gem_dir = Gem::Specification.find_by_name(gem_name).gem_dir()
+
+ # Register the plugin with Ceedling
+ require 'ceedling/defaults'
+ DEFAULT_CEEDLING_CONFIG[:plugins][:enabled] << name
+ DEFAULT_CEEDLING_CONFIG[:plugins][:load_paths] << gem_dir
+ end
+end
+