class Pathway::Operation

Public Class Methods

inherited(subclass) click to toggle source
Calls superclass method
# File lib/pathway.rb, line 24
def self.inherited(subclass)
  super
  subclass.const_set :DSL, Class.new(self::DSL)
end
plugin(name, *args) click to toggle source
# File lib/pathway.rb, line 12
def self.plugin(name, *args)
  require "pathway/plugins/#{Inflector.underscore(name)}" if name.is_a?(Symbol)

  plugin = name.is_a?(Module) ? name : Plugins.const_get(Inflector.camelize(name))

  self.extend plugin::ClassMethods if plugin.const_defined? :ClassMethods
  self.include plugin::InstanceMethods if plugin.const_defined? :InstanceMethods
  self::DSL.include plugin::DSLMethods if plugin.const_defined? :DSLMethods

  plugin.apply(self, *args) if plugin.respond_to?(:apply)
end