Module: Clowne::Declarations
- Defined in:
- lib/clowne/declarations.rb,
lib/clowne/declarations/base.rb,
lib/clowne/declarations/trait.rb,
lib/clowne/declarations/init_as.rb,
lib/clowne/declarations/nullify.rb,
lib/clowne/declarations/finalize.rb,
lib/clowne/declarations/after_clone.rb,
lib/clowne/declarations/after_persist.rb,
lib/clowne/declarations/exclude_association.rb,
lib/clowne/declarations/include_association.rb
Overview
:nodoc:
Defined Under Namespace
Classes: AfterClone, AfterPersist, Base, ExcludeAssociation, Finalize, IncludeAssociation, InitAs, Nullify, Trait
Class Method Summary collapse
Class Method Details
.add(id, declaration = nil) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/clowne/declarations.rb', line 10 def add(id, declaration = nil) declaration = Proc.new if block_given? if declaration.is_a?(Class) DSL.send(:define_method, id) do |*args, &block| declarations.push declaration.new(*args, &block) end elsif declaration.is_a?(Proc) DSL.send(:define_method, id, &declaration) else raise ArgumentError, "Unsupported declaration type: #{declaration.class}" end end |