Method: Better.run_plugins

Defined in:
lib/what_cd/better.rb

.run_plugins(path, configured_plugins, quality) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/what_cd/better.rb', line 49

def self.run_plugins(path, configured_plugins, quality)
  # Get this directory
  current_dir = File.dirname(__FILE__)

  # Set the context to be passed around between plugins
  context = {}
  context[:path] = path
  context[:quality] = quality

  # Iterate over the configured plugins and dynamically execute them
  configured_plugins.each do |configured_plugin|
    file = "#{current_dir}/better_plugins/#{configured_plugin}.rb"
    require file
    file_name = File.basename(file, '.rb')
     # using ActiveSupport for camelcase and constantize
    plugin = file_name.camelcase.constantize
    # Check to ensure ruby file defines a class
    if plugin.class == Class
      @log.info "Bettering with plugin #{plugin}"
      context = plugin.new.better(context)
      @log.debug "context returned as #{context}"
    end
  end
end