lib/knife-spork/plugins/plugin.rb in knife-spork-1.7.2 vs lib/knife-spork/plugins/plugin.rb in knife-spork-1.7.3
- old
+ new
@@ -1,117 +1,117 @@
-module KnifeSpork
- module Plugins
- class Plugin
- # This is the name of the plugin. It must correspond to the name in the yaml configuration
- # file in order to load this plugin. If an attribute is passed in, the name is set to that
- # given value. Otherwise, the name is returned.
- def self.name(name = nil)
- if name.nil?
- class_variable_get(:@@name)
- else
- class_variable_set(:@@name, name)
- end
- end
-
- # This is a convenience method for defining multiple hooks in a single call.
- def self.hooks(*the_hooks)
- [the_hooks].flatten.each{ |the_hook| hook(the_hook) }
- end
-
- # When defining a hook, we define a method on the instance that corresponds to that
- # hook. That will be fired when the hook is fired.
- def self.hook(the_hook)
- self.send(:define_method, the_hook.to_sym) do
- perform
- end
- end
-
- def initialize(options = {})
- @options = {
- :payload => {}
- }.merge(options)
- end
-
- def enabled?
- !(config.nil? || config.enabled == false)
- end
-
- private
- def config
- @options[:config].plugins.send(self.class.name.to_sym) unless @options[:config].nil? || @options[:config].plugins.nil?
- end
-
- def organization
- unless ::Chef::Config.chef_server_url.nil?
- split_server_url = Chef::Config.chef_server_url.gsub(/http(s)?:\/\//,"").split('/')
- if split_server_url.length > 1
- return "#{split_server_url.last}: "
- end
- end
-
- nil
- end
-
- def cookbooks
- @options[:cookbooks]
- end
-
- def environments
- @options[:environments]
- end
-
- def environment_diffs
- @options[:environment_diffs]
- end
-
- def environment_path
- @options[:environment_path]
- end
-
- def cookbook_path
- @options[:cookbook_path]
- end
-
- def role_path
- File.expand_path(config.role_path.nil? ? "#{cookbook_path}/../roles" : config[:role_path])
- end
-
- def node_path
- File.expand_path(config.role_path.nil? ? "#{cookbook_path}/../nodes" : config[:role_path])
- end
-
- def object_name
- @options[:object_name]
- end
-
- def object_secondary_name
- @options[:object_secondary_name]
- end
-
- def object_difference
- @options[:object_difference]
- end
-
- def misc_output
- @options[:misc_output]
- end
-
- def ui
- @options[:ui]
- end
-
- def current_user
- (begin `git config user.name`.chomp; rescue nil; end || ENV['USERNAME'] || ENV['USER']).strip
- end
-
- # Wrapper method around require that attempts to include the associated file. If it does not exist
- # or cannot be loaded, an nice error is produced instead of blowing up.
- def safe_require(file)
- begin
- require file
- rescue LoadError
- raise "You are using a plugin for knife-spork that requires #{file}, but you have not installed it. Please either run \"gem install #{file}\", add #{file} to your Gemfile or remove the plugin from your configuration."
- end
- end
- end
- end
-end
+module KnifeSpork
+ module Plugins
+ class Plugin
+ # This is the name of the plugin. It must correspond to the name in the yaml configuration
+ # file in order to load this plugin. If an attribute is passed in, the name is set to that
+ # given value. Otherwise, the name is returned.
+ def self.name(name = nil)
+ if name.nil?
+ class_variable_get(:@@name)
+ else
+ class_variable_set(:@@name, name)
+ end
+ end
+
+ # This is a convenience method for defining multiple hooks in a single call.
+ def self.hooks(*the_hooks)
+ [the_hooks].flatten.each{ |the_hook| hook(the_hook) }
+ end
+
+ # When defining a hook, we define a method on the instance that corresponds to that
+ # hook. That will be fired when the hook is fired.
+ def self.hook(the_hook)
+ self.send(:define_method, the_hook.to_sym) do
+ perform
+ end
+ end
+
+ def initialize(options = {})
+ @options = {
+ :payload => {}
+ }.merge(options)
+ end
+
+ def enabled?
+ !(config.nil? || config.enabled == false)
+ end
+
+ private
+ def config
+ @options[:config].plugins.send(self.class.name.to_sym) unless @options[:config].nil? || @options[:config].plugins.nil?
+ end
+
+ def organization
+ unless ::Chef::Config.chef_server_url.nil?
+ split_server_url = Chef::Config.chef_server_url.gsub(/http(s)?:\/\//,"").split('/')
+ if split_server_url.length > 1
+ return "#{split_server_url.last}: "
+ end
+ end
+
+ nil
+ end
+
+ def cookbooks
+ @options[:cookbooks]
+ end
+
+ def environments
+ @options[:environments]
+ end
+
+ def environment_diffs
+ @options[:environment_diffs]
+ end
+
+ def environment_path
+ @options[:environment_path]
+ end
+
+ def cookbook_path
+ @options[:cookbook_path]
+ end
+
+ def role_path
+ File.expand_path(config.role_path.nil? ? "#{cookbook_path}/../roles" : config[:role_path])
+ end
+
+ def node_path
+ File.expand_path(config.role_path.nil? ? "#{cookbook_path}/../nodes" : config[:role_path])
+ end
+
+ def object_name
+ @options[:object_name]
+ end
+
+ def object_secondary_name
+ @options[:object_secondary_name]
+ end
+
+ def object_difference
+ @options[:object_difference]
+ end
+
+ def misc_output
+ @options[:misc_output]
+ end
+
+ def ui
+ @options[:ui]
+ end
+
+ def current_user
+ (begin `git config user.name`.chomp; rescue nil; end || ENV['USERNAME'] || ENV['USER']).strip
+ end
+
+ # Wrapper method around require that attempts to include the associated file. If it does not exist
+ # or cannot be loaded, an nice error is produced instead of blowing up.
+ def safe_require(file)
+ begin
+ require file
+ rescue LoadError
+ raise "You are using a plugin for knife-spork that requires #{file}, but you have not installed it. Please either run \"gem install #{file}\", add #{file} to your Gemfile or remove the plugin from your configuration."
+ end
+ end
+ end
+ end
+end