Sha256: 9b1e8a702f67a5ad4540d87346545890ddc51d772cc1866b214ba95538c7dc7e
Contents?: true
Size: 861 Bytes
Versions: 5
Compression:
Stored size: 861 Bytes
Contents
module Support module Objects extend ActiveSupport::Concern module ClassMethods def uses_objects(*objects) before { create_objects(*objects) } end end def create_objects(*objects) objects.each { |object| create_object(object) } end def remove_objects(*objects) objects.each { |object| remove_object(object) } end def create_object(object) remove_object(object) Kernel.const_set(object, Object(object)) end def remove_object(object) Kernel.send(:remove_const, object) if Kernel.const_defined?(object) end def Object(name=nil) Class.new.tap do |object| object.class_eval """ def self.name; '#{name}' end def self.to_s; '#{name}' end """ if name object.send(:include, Toy::Object) end end end end
Version data entries
5 entries across 5 versions & 1 rubygems