Method: Azure::Table::EdmType.serialize_query_value

Defined in:
lib/azure/table/edmtype.rb

.serialize_query_value(value) ⇒ Object

Public: Serializes EDM value into proper value to be used in query.

value - String. The value to serialize.

Returns the serialized value



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/azure/table/edmtype.rb', line 79

def self.serialize_query_value(value)
  case value
  when Date, Time, DateTime
    "datetime'#{value.iso8601}'"
  when TrueClass, FalseClass
    value ? "true" : "false"
  when Float, Integer
    value.abs < 2**31 ? value.to_s : value.to_s + "L"
  when GUID
    "guid'#{value.to_s}'"
  when IO, File
    "X'" + value.to_s.unpack("H*").join("") + "'"
  else
    if value != nil && value.encoding.names.include?("BINARY")
      "X'" + value.to_s.unpack("H*").join("") + "'"
    else
      # NULL also is treated as EdmType::STRING
      value.to_s.gsub("'","''");
    end
  end
end