Sha256: 527571ade77896c3378d66ca674a6ecc8c1cd9692db21c65324081ac49fd263d
Contents?: true
Size: 1.2 KB
Versions: 1
Compression:
Stored size: 1.2 KB
Contents
# frozen_string_literal: true require "core/define" require "core/extension" require "core/state" module Core # [public] # module Factory require_relative "factory/version" extend Core::Extension extends dependencies: [Core::State] extends :definition do # [public] # def makes(definable, object, suffix: nil, within: nil) unless object.ancestors.include?(Core::Define) object.include(Core::Define) end __makes__[definable.to_sym] = { object: object, suffix: suffix, within: Array(within) } end # [public] # def make(definable, *namespace, name, **kwargs, &block) definable = __makes__.fetch(definable.to_sym) if (suffix = definable[:suffix]) name = :"#{name}_#{suffix}" end definable[:object].define(*definable[:within], *namespace, name, **kwargs, &block) end # [public] # def makes?(definable) @__makes__.include?(definable.to_sym) end # [public] # def makeables @__makes__.keys end end applies do state :__makes__, :class, default: {} end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
core-factory-0.2.0 | lib/core/factory.rb |