thoughtbot--shoulda-matchers/spec/support/unit/attribute.rb

47 lines
814 B
Ruby

module UnitTests
class Attribute
DEFAULT_COLUMN_TYPE = :string
DEFAULT_COLUMN_OPTIONS = {
null: false,
array: false,
}.freeze
def initialize(args)
@args = args
end
def name
args.fetch(:name)
end
def column_type
args.fetch(:column_type, DEFAULT_COLUMN_TYPE)
end
def column_options
{
type: column_type,
options: DEFAULT_COLUMN_OPTIONS.merge(args.fetch(:column_options, {})),
}
end
def array?
column_options[:array]
end
def default_value
args.fetch(:default_value) do
if column_options[:null]
nil
else
Shoulda::Matchers::Util.dummy_value_for(value_type, array: array?)
end
end
end
protected
attr_reader :args
end
end