class Interjectable::ClassMethods::SuperclassInjectStatic

Public Instance Methods

override(value, &setter) click to toggle source
# File lib/interjectable/rspec.rb, line 8
def override(value, &setter)
  cvar = "@@#{dependency}"
  klass.remove_class_variable(cvar) if klass.class_variable_defined?(cvar)
  klass.define_singleton_method(dependency) do
    if class_variable_defined?(cvar)
      class_variable_get(cvar)
    else
      class_variable_set(cvar, value != ::Interjectable::ClassMethods::BLANK ? value : instance_eval(&setter))
    end
  end
end
restore() click to toggle source
# File lib/interjectable/rspec.rb, line 20
def restore
  cvar = "@@#{dependency}"
  klass.remove_class_variable(cvar) if klass.class_variable_defined?(cvar)
  klass.singleton_class.remove_method(dependency)
end