class DynamicsCRM::Metadata::FilterExpression
Attributes
conditions[RW]
operator[RW]
Public Class Methods
new(operator, conditions=[])
click to toggle source
# File lib/dynamics_crm/metadata/filter_expression.rb, line 7 def initialize(operator, conditions=[]) @operator = operator || 'And' @conditions = conditions end
Public Instance Methods
add_condition(condition)
click to toggle source
# File lib/dynamics_crm/metadata/filter_expression.rb, line 12 def add_condition(condition) @conditions << condition end
get_type(value)
click to toggle source
# File lib/dynamics_crm/metadata/filter_expression.rb, line 16 def get_type(value) type = value.class.to_s.downcase type = "int" if type == "fixnum" type = "boolean" if ["trueclass", "falseclass"].include?(type) type end
to_xml(options={})
click to toggle source
# File lib/dynamics_crm/metadata/filter_expression.rb, line 23 def to_xml(options={}) ns = options[:namespace] ? options[:namespace] : "a" expressions = "" @conditions.each do |condition| attr_name, op, value = condition expressions << %Q{ <#{ns}:MetadataConditionExpression> <#{ns}:PropertyName>#{attr_name}</#{ns}:PropertyName> <#{ns}:ConditionOperator>#{op}</#{ns}:ConditionOperator> <#{ns}:Value i:type='e:#{get_type(value)}' xmlns:e='http://www.w3.org/2001/XMLSchema'>#{value}</#{ns}:Value> </#{ns}:MetadataConditionExpression>} end %Q{<#{ns}:Criteria> <#{ns}:Conditions> #{expressions} </#{ns}:Conditions> <#{ns}:FilterOperator>#{@operator}</#{ns}:FilterOperator> </#{ns}:Criteria>} end