Sha256: 260a09cbff7cd3f0a908d6365c75c8287d119403703c842e79025591fb024406
Contents?: true
Size: 1.09 KB
Versions: 3
Compression:
Stored size: 1.09 KB
Contents
module FixtureReplacement class MethodGenerator def initialize(builder, evaluation_module) @builder = builder @evaluation_module = evaluation_module end def generate_methods builder = @builder builder_name = builder.fixture_name @evaluation_module.module_eval do define_method("valid_#{builder_name}_attributes") do |*args| obj = __send__ "new_#{builder_name}" obj.attributes end define_method("create_#{builder_name}") do |*args| obj = __send__("new_#{builder_name}", *args) obj.save! obj end define_method("new_#{builder_name}") do |*args| new_object = builder.instantiate(*args) end define_method("default_#{builder_name}") do |*args| warning = "default_#{builder_name} has been deprecated. " warning << "Please replace instances of default_#{builder_name} with the new_#{builder_name} method" Kernel.warn(warning) __send__ "new_#{builder_name}" end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems