Sha256: d20e527b8bc9458f5125952088c3122f80035660c472847b8ca53c6b003fabd5

Contents?: true

Size: 564 Bytes

Versions: 2

Compression:

Stored size: 564 Bytes

Contents

module Commandoes
  class IAmACommand
    include ActiveModel::Validations

    module ClassMethods
      def use(plugin, *args, &block)
        unless plugins.include? plugin
          plugins << plugin
          extend  plugin::ClassMethods    if plugin.const_defined? :ClassMethods
          include plugin::InstanceMethods if plugin.const_defined? :InstanceMethods
        end

        self
      end

    private
      def plugins
        @@pluglins ||= []
      end
    end

    extend ClassMethods

    use self
    use Plugins::ActiveModelPlugin
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
commandoes-0.1.3 lib/commandoes/command.rb
commandoes-0.1.2 lib/commandoes/command.rb