class HasSerialized::Matchers::HaveSerializedAttribute
Public Class Methods
new(attr_name)
click to toggle source
# File lib/has_serialized/matchers/have_serialized_attribute.rb, line 4 def initialize(attr_name) @attr_name = attr_name end
Public Instance Methods
description()
click to toggle source
# File lib/has_serialized/matchers/have_serialized_attribute.rb, line 36 def description "Ensures that #{@model} has serialized attribute #{@attr_name}." end
failure_message()
click to toggle source
# File lib/has_serialized/matchers/have_serialized_attribute.rb, line 23 def failure_message base_message = %Q{expected #{@model.class.name} to have serialized attribute #{@attr_name} in #{@column} } if @value.to_s base_message += "with default value #{@value}" end base_message end
in(column)
click to toggle source
# File lib/has_serialized/matchers/have_serialized_attribute.rb, line 13 def in(column) @column = column self end
matches?(model)
click to toggle source
# File lib/has_serialized/matchers/have_serialized_attribute.rb, line 8 def matches?(model) @model = model methods_correct? && values_correct? end
with_default_value(value)
click to toggle source
# File lib/has_serialized/matchers/have_serialized_attribute.rb, line 18 def with_default_value(value) @value = value self end
Private Instance Methods
methods_correct?()
click to toggle source
# File lib/has_serialized/matchers/have_serialized_attribute.rb, line 42 def methods_correct? unless @column fail %Q{ Please specify the column in which to find the `#{@attr_name}`. Ex: have_serialized_attribute(:#{@attr_name}).in(:column_name) } end serialized_column = @model.send(@column) serialized_column and serialized_column.has_key? @attr_name end
values_correct?()
click to toggle source
# File lib/has_serialized/matchers/have_serialized_attribute.rb, line 54 def values_correct? if @value @model.send(@attr_name) == @value else true end end