Sha256: 809b959160198a41c4cd3969e9d22428677b5725285858cadb1131a0b8bbc845
Contents?: true
Size: 609 Bytes
Versions: 68
Compression:
Stored size: 609 Bytes
Contents
module Acfs::Model::Attributes class Base attr_reader :options def initialize(opts = {}) @options = opts @options.reverse_merge! allow_nil: true end def nil_allowed? !!options[:allow_nil] end def blank_allowed? !!options[:allow_blank] end def default_value options[:default].is_a?(Proc) ? options[:default] : cast(options[:default]) end def cast(obj) return nil if obj.nil? && nil_allowed? || (obj == '' && blank_allowed?) cast_type obj end def cast_type(obj) raise NotImplementedError end end end
Version data entries
68 entries across 68 versions & 1 rubygems