Sha256: 37e85e71079afec35ff1972a62f9535f5d231c6cff136a9017ca4a8a8526ca32

Contents?: true

Size: 471 Bytes

Versions: 1

Compression:

Stored size: 471 Bytes

Contents

module Structural
  module Model
    class HasOne < Association
      def value_of(data)
        child = data.fetch(key, &default_value)
        type.new(child) unless child.nil?
      end

      def default
        valid_type_check(super)
      end

      private

      def valid_type_check(v)
        case v
        when Hash then v
        when Proc then valid_type_check(v.call)
        else raise Structural::InvalidDefaultTypeError end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
structural-0.2.0 lib/structural/model/has_one.rb