Sha256: 8d93fc5dbee6d3207d24d4625c0b5e214e57a7d262732d890553fb51340e7d0e

Contents?: true

Size: 871 Bytes

Versions: 1

Compression:

Stored size: 871 Bytes

Contents

module OData
  class EntityType < Type
    attr_reader :base_type
    attr_reader :abstract

    def initialize(options = {})
      super
      @abstract   = options[:abstract]
      @base_type  = options[:base_type]
      @open_type  = options[:open_type]
      @has_stream = options[:has_stream]
      @service    = options[:service]
    end

    def properties
      @properties ||= @service.properties_for_type(name)
    end

    def navigation_properties
      @navigation_properties ||= @service.navigation_properties_for_type(name)
    end

    def navigation_property_by_name(name)
      navigation_properties.find do |navigation_property|
        navigation_property.name == name
      end
    end

    def valid_value?(value)
      value.respond_to?(:odata_type) && (name == value.odata_type || name == value.class.superclass.odata_type.name)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
microsoft_graph-0.1.2 lib/odata/types/entity_type.rb