class Shoulda::Matchers::ActiveRecord::DefineEnumForMatcher
@private
Attributes
attribute_name[R]
model[R]
options[R]
Public Class Methods
new(attribute_name)
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 55 def initialize(attribute_name) @attribute_name = attribute_name @options = {} end
Public Instance Methods
description()
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 80 def description desc = "define :#{attribute_name} as an enum" if options[:expected_enum_values] desc << " with #{options[:expected_enum_values]}" end desc end
failure_message()
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 70 def failure_message "Expected #{expectation}" end
Also aliased as: failure_message_for_should
failure_message_when_negated()
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 75 def failure_message_when_negated "Did not expect #{expectation}" end
Also aliased as: failure_message_for_should_not
matches?(subject)
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 65 def matches?(subject) @model = subject enum_defined? && enum_values_match? end
with(expected_enum_values)
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 60 def with(expected_enum_values) options[:expected_enum_values] = expected_enum_values self end
Protected Instance Methods
actual_enum_values()
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 106 def actual_enum_values model.class.send(enum_method) end
enum_defined?()
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 110 def enum_defined? model.class.respond_to?(enum_method) end
enum_method()
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 102 def enum_method attribute_name.to_s.pluralize end
enum_values_match?()
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 114 def enum_values_match? expected_enum_values.empty? || actual_enum_values == expected_enum_values end
expectation()
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 94 def expectation "#{model.class.name} to #{description}" end
expected_enum_values()
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 98 def expected_enum_values hashify(options[:expected_enum_values]).with_indifferent_access end
hashify(value)
click to toggle source
# File lib/shoulda/matchers/active_record/define_enum_for_matcher.rb, line 118 def hashify(value) if value.nil? return {} end if value.is_a?(Array) new_value = {} value.each_with_index do |v, i| new_value[v] = i end new_value else value end end