class Liquid::Rails::Rspec::DropMatchers::AssociationMatcher

Attributes

actual[R]
name[R]
options[R]

Public Class Methods

new(name, options) click to toggle source
# File lib/liquid-rails/rspec/drop_matchers.rb, line 64
def initialize(name, options)
  @name    = name
  @options = options
end

Public Instance Methods

class_name(class_name) click to toggle source
# File lib/liquid-rails/rspec/drop_matchers.rb, line 91
def class_name(class_name)
  @options[:class_name] = class_name
  self
end
description() click to toggle source
# File lib/liquid-rails/rspec/drop_matchers.rb, line 96
def description
  "have association #{name}"
end
failure_message() click to toggle source
# File lib/liquid-rails/rspec/drop_matchers.rb, line 100
def failure_message
  %Q{expected #{actual.inspect} to define "#{name}" as :#{options[:type]} association}
end
failure_message_when_negated() click to toggle source
# File lib/liquid-rails/rspec/drop_matchers.rb, line 104
def failure_message_when_negated
  %Q{expected #{actual.inspect} not to define "#{name}" as :#{options[:type]} association}
end
matches?(actual) click to toggle source
# File lib/liquid-rails/rspec/drop_matchers.rb, line 69
def matches?(actual)
  @actual = actual

  association = associations[name]
  result = association.present? && association[:type] == options[:type]
  result = result && association[:options][:scope] == options[:scope]           if options[:scope]
  result = result && association[:options][:with] == options[:with]             if options[:with]
  result = result && association[:options][:class_name] == options[:class_name] if options[:class_name]

  result
end
scope(scope_name) click to toggle source
# File lib/liquid-rails/rspec/drop_matchers.rb, line 86
def scope(scope_name)
  @options[:scope] = scope_name
  self
end
with(class_name) click to toggle source
# File lib/liquid-rails/rspec/drop_matchers.rb, line 81
def with(class_name)
  @options[:with] = class_name
  self
end

Private Instance Methods

associations() click to toggle source
# File lib/liquid-rails/rspec/drop_matchers.rb, line 118
def associations
  drop._associations
end
drop() click to toggle source
# File lib/liquid-rails/rspec/drop_matchers.rb, line 110
def drop
  if actual.is_a?(Class)
    actual
  else
    actual.class
  end
end