Sha256: 8bd9fbd287fa4a89675efa8f1c9e090138e99119333efa7604bf4e54a1d5af49
Contents?: true
Size: 710 Bytes
Versions: 5
Compression:
Stored size: 710 Bytes
Contents
module ModelMacros # Create a new ActiveRecord model def spawn_model(klass_name, &block) spawn_object klass_name, ActiveRecord::Base do instance_exec(&block) if block end end # Create a new Encore::Serializer object def spawn_serializer(klass_name, &block) spawn_object klass_name, Encore::Serializer::Base do instance_exec(&block) if block end end protected # Create a new model class def spawn_object(klass_name, parent_klass, &block) Object.instance_eval { remove_const klass_name } if Object.const_defined?(klass_name) Object.const_set(klass_name, Class.new(parent_klass)) Object.const_get(klass_name).class_eval(&block) if block_given? end end
Version data entries
5 entries across 5 versions & 1 rubygems