Module: Plover::Concern

Defined in:
lib/plover.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



12
13
14
# File 'lib/plover.rb', line 12

def self.extended(base)
  base.instance_variable_set(:@_included_blocks, [])
end

Instance Method Details

#apply_concern(base) ⇒ Object



26
27
28
29
30
# File 'lib/plover.rb', line 26

def apply_concern(base)
  base.extend(const_get(:ClassMethods)) if const_defined?(:ClassMethods)
  @_included_blocks.each { |blk| base.class_eval(&blk) }
  base.include(self)
end

#class_methods(&block) ⇒ Object



22
23
24
# File 'lib/plover.rb', line 22

def class_methods(&block)
  const_set(:ClassMethods, Module.new(&block))
end

#included(base = nil, &block) ⇒ Object



16
17
18
19
20
# File 'lib/plover.rb', line 16

def included(base = nil, &block)
  return unless base.nil?

  @_included_blocks << block if block_given?
end