Skip to content

Instantly share code, notes, and snippets.

@dan-manges
Created February 26, 2009 01:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dan-manges/70566 to your computer and use it in GitHub Desktop.
Save dan-manges/70566 to your computer and use it in GitHub Desktop.
::FixtureReplacement.class_eval do
def self.insert_defaults
return if @inserted_fixture_replacement_defaults
@inserted_fixture_replacement_defaults = true
@_defaults = {}
FixtureReplacementController::AttributeCollection.instances.map(&:fixture_name).each do |name|
insert_default name
end
end
def self.insert_default(name)
current_default = @_defaults[name]
return current_default if current_default
@_defaults[name] = FixtureReplacement.send "create_#{name}"
end
def self.get_default(name)
@_defaults[name] || insert_default(name)
end
end
::FixtureReplacementController::DelayedEvaluationProc.class_eval do
def evaluate(caller)
default_obj, params = self.call
FixtureReplacement.get_default(default_obj.fixture_name)
end
end
::Fixtures.class_eval do
(class << self; self; end).class_eval do
def create_fixtures_with_factory_defaults(*args)
returning create_fixtures_without_factory_defaults(*args) do
FixtureReplacement.insert_defaults
end
end
alias_method_chain :create_fixtures, :factory_defaults
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment