module Realm::Mixins::ContextInjection::ClassMethods

Public Instance Methods

inject(*names, &block) click to toggle source
# File lib/realm/mixins/context_injection.rb, line 12
def inject(*names, &block)
  names.each do |name|
    define_method(name) do
      raise Realm::DependencyMissing, name unless context.key?(name)

      return context[name] unless block

      var = "@#{name}"
      return instance_variable_get(var) if instance_variable_defined?(var)

      instance_variable_set(var, block.(context[name]))
    end
  end
end