module Hefted::ClassMethod
Attributes
hefts[R]
Public Instance Methods
hefted(**args)
click to toggle source
# File lib/hefted/class_method.rb, line 5 def hefted(**args) arguments = const_join(args) template = Base.new(*arguments.keys) self.const_set(arguments.name, template.new(*arguments.values).freeze) @hefts = (@hefts.nil? ? [] : @hefts) << arguments.name end
release_hefted(*names)
click to toggle source
# File lib/hefted/class_method.rb, line 13 def release_hefted(*names) names.each do |name| remove_const(name.to_camel) if const_defined?(name.to_camel) end end
Private Instance Methods
const_join(**args)
click to toggle source
# File lib/hefted/class_method.rb, line 78 def const_join(**args) arguments = Argument.new(**args) if arguments.join? _consts = arguments.joins.each_with_object({}) do |name, hash| hash.merge!(self.const_get(name).to_h) end.merge!(arguments.keys.zip(arguments.values).to_h) Argument.new(name: arguments.name, **_consts) else arguments end end