Sha256: 68bd44902ae549a477561ef0cb36b90b3ab0e903da506f615b87629b320efac5
Contents?: true
Size: 652 Bytes
Versions: 2
Compression:
Stored size: 652 Bytes
Contents
require "declarative/version" require "declarative/definitions" require "declarative/defaults" require "declarative/schema" module Declarative module DSL def heritage @heritage ||= Heritage.new end end module Inheritance def included(includer) heritage.(includer) end end class Heritage < Array def record(method, name, options=nil, &block) self << {method: method, args: [name, options ? options.dup : nil].compact, block: block} # DISCUSS: options.dup. end def call(inheritor) each do |cfg| inheritor.send(cfg[:method], *cfg[:args], &cfg[:block]) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
declarative-0.0.3 | lib/declarative.rb |
declarative-0.0.2 | lib/declarative.rb |