lib/ews/soap/builders/ews_builder.rb
def dispatch_field_uri!(uri, ns=NS_EWS_MESSAGES)
      type = uri.keys.first
      vals = uri[type].is_a?(Array) ? uri[type] : [uri[type]]
      case type
      when :field_uRI, :field_uri
        vals.each do |val|
          value = val.is_a?(Hash) ? val[type] : val
          nbuild[ns].FieldURI('FieldURI' => value)
        end
      when :indexed_field_uRI, :indexed_field_uri
        vals.each do |val|
          nbuild[ns].IndexedFieldURI(
            'FieldURI'   => (val[:field_uRI] || val[:field_uri]),
            'FieldIndex' => val[:field_index]
          )
        end
      when :extended_field_uRI, :extended_field_uri
        vals.each do |val|
          nbuild[ns].ExtendedFieldURI {
            nbuild.parent['DistinguishedPropertySetId'] = val[:distinguished_property_set_id] if val[:distinguished_property_set_id]
            nbuild.parent['PropertySetId'] = val[:property_set_id] if val[:property_set_id]
            nbuild.parent['PropertyTag'] = val[:property_tag] if val[:property_tag]
            nbuild.parent['PropertyName'] = val[:property_name] if val[:property_name]
            nbuild.parent['PropertyId'] = val[:property_id] if val[:property_id]
            nbuild.parent['PropertyType'] = val[:property_type] if val[:property_type]
          }
        end
      else
        raise EwsBadArgumentError, "Bad URI type. #{type}"
      end
    end
def dispatch_field_uri!(uri, ns=NS_EWS_MESSAGES)
      type = uri.keys.first
      vals = uri[type].is_a?(Array) ? uri[type] : [uri[type]]
      case type
      when :field_uRI, :field_uri
        vals.each do |val|
          value = val.is_a?(Hash) ? val[type] : val
          nbuild[ns].FieldURI('FieldURI' => value)
        end
      when :indexed_field_uRI, :indexed_field_uri
        vals.each do |val|
          nbuild[ns].IndexedFieldURI(
            'FieldURI'   => (val[:field_uRI] || val[:field_uri]),
            'FieldIndex' => val[:field_index]
          )
        end
      when :extended_field_uRI, :extended_field_uri
        vals.each do |val|
          nbuild[ns].ExtendedFieldURI {
            nbuild.parent['DistinguishedPropertySetId'] = val[:distinguished_property_set_id] if val[:distinguished_property_set_id]
            nbuild.parent['PropertySetId'] = val[:property_set_id] if val[:property_set_id]
            nbuild.parent['PropertyTag'] = val[:property_tag] if val[:property_tag]
            nbuild.parent['PropertyName'] = val[:property_name] if val[:property_name]
            nbuild.parent['PropertyId'] = val[:property_id] if val[:property_id]
            nbuild.parent['PropertyType'] = val[:property_type] if val[:property_type]
          }
        end
      else
        raise EwsBadArgumentError, "Bad URI type. #{type}"
      end
    end
def dispatch_field_uri! ( uri , ns = NS_EWS_MESSAGES ) type = uri . keys . first vals = uri [ type ] . is_a? ( Array ) ? uri [ type ] : [ uri [ type ] ] case type when :field_uRI , :field_uri vals . each do | val | value = val . is_a? ( Hash ) ? val [ type ] : val nbuild [ ns ] . FieldURI ( 'FieldURI' => value ) end when :indexed_field_uRI , :indexed_field_uri vals . each do | val | nbuild [ ns ] . IndexedFieldURI ( 'FieldURI' => ( val [ :field_uRI ] || val [ :field_uri ] ) , 'FieldIndex' => val [ :field_index ] ) end when :extended_field_uRI , :extended_field_uri vals . each do | val | nbuild [ ns ] . ExtendedFieldURI { nbuild . parent [ 'DistinguishedPropertySetId' ] = val [ :distinguished_property_set_id ] if val [ :distinguished_property_set_id ] nbuild . parent [ 'PropertySetId' ] = val [ :property_set_id ] if val [ :property_set_id ] nbuild . parent [ 'PropertyTag' ] = val [ :property_tag ] if val [ :property_tag ] nbuild . parent [ 'PropertyName' ] = val [ :property_name ] if val [ :property_name ] nbuild . parent [ 'PropertyId' ] = val [ :property_id ] if val [ :property_id ] nbuild . parent [ 'PropertyType' ] = val [ :property_type ] if val [ :property_type ] } end else raise EwsBadArgumentError , "Bad URI type. #{type}" end end
A helper to dispatch to a FieldURI, IndexedFieldURI, or an ExtendedFieldURI
 @todo Implement ExtendedFieldURI
A helper to dispatch to a FieldURI IndexedFieldURI or an ExtendedFieldURI