module Pavlov::Concern

Public Class Methods

extended(base) click to toggle source
# File lib/pavlov/concern.rb, line 29
def self.extended(base)
  base.instance_variable_set('@_dependencies', [])
end

Public Instance Methods

append_features(base) click to toggle source
Calls superclass method
# File lib/pavlov/concern.rb, line 33
def append_features(base)
  if base.instance_variable_defined?('@_dependencies')
    base.instance_variable_get('@_dependencies') << self
    return false
  else
    return false if base < self
    @_dependencies.each { |dep| base.send(:include, dep) }
    super
    base.extend const_get('ClassMethods') if const_defined?('ClassMethods')
    base.class_eval(&@_included_block) if instance_variable_defined?('@_included_block')
  end
end
included(base = nil, &block) click to toggle source
Calls superclass method
# File lib/pavlov/concern.rb, line 46
def included(base = nil, &block)
  if base.nil?
    @_included_block = block
  else
    super
  end
end