class RSpec::Matchers::BuiltIn::AbleToMatcher

Public Class Methods

new(operation, class_or_record = nil) click to toggle source
# File lib/bali/rspec/able_to_matcher.rb, line 5
def initialize(operation, class_or_record = nil)
  @operation = operation
  @class_or_record = class_or_record
end

Public Instance Methods

description() click to toggle source
# File lib/bali/rspec/able_to_matcher.rb, line 29
def description
  "be able to #{@operation}"
end
failure_message() click to toggle source
# File lib/bali/rspec/able_to_matcher.rb, line 21
def failure_message
  "expected to be able to #{@operation}, but actually cannot"
end
failure_message_when_negated() click to toggle source
# File lib/bali/rspec/able_to_matcher.rb, line 25
def failure_message_when_negated
  "expected not to be able to #{@operation}, but actually can"
end
matches?(actor) click to toggle source
# File lib/bali/rspec/able_to_matcher.rb, line 10
def matches?(actor)
  if @class_or_record
    rule_class = "#{@class_or_record.class.name}#{Bali.config.suffix}".constantize
    rule_class.can?(actor, @operation, @class_or_record)
  else
    @class_or_record = actor
    rule_class = "#{@class_or_record.name}#{Bali.config.suffix}".constantize
    rule_class.can?(nil, @operation, @class_or_record)
  end
end