Class: EWS::Builder

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/ews/builder.rb

Overview

AdditionalProperties BaseShape

BodyType IncludeMimeContent

Instance Method Summary collapse

Constructor Details

#initialize(action_node, opts, &block) ⇒ Builder

Returns a new instance of Builder.



24
25
26
27
28
29
# File 'lib/ews/builder.rb', line 24

def initialize(action_node, opts, &block)
  @action_node, @opts = action_node, opts
  @resolve_names_builder = ResolveNamesBuilder.new(action_node)
  @shape_builder = ShapeBuilder.new(action_node, opts)
  instance_eval(&block) if block_given?
end

Instance Method Details

#attachment_ids!(attachment_ids) ⇒ Object



43
44
45
46
47
# File 'lib/ews/builder.rb', line 43

def attachment_ids!(attachment_ids)
  id_container!('tns:AttachmentIds', attachment_ids) do |container_node, id|
    id_node! container_node, 't:AttachmentId', id
  end
end

#folder_id!(container_node, folder_id, opts = {}) ⇒ Object

DistinguishedFolderId is created otherwise FolderId is used

DistinguishedFolderId

FolderId

Parameters:

  • parent (Handsoap::XmlMason::Node)
  • folder_id (String, Symbol)

    When a EWS::DistinguishedFolder a

  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :change_key (Symbol)

See Also:



78
79
80
81
82
83
84
85
# File 'lib/ews/builder.rb', line 78

def folder_id!(container_node, folder_id, opts = {})
  node_name = if DistinguishedFolders.include?(folder_id)
    't:DistinguishedFolderId'
  else
    't:FolderId'
  end
  id_node! container_node, node_name, folder_id, opts
end

#folder_id_container!(container_node_name, folder_ids) ⇒ Object



37
38
39
40
41
# File 'lib/ews/builder.rb', line 37

def folder_id_container!(container_node_name, folder_ids)
  id_container!(container_node_name, folder_ids) do |container_node, id|
    folder_id! container_node, id, @opts
  end
end

#id_container!(container_node_name, ids) ⇒ Object



49
50
51
52
53
# File 'lib/ews/builder.rb', line 49

def id_container!(container_node_name, ids)
  @action_node.add(container_node_name) do |container_node|
    Array(ids).each {|id| yield container_node, id }
  end
end

#id_node!(container_node, id_node_name, id, opts = {}) ⇒ Object

Parameters:

  • opts (Hash) (defaults to: {})

    Still an argument so opts can remain optional



88
89
90
91
92
93
# File 'lib/ews/builder.rb', line 88

def id_node!(container_node, id_node_name, id, opts = {})
  container_node.add(id_node_name) do |id_node|
    id_node.set_attr 'Id', id        
    id_node.set_attr 'ChangeKey', opts[:change_key] if opts[:change_key]
  end 
end

#item_id!(container_node, item_id, opts = {}) ⇒ Object

ItemId



61
62
63
# File 'lib/ews/builder.rb', line 61

def item_id!(container_node, item_id, opts = {})
  id_node! container_node, 't:ItemId', item_id, opts
end

#item_id_container!(container_node_name, item_ids) ⇒ Object



31
32
33
34
35
# File 'lib/ews/builder.rb', line 31

def item_id_container!(container_node_name, item_ids)
  id_container!(container_node_name, item_ids) do |container_node, id|
    item_id! container_node, id, @opts
  end
end

#traversal!Object



55
56
57
# File 'lib/ews/builder.rb', line 55

def traversal!
  @action_node.set_attr 'Traversal', (@opts[:traversal] || :Shallow) 
end