Sha256: 311827dae166a56b0cc0f3151f26d0f844e1cbd563d5d1eea2b7930f94d3521d
Contents?: true
Size: 1.08 KB
Versions: 3
Compression:
Stored size: 1.08 KB
Contents
# frozen_string_literal: true require 'deco_lite' require 'securerandom' module Dsu module Models class Entry < DecoLite::Model validates :uuid, presence: true, format: { with: /\A[0-9a-f]{8}\z/i, message: 'is the wrong format. ' \ '0-9, a-f, and 8 characters were expected.' \ } validates :description, presence: true, length: { minimum: 2, maximum: 256 } def initialize(description:, uuid: nil) raise ArgumentError, 'description is nil' if description.nil? raise ArgumentError, 'description is the wrong object type' unless description.is_a?(String) raise ArgumentError, 'uuid is the wrong object type' unless uuid.is_a?(String) || uuid.nil? uuid ||= SecureRandom.uuid[0..7] super(hash: { uuid: uuid, description: description }) end def required_fields %i[uuid description] end def ==(other) return false unless other.is_a?(Entry) uuid == other.uuid && description == other.description end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dsu-0.1.0.alpha.4 | lib/dsu/models/entry.rb |
dsu-0.1.0.alpha.3 | lib/dsu/models/entry.rb |
dsu-0.1.0.alpha.2 | lib/dsu/models/entry.rb |