class Mongoid::Matchers::BeStoredIn

Public Class Methods

new(expected) click to toggle source
# File lib/matchers/be_stored_in.rb, line 8
def initialize(expected)
  @expected_options = expected.transform_values { |v| v.to_sym rescue v }.symbolize_keys
end

Public Instance Methods

description() click to toggle source
# File lib/matchers/be_stored_in.rb, line 17
def description
  "be stored in #{@expected_options.inspect}"
end
failure_message() click to toggle source
# File lib/matchers/be_stored_in.rb, line 21
def failure_message
  "Expected #{@model.inspect} to #{description}, got #{actual_options.inspect}"
end
failure_message_when_negated() click to toggle source
# File lib/matchers/be_stored_in.rb, line 25
def failure_message_when_negated
  "Expected #{@model.inspect} not to #{description}, got #{actual_options.inspect}"
end
matches?(actual) click to toggle source
# File lib/matchers/be_stored_in.rb, line 12
def matches?(actual)
  @model = actual.is_a?(Class) ? actual : actual.class
  actual_options == @expected_options
end

Private Instance Methods

actual_options() click to toggle source
# File lib/matchers/be_stored_in.rb, line 31
def actual_options
  @actual_options ||= begin
    hash = @model.storage_options.slice(*@expected_options.keys)
    hash.each do |option, value|
      hash[option] =
        if value.is_a?(Proc)
          evaluated_value = @model.persistence_context.send("#{option}_name")
          begin
            evaluated_value.to_sym
          rescue StandardError
            evaluated_value
          end
        else
          begin
            value.to_sym
          rescue StandardError
            value
          end
        end
    end
  end
end