Sha256: 98868d09875a75fcf94966d269eca366e615b1616e6457cd06cb17653afb3985
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
module ModelMacros # Create a new Encore entity def spawn_entity(klass_name, &block) spawn_klass klass_name, Object do include Encore::Entity instance_exec(&block) if block end end # Create a new ActiveRecord model def spawn_model(klass_name, &block) spawn_klass klass_name, ActiveRecord::Base do instance_exec(&block) if block end end # Create a new OpenStruct struct def spawn_struct(klass_name, &block) spawn_klass klass_name, OpenStruct do instance_exec(&block) if block end end # Create a new ActionPack controller def spawn_controller(klass_name, &block) spawn_klass klass_name, ActionController::Base do instance_exec(&block) if block end end protected # Create a new class def spawn_klass(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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
encore-0.0.3 | spec/support/macros/model_macros.rb |