after_cleanup_callbacks()
click to toggle source
def after_cleanup_callbacks
collect_fixture_callbacks(:cleanup, :after)
end
after_setup_callbacks()
click to toggle source
def after_setup_callbacks
collect_fixture_callbacks(:setup, :after)
end
after_teardown_callbacks()
click to toggle source
def after_teardown_callbacks
collect_fixture_callbacks(:teardown, :after)
end
before_cleanup_callbacks()
click to toggle source
def before_cleanup_callbacks
collect_fixture_callbacks(:cleanup, :before)
end
before_setup_callbacks()
click to toggle source
def before_setup_callbacks
collect_fixture_callbacks(:setup, :before)
end
before_teardown_callbacks()
click to toggle source
def before_teardown_callbacks
collect_fixture_callbacks(:teardown, :before)
end
cleanup(*method_names, &callback)
click to toggle source
def cleanup(*method_names, &callback)
register_fixture(:cleanup, *method_names, &callback)
end
register_cleanup_callback(method_name_or_callback, options)
click to toggle source
def register_cleanup_callback(method_name_or_callback, options)
register_fixture_callback(:cleanup, method_name_or_callback,
options, :before, :prepend)
end
register_setup_callback(method_name_or_callback, options)
click to toggle source
def register_setup_callback(method_name_or_callback, options)
register_fixture_callback(:setup, method_name_or_callback,
options, :after, :append)
end
register_teardown_callback(method_name_or_callback, options)
click to toggle source
def register_teardown_callback(method_name_or_callback, options)
register_fixture_callback(:teardown, method_name_or_callback,
options, :before, :prepend)
end
setup(*method_names, &callback)
click to toggle source
def setup(*method_names, &callback)
register_fixture(:setup, *method_names, &callback)
end
teardown(*method_names, &callback)
click to toggle source
def teardown(*method_names, &callback)
register_fixture(:teardown, *method_names, &callback)
end
unregister_cleanup(*method_names_or_callbacks)
click to toggle source
def unregister_cleanup(*method_names_or_callbacks)
unregister_fixture(:cleanup, *method_names_or_callbacks)
end
unregister_cleanup_callback(method_name_or_callback)
click to toggle source
def unregister_cleanup_callback(method_name_or_callback)
unregister_fixture_callback(:cleanup, method_name_or_callback)
end
unregister_setup(*method_names_or_callbacks)
click to toggle source
def unregister_setup(*method_names_or_callbacks)
unregister_fixture(:setup, *method_names_or_callbacks)
end
unregister_setup_callback(method_name_or_callback)
click to toggle source
def unregister_setup_callback(method_name_or_callback)
unregister_fixture_callback(:setup, method_name_or_callback)
end
unregister_teardown(*method_names_or_callbacks)
click to toggle source
def unregister_teardown(*method_names_or_callbacks)
unregister_fixture(:teardown, *method_names_or_callbacks)
end
unregister_teardown_callback(method_name_or_callback)
click to toggle source
def unregister_teardown_callback(method_name_or_callback)
unregister_fixture_callback(:teardown, method_name_or_callback)
end
add_fixture_callback(how, variable_name, method_name_or_callback)
click to toggle source
def add_fixture_callback(how, variable_name, method_name_or_callback)
callbacks = instance_eval("#{variable_name} ||= []")
if how == :prepend
callbacks = [method_name_or_callback] | callbacks
else
callbacks = callbacks | [method_name_or_callback]
end
instance_variable_set(variable_name, callbacks)
end
collect_fixture_callbacks(fixture, order)
click to toggle source
def collect_fixture_callbacks(fixture, order)
callbacks_variable = registered_callbacks_variable_name(fixture, order)
unregistered_callbacks_variable =
unregistered_callbacks_variable_name(fixture)
base_index = ancestors.index(Fixture)
interested_ancestors = ancestors[0, base_index].reverse
interested_ancestors.inject([]) do |result, ancestor|
if ancestor.is_a?(Class)
ancestor.class_eval do
callbacks = instance_eval("#{callbacks_variable} ||= []")
unregistered_callbacks =
instance_eval("#{unregistered_callbacks_variable} ||= []")
(result | callbacks) - unregistered_callbacks
end
else
result
end
end
end
register_fixture(fixture, *method_names, &callback)
click to toggle source
def register_fixture(fixture, *method_names, &callback)
options = {}
options = method_names.pop if method_names.last.is_a?(Hash)
callbacks = method_names
callbacks << callback if callback
attribute(fixture, options, *callbacks)
end
register_fixture_callback(fixture, method_name_or_callback, options, default_order, default_how)
click to toggle source
def register_fixture_callback(fixture, method_name_or_callback, options,
default_order, default_how)
unless valid_register_fixture_options?(options)
message = "must be {:before => :prepend}, " +
"{:before => :append}, {:after => :prepend} or " +
"{:after => :append}: #{options.inspect}"
raise ArgumentError, message
end
if options.empty?
order, how = default_order, default_how
else
order, how = options.to_a.first
end
variable_name = registered_callbacks_variable_name(fixture, order)
add_fixture_callback(how, variable_name, method_name_or_callback)
end
registered_callbacks_variable_name(fixture, order)
click to toggle source
def registered_callbacks_variable_name(fixture, order)
"@#{order}_#{fixture}_callbacks"
end
unregister_fixture(fixture, *method_names_or_callbacks)
click to toggle source
def unregister_fixture(fixture, *method_names_or_callbacks)
attribute(fixture, nil, *method_names_or_callbacks)
end
unregister_fixture_callback(fixture, method_name_or_callback)
click to toggle source
def unregister_fixture_callback(fixture, method_name_or_callback)
variable_name = unregistered_callbacks_variable_name(fixture)
add_fixture_callback(:append, variable_name, method_name_or_callback)
end
unregistered_callbacks_variable_name(fixture)
click to toggle source
def unregistered_callbacks_variable_name(fixture)
"@unregistered_#{fixture}_callbacks"
end
valid_register_fixture_options?(options)
click to toggle source
def valid_register_fixture_options?(options)
return true if options.empty?
return false if options.size > 1
key = options.keys.first
[:before, :after].include?(key) and
[:prepend, :append].include?(options[key])
end