Sha256: 55d022fb0f167f365783364703be59998d97f3f7b2b7d84f4264a97fcd3db465
Contents?: true
Size: 1.13 KB
Versions: 4
Compression:
Stored size: 1.13 KB
Contents
module OData4 module Properties # Defines the Collection OData4 type. class Collection < OData4::Property # Overriding default constructor to avoid converting # value to string. # TODO: Make this the default for all property types? def initialize(name, value, options = {}) super(name, value, options) self.value = value end def value if @value.nil? nil else @value.map(&:value) end end def value=(value) if value.nil? && allows_nil? @value = nil elsif value.respond_to?(:map) @value = value.map.with_index do |element, index| type_class.new("#{name}[#{index}]", element) end else validation_error 'Value must be an array' end end def url_value '[' + @value.map(&:url_value).join(',') + ']' end def type "Collection(#{value_type})" end def value_type options[:value_type] || 'Edm.String' end def type_class OData4::PropertyRegistry[value_type] end end end end
Version data entries
4 entries across 4 versions & 1 rubygems