class Extensions
Public Class Methods
[](extension_name)
click to toggle source
# File lib/extensions.rb, line 6 def self.[](extension_name) @@extensions[extension_name] end
new(location = File.join(File.dirname(__FILE__), 'extensions'))
click to toggle source
# File lib/extensions.rb, line 10 def initialize(location = File.join(File.dirname(__FILE__), 'extensions')) validate_location(location) @location = File.join(location, '*.rb') load_extensions end
Private Instance Methods
compare_fn(name, &block)
click to toggle source
# File lib/extensions.rb, line 37 def compare_fn(name, &block) @@extensions[name] = { :compare_fn => block } end
create_resource(name, &block)
click to toggle source
# File lib/extensions.rb, line 33 def create_resource(name, &block) @@extensions[name] = { :resource => block } end
load_extensions()
click to toggle source
# File lib/extensions.rb, line 18 def load_extensions extension_files = Dir.glob(@location) extension_files.each do |extension_file| next if File.directory?(extension_file) begin Log.debug { "Loading extension file - #{extension_file}"} instance_eval(File.read(extension_file)) Log.debug { "Successfully loaded extension file - #{extension_file}"} rescue Exception => e Log.debug { "Error in extension #{extension_file} - #{e}" } raise "Cannot load extension file '#{extension_file}'" end end end
validate_location(location)
click to toggle source
# File lib/extensions.rb, line 41 def validate_location(location) unless File.exist?(location) raise "Extensions directory '#{location}' does not exist" end unless File.directory?(location) raise "Extensions direcotry '#{location}' is not a directory" end end