Sha256: da28717c23725ae2b5509783693db75a153764bdbe648c44865a8e920cc0c526
Contents?: true
Size: 1.09 KB
Versions: 15
Compression:
Stored size: 1.09 KB
Contents
module Praxis class Collection < Attributor::Collection include Types::MediaTypeCommon def self.of(type) if defined?(type::Collection) return type::Collection end klass = super klass.anonymous_type if type < Praxis::Types::MediaTypeCommon klass.member_type type type.const_set :Collection, klass else warn "DEPRECATION: Praxis::Collection.of() for non-MediaTypes will be unsupported in 1.0. Use Attributor::Collection.of() instead." Attributor::Collection.of(type) end end def self.member_type(type=nil) unless type.nil? @member_type = type @views = nil self.identifier(type.identifier + ';type=collection') unless type.identifier.nil? end @member_type end def self.views @views ||= begin @member_type.views.each_with_object(Hash.new) do |(name, view), hash| hash[name] = Praxis::CollectionView.new(name, @member_type, view) end end end def self.domain_model @member_type.domain_model end end end
Version data entries
15 entries across 15 versions & 1 rubygems