class OData4::Properties::String

Defines the String OData4 type.

Public Instance Methods

default_value() click to toggle source

The default value for the property

# File lib/odata4/properties/string.rb, line 44
def default_value
  options[:default_value]
end
has_default_value?() click to toggle source

Does the property have a default value

# File lib/odata4/properties/string.rb, line 39
def has_default_value?
  not(options[:default_value].nil?)
end
is_unicode?() click to toggle source

Is the property value Unicode encoded

# File lib/odata4/properties/string.rb, line 34
def is_unicode?
  options[:unicode]
end
type() click to toggle source

The OData4 type name

# File lib/odata4/properties/string.rb, line 29
def type
  'Edm.String'
end
url_value() click to toggle source

Value to be used in URLs. @return [String]

# File lib/odata4/properties/string.rb, line 24
def url_value
  "'#{value}'"
end
value() click to toggle source

Returns the property value, properly typecast @return [String,nil]

# File lib/odata4/properties/string.rb, line 7
def value
  if (@value.nil? || @value.empty?) && allows_nil?
    nil
  else
    encode_value(@value)
  end
end
value=(new_value) click to toggle source

Sets the property value @params new_value [to_s,nil]

# File lib/odata4/properties/string.rb, line 17
def value=(new_value)
  validate(new_value)
  @value = new_value.nil? ? nil : encode_value(new_value.to_s)
end

Private Instance Methods

default_options() click to toggle source
Calls superclass method OData4::Property#default_options
# File lib/odata4/properties/string.rb, line 50
def default_options
  super.merge({
    unicode: true,
    default_value: nil
  })
end
encode_value(new_value) click to toggle source
# File lib/odata4/properties/string.rb, line 63
def encode_value(new_value)
  if options[:unicode]
    new_value.encode(Encoding::UTF_8)
  else
    new_value.encode(Encoding::ASCII)
  end
end
validate(new_value) click to toggle source
# File lib/odata4/properties/string.rb, line 57
def validate(new_value)
  if new_value.nil? && !allows_nil?
    validation_error 'This property does not allow for nil values to be set'
  end
end