1
0
Fork 0
mirror of https://github.com/thoughtbot/factory_bot.git synced 2022-11-09 11:43:51 -05:00

Move callback_names onto FactoryGirl module

This commit is contained in:
Joshua Clayton 2012-02-17 17:55:30 -05:00
parent 8c3bdf8b82
commit 09e1cead5f
4 changed files with 9 additions and 17 deletions

View file

@ -66,4 +66,8 @@ module FactoryGirl
def self.trait_by_name(name)
traits.find(name)
end
def self.callback_names
[:after_build, :after_create, :after_stub].freeze
end
end

View file

@ -1,7 +1,5 @@
module FactoryGirl
class Callback
VALID_NAMES = [:after_build, :after_create, :after_stub].freeze
attr_reader :name, :block
def initialize(name, block)
@ -26,9 +24,9 @@ module FactoryGirl
private
def check_name
unless VALID_NAMES.include?(name)
unless FactoryGirl.callback_names.include?(name)
raise InvalidCallbackNameError, "#{name} is not a valid callback name. " +
"Valid callback names are #{VALID_NAMES.inspect}"
"Valid callback names are #{FactoryGirl.callback_names.inspect}"
end
end
end

View file

@ -85,6 +85,8 @@ module FactoryGirl
@definition.declare_attribute(Declaration::Implicit.new(name, @definition, @ignore))
elsif args.first.is_a?(Hash) && args.first.has_key?(:factory)
association(name, *args)
elsif FactoryGirl.callback_names.include?(name)
@definition.add_callback(Callback.new(name, block))
else
add_attribute(name, *args, &block)
end
@ -138,18 +140,6 @@ module FactoryGirl
@definition.declare_attribute(Declaration::Association.new(name, options))
end
def after_build(&block)
@definition.add_callback(Callback.new(:after_build, block))
end
def after_create(&block)
@definition.add_callback(Callback.new(:after_create, block))
end
def after_stub(&block)
@definition.add_callback(Callback.new(:after_stub, block))
end
def to_create(&block)
@definition.to_create(&block)
end

View file

@ -28,7 +28,7 @@ describe FactoryGirl::Callback do
end
it "allows valid callback names to be assigned" do
FactoryGirl::Callback::VALID_NAMES.each do |callback_name|
FactoryGirl.callback_names.each do |callback_name|
expect { FactoryGirl::Callback.new(callback_name, lambda {}) }.
to_not raise_error(FactoryGirl::InvalidCallbackNameError)
end