Sha256: 7e88dbf0df25aa4a6616ea5ac66467872e5c2b30c3c4271414562d543eb31f6b
Contents?: true
Size: 733 Bytes
Versions: 2
Compression:
Stored size: 733 Bytes
Contents
module SmartKv::Register def required(*args) @required ||= superclass == SmartKv ? Set.new : superclass.required_keys.dup @required += args @optional -= @required if @optional @required end def required_keys @required.to_a end def optional(*args) @optional ||= superclass == SmartKv ? Set.new : superclass.optional_keys.dup @optional += args @required -= @optional if @required @optional end def optional_keys @optional.to_a end def new(*args) super(@required.to_a, @optional.to_a, @callable_as, *args) end def callable_as(klass) @callable_as = superclass == SmartKv ? klass : superclass.callable_class end def callable_class @callable_as end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
smart_kv-0.2.3 | lib/smart_kv/register.rb |
smart_kv-0.1.4 | lib/smart_kv/register.rb |