Class: Module

Inherits:
Object
  • Object
show all
Defined in:
lib/ventouse/module_declarations.rb

Instance Method Summary collapse

Instance Method Details

#declarations(&blk) ⇒ Object

Usage:

class Model module ModelAspect declarations do has_many :aspect_details validates_presence_of :main_aspect etc end end end



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/ventouse/module_declarations.rb', line 13

def declarations &blk
  raise "There should be only one declarations block" if defined? declarations_block

  class << self
    attr_accessor :declarations_block

    def included(mod)
      mod.class_eval(&declarations_block) unless declarations_block.nil?
    rescue Exception => ex # When autoloading, you never see real exception unless this rescue
      puts ex.message
      puts ex.backtrace.join("\n")
      raise ex
    end
  end
  self.declarations_block = blk
end