class DynamicsCRM::XML::ConditionExpression
Loosely based on msdn.microsoft.com/en-us/library/gg334419.aspx Creates a ConditionExpression
element to be used in retrieve calls.
Attributes
attr_name[RW]
operator[RW]
type[RW]
value[RW]
Public Class Methods
new(attr_name, operator, value = nil, type: nil)
click to toggle source
# File lib/dynamics_crm/xml/condition_expression.rb, line 8 def initialize(attr_name, operator, value = nil, type: nil) @attr_name = attr_name @operator = operator # value can be optional to support Null and NotNull operators @value = value @values = Array(value) @type = type end
Public Instance Methods
to_xml(options = {})
click to toggle source
# File lib/dynamics_crm/xml/condition_expression.rb, line 30 def to_xml(options = {}) ns = options[:namespace] ? options[:namespace] : 'a' expression = %(<#{ns}:ConditionExpression> <#{ns}:AttributeName>#{attr_name}</#{ns}:AttributeName> <#{ns}:Operator>#{operator}</#{ns}:Operator> <#{ns}:Values xmlns:d="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> ) @values.each do |v| expression << %(<d:anyType i:type="s:#{value_type}" xmlns:s="http://www.w3.org/2001/XMLSchema">#{v}</d:anyType>) end expression << %( </#{ns}:Values> </#{ns}:ConditionExpression>) expression end
value_type()
click to toggle source
# File lib/dynamics_crm/xml/condition_expression.rb, line 17 def value_type return type unless type.nil? type = @values.first.class.to_s.downcase if type == 'fixnum' type = 'int' elsif %w(trueclass falseclass).include?(type) type = 'boolean' end type end