viewpoint 0.1.26 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +203 -0
- data/lib/ews/calendar_accessors.rb +34 -0
- data/lib/ews/connection.rb +140 -0
- data/lib/ews/connection_helper.rb +35 -0
- data/lib/ews/convert_accessors.rb +56 -0
- data/lib/{exceptions/exceptions.rb → ews/errors.rb} +29 -19
- data/lib/ews/ews_client.rb +105 -0
- data/lib/ews/exceptions/exceptions.rb +61 -0
- data/lib/ews/folder_accessors.rb +264 -0
- data/lib/ews/impersonation.rb +30 -0
- data/lib/ews/item_accessors.rb +242 -0
- data/lib/ews/mailbox_accessors.rb +92 -0
- data/lib/ews/meeting_accessors.rb +39 -0
- data/lib/ews/message_accessors.rb +93 -0
- data/lib/ews/push_subscription_accessors.rb +33 -0
- data/lib/ews/room_accessors.rb +48 -0
- data/lib/ews/roomlist_accessors.rb +47 -0
- data/lib/ews/soap.rb +64 -0
- data/lib/ews/soap/builders/ews_builder.rb +1384 -0
- data/lib/ews/soap/ews_response.rb +84 -0
- data/lib/ews/soap/ews_soap_availability_response.rb +58 -0
- data/lib/ews/soap/ews_soap_free_busy_response.rb +119 -0
- data/lib/ews/soap/ews_soap_response.rb +103 -0
- data/lib/ews/soap/ews_soap_room_response.rb +53 -0
- data/lib/ews/soap/ews_soap_roomlist_response.rb +54 -0
- data/lib/ews/soap/exchange_availability.rb +61 -0
- data/lib/ews/soap/exchange_data_services.rb +780 -0
- data/lib/ews/soap/exchange_notification.rb +146 -0
- data/lib/ews/soap/exchange_synchronization.rb +93 -0
- data/lib/ews/soap/exchange_time_zones.rb +56 -0
- data/lib/ews/soap/exchange_user_configuration.rb +33 -0
- data/lib/ews/soap/exchange_web_service.rb +264 -0
- data/lib/{model/item_attachment.rb → ews/soap/parsers/ews_parser.rb} +24 -14
- data/lib/ews/soap/parsers/ews_sax_document.rb +70 -0
- data/lib/ews/soap/response_message.rb +80 -0
- data/lib/ews/soap/responses/create_attachment_response_message.rb +47 -0
- data/lib/{model/meeting_message.rb → ews/soap/responses/create_item_response_message.rb} +7 -10
- data/lib/ews/soap/responses/find_item_response_message.rb +80 -0
- data/lib/ews/soap/responses/get_events_response_message.rb +53 -0
- data/lib/ews/soap/responses/send_notification_response_message.rb +59 -0
- data/lib/{model/attachment.rb → ews/soap/responses/subscribe_response_message.rb} +17 -13
- data/lib/{model/attendee.rb → ews/soap/responses/sync_folder_hierarchy_response_message.rb} +14 -15
- data/lib/ews/soap/responses/sync_folder_items_response_message.rb +36 -0
- data/lib/ews/templates/calendar_item.rb +79 -0
- data/lib/ews/templates/forward_item.rb +24 -0
- data/lib/ews/templates/message.rb +85 -0
- data/lib/ews/templates/reply_to_item.rb +25 -0
- data/lib/ews/templates/task.rb +74 -0
- data/lib/ews/types.rb +194 -0
- data/lib/ews/types/attachment.rb +77 -0
- data/lib/{model/meeting_cancellation.rb → ews/types/attendee.rb} +9 -8
- data/lib/ews/types/calendar_folder.rb +50 -0
- data/lib/ews/types/calendar_item.rb +130 -0
- data/lib/ews/types/contact.rb +7 -0
- data/lib/ews/types/contacts_folder.rb +8 -0
- data/lib/ews/types/copied_event.rb +51 -0
- data/lib/{soap/handsoap/builder.rb → ews/types/created_event.rb} +5 -2
- data/lib/ews/types/deleted_event.rb +24 -0
- data/lib/ews/types/distribution_list.rb +7 -0
- data/lib/ews/types/event.rb +62 -0
- data/lib/ews/types/export_items_response_message.rb +52 -0
- data/lib/ews/types/file_attachment.rb +65 -0
- data/lib/ews/types/folder.rb +60 -0
- data/lib/ews/types/free_busy_changed_event.rb +24 -0
- data/lib/ews/types/generic_folder.rb +418 -0
- data/lib/ews/types/item.rb +447 -0
- data/lib/ews/types/item_attachment.rb +84 -0
- data/lib/{model → ews/types}/item_field_uri_map.rb +2 -18
- data/lib/ews/types/mailbox_user.rb +156 -0
- data/lib/ews/types/meeting_cancellation.rb +7 -0
- data/lib/ews/types/meeting_message.rb +7 -0
- data/lib/ews/types/meeting_request.rb +7 -0
- data/lib/ews/types/meeting_response.rb +7 -0
- data/lib/ews/types/message.rb +7 -0
- data/lib/ews/types/modified_event.rb +48 -0
- data/lib/{extensions/string.rb → ews/types/moved_event.rb} +31 -15
- data/lib/ews/types/new_mail_event.rb +24 -0
- data/lib/ews/types/out_of_office.rb +147 -0
- data/lib/ews/types/post_item.rb +7 -0
- data/lib/ews/types/search_folder.rb +8 -0
- data/lib/ews/types/status_event.rb +39 -0
- data/lib/ews/types/task.rb +41 -0
- data/lib/ews/types/tasks_folder.rb +27 -0
- data/lib/viewpoint.rb +85 -108
- data/lib/{model/distribution_list.rb → viewpoint/logging.rb} +6 -3
- data/lib/{model/meeting_response.rb → viewpoint/logging/config.rb} +3 -3
- data/lib/viewpoint/string_utils.rb +76 -0
- metadata +156 -123
- data/README +0 -114
- data/lib/model/calendar_folder.rb +0 -67
- data/lib/model/calendar_item.rb +0 -267
- data/lib/model/contact.rb +0 -238
- data/lib/model/contacts_folder.rb +0 -46
- data/lib/model/event.rb +0 -116
- data/lib/model/file_attachment.rb +0 -53
- data/lib/model/folder.rb +0 -47
- data/lib/model/generic_folder.rb +0 -461
- data/lib/model/item.rb +0 -312
- data/lib/model/mailbox_user.rb +0 -146
- data/lib/model/meeting_request.rb +0 -39
- data/lib/model/message.rb +0 -142
- data/lib/model/model.rb +0 -269
- data/lib/model/search_folder.rb +0 -48
- data/lib/model/task.rb +0 -121
- data/lib/model/tasks_folder.rb +0 -44
- data/lib/soap/handsoap/builders/ews_build_helpers.rb +0 -383
- data/lib/soap/handsoap/builders/ews_builder.rb +0 -146
- data/lib/soap/handsoap/ews_service.rb +0 -790
- data/lib/soap/handsoap/parser.rb +0 -104
- data/lib/soap/handsoap/parsers/ews_parser.rb +0 -245
- data/lib/soap/soap_provider.rb +0 -64
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
This file is part of Viewpoint; the Ruby library for Microsoft Exchange Web Services.
|
|
3
|
+
|
|
4
|
+
Copyright © 2011 Dan Wanek <dan.wanek@gmail.com>
|
|
5
|
+
|
|
6
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
you may not use this file except in compliance with the License.
|
|
8
|
+
You may obtain a copy of the License at
|
|
9
|
+
|
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
|
|
12
|
+
Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
See the License for the specific language governing permissions and
|
|
16
|
+
limitations under the License.
|
|
17
|
+
=end
|
|
18
|
+
|
|
19
|
+
module Viewpoint::EWS::Types
|
|
20
|
+
|
|
21
|
+
class StatusEvent
|
|
22
|
+
include Viewpoint::EWS
|
|
23
|
+
include Viewpoint::EWS::Types
|
|
24
|
+
include Viewpoint::EWS::Types::Item
|
|
25
|
+
|
|
26
|
+
STATUS_EVENT_KEY_PATHS = {
|
|
27
|
+
:watermark => [:watermark, :text],
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
private
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def key_paths
|
|
35
|
+
@key_paths ||= STATUS_EVENT_KEY_PATHS
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module Viewpoint::EWS::Types
|
|
2
|
+
class Task
|
|
3
|
+
include Viewpoint::EWS
|
|
4
|
+
include Viewpoint::EWS::Types
|
|
5
|
+
include Viewpoint::EWS::Types::Item
|
|
6
|
+
|
|
7
|
+
TASK_KEY_PATHS = {
|
|
8
|
+
complete?: [:is_complete, :text],
|
|
9
|
+
recurring?: [:is_recurring, :text],
|
|
10
|
+
start_date: [:start_date, :text],
|
|
11
|
+
due_date: [:end_date, :text],
|
|
12
|
+
reminder_due_by: [:reminder_due_by, :text],
|
|
13
|
+
reminder?: [:reminder_is_set, :text],
|
|
14
|
+
percent_complete: [:percent_complete, :text],
|
|
15
|
+
status: [:status, :text],
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
TASK_KEY_TYPES = {
|
|
19
|
+
recurring?: ->(str){str.downcase == 'true'},
|
|
20
|
+
complete?: ->(str){str.downcase == 'true'},
|
|
21
|
+
reminder?: ->(str){str.downcase == 'true'},
|
|
22
|
+
percent_complete: ->(str){str.to_i},
|
|
23
|
+
}
|
|
24
|
+
TASK_KEY_ALIAS = {}
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def key_paths
|
|
29
|
+
super.merge(TASK_KEY_PATHS)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def key_types
|
|
33
|
+
super.merge(TASK_KEY_TYPES)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def key_alias
|
|
37
|
+
super.merge(TASK_KEY_ALIAS)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Viewpoint::EWS::Types
|
|
2
|
+
class TasksFolder
|
|
3
|
+
include Viewpoint::EWS
|
|
4
|
+
include Viewpoint::EWS::Types
|
|
5
|
+
include Viewpoint::EWS::Types::GenericFolder
|
|
6
|
+
|
|
7
|
+
# Creates a new task
|
|
8
|
+
# @param attributes [Hash] Parameters of the task. Some example attributes are listed below.
|
|
9
|
+
# @option attributes :subject [String]
|
|
10
|
+
# @option attributes :start_date [Time]
|
|
11
|
+
# @option attributes :due_date [Time]
|
|
12
|
+
# @option attributes :reminder_due_by [Time]
|
|
13
|
+
# @option attributes :reminder_is_set [Boolean]
|
|
14
|
+
# @return [Task]
|
|
15
|
+
# @see Template::Task
|
|
16
|
+
def create_item(attributes)
|
|
17
|
+
template = Viewpoint::EWS::Template::Task.new attributes
|
|
18
|
+
template.saved_item_folder_id = {id: self.id, change_key: self.change_key}
|
|
19
|
+
rm = ews.create_item(template.to_ews_create).response_messages.first
|
|
20
|
+
if rm && rm.success?
|
|
21
|
+
Task.new ews, rm.items.first[:task][:elems].first
|
|
22
|
+
else
|
|
23
|
+
raise EwsCreateItemError, "Could not create item in folder. #{rm.code}: #{rm.message_text}" unless rm
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
data/lib/viewpoint.rb
CHANGED
|
@@ -16,118 +16,95 @@
|
|
|
16
16
|
limitations under the License.
|
|
17
17
|
=end
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
require 'singleton'
|
|
19
|
+
require 'kconv' if(RUBY_VERSION.start_with? '1.9') # bug in rubyntlm with ruby 1.9.x
|
|
21
20
|
require 'date'
|
|
22
21
|
require 'base64'
|
|
23
|
-
require '
|
|
24
|
-
|
|
22
|
+
require 'nokogiri'
|
|
23
|
+
require 'ostruct'
|
|
24
|
+
require 'logging'
|
|
25
25
|
|
|
26
|
-
#
|
|
27
|
-
require '
|
|
26
|
+
# String utilities
|
|
27
|
+
require 'viewpoint/string_utils'
|
|
28
28
|
|
|
29
|
-
# Load the
|
|
30
|
-
require '
|
|
29
|
+
# Load the logging setup
|
|
30
|
+
require 'viewpoint/logging'
|
|
31
31
|
|
|
32
|
-
# Load the
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
require '
|
|
37
|
-
require '
|
|
38
|
-
require '
|
|
39
|
-
require '
|
|
40
|
-
|
|
32
|
+
# Load the Exception classes
|
|
33
|
+
require 'ews/exceptions/exceptions'
|
|
34
|
+
|
|
35
|
+
# Load the backend SOAP / EWS infrastructure.
|
|
36
|
+
require 'ews/soap'
|
|
37
|
+
require 'ews/soap/response_message'
|
|
38
|
+
require 'ews/soap/ews_response'
|
|
39
|
+
require 'ews/soap/ews_soap_response'
|
|
40
|
+
require 'ews/soap/ews_soap_availability_response'
|
|
41
|
+
require 'ews/soap/ews_soap_free_busy_response'
|
|
42
|
+
require 'ews/soap/ews_soap_room_response'
|
|
43
|
+
require 'ews/soap/ews_soap_roomlist_response'
|
|
44
|
+
require 'ews/soap/builders/ews_builder'
|
|
45
|
+
require 'ews/soap/parsers/ews_parser'
|
|
46
|
+
require 'ews/soap/parsers/ews_sax_document'
|
|
47
|
+
# Mix-ins for the ExchangeWebService
|
|
48
|
+
require 'ews/soap/exchange_data_services'
|
|
49
|
+
require 'ews/soap/exchange_notification'
|
|
50
|
+
require 'ews/soap/exchange_synchronization'
|
|
51
|
+
require 'ews/soap/exchange_availability'
|
|
52
|
+
require 'ews/soap/exchange_user_configuration'
|
|
53
|
+
require 'ews/soap/exchange_time_zones'
|
|
54
|
+
require 'ews/soap/exchange_web_service'
|
|
55
|
+
|
|
56
|
+
require 'ews/errors'
|
|
57
|
+
require 'ews/connection_helper'
|
|
58
|
+
require 'ews/connection'
|
|
59
|
+
|
|
60
|
+
require 'ews/impersonation'
|
|
61
|
+
|
|
62
|
+
# Base Types
|
|
63
|
+
require 'ews/types'
|
|
64
|
+
require 'ews/types/item_field_uri_map'
|
|
65
|
+
require 'ews/types/generic_folder'
|
|
66
|
+
require 'ews/types/item'
|
|
41
67
|
# Folders
|
|
42
|
-
require '
|
|
43
|
-
require '
|
|
44
|
-
require '
|
|
45
|
-
require '
|
|
46
|
-
require '
|
|
68
|
+
require 'ews/types/folder'
|
|
69
|
+
require 'ews/types/calendar_folder'
|
|
70
|
+
require 'ews/types/contacts_folder'
|
|
71
|
+
require 'ews/types/tasks_folder'
|
|
72
|
+
require 'ews/types/search_folder'
|
|
47
73
|
# Items
|
|
48
|
-
require '
|
|
49
|
-
require '
|
|
50
|
-
require '
|
|
51
|
-
require '
|
|
52
|
-
require '
|
|
53
|
-
require '
|
|
54
|
-
require '
|
|
55
|
-
require '
|
|
56
|
-
require '
|
|
57
|
-
require '
|
|
58
|
-
require '
|
|
59
|
-
require '
|
|
60
|
-
|
|
61
|
-
require '
|
|
62
|
-
require '
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
# @param [String] endpoint The URL of the endpoint. This should end in
|
|
86
|
-
# 'exchange.asmx' and is typically something like this:
|
|
87
|
-
# https://myexch/ews/exchange.asmx
|
|
88
|
-
# @param [Integer] version The SOAP version to use. This defaults to 1
|
|
89
|
-
# and you should not need to pass this parameter.
|
|
90
|
-
def self.endpoint=(endpoint, version = 1)
|
|
91
|
-
@@endpoint = endpoint
|
|
92
|
-
SOAP::ExchangeWebService.endpoint(:uri => endpoint, :version => version) && true
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
# Fetch the current endpoint
|
|
96
|
-
def self.endpoint
|
|
97
|
-
@@endpoint
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
# Set the SOAP username and password.
|
|
101
|
-
# @param [String] user The user name
|
|
102
|
-
# @param [String] pass The password
|
|
103
|
-
def self.set_auth(user,pass)
|
|
104
|
-
@@user = user
|
|
105
|
-
SOAP::ExchangeWebService.set_auth(user,pass) && true
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
# Set the http driver that the SOAP back-end will use.
|
|
109
|
-
# @param [Symbol] driver The HTTP driver. Available drivers:
|
|
110
|
-
# :curb, :net_http, :http_client(Default)
|
|
111
|
-
def self.set_http_driver(driver)
|
|
112
|
-
Handsoap.http_driver = driver
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
# Sets the CA path to a certificate or hashed certificate directory.
|
|
116
|
-
# This is the same as HTTPClient::SSLConfig.set_trust_ca
|
|
117
|
-
# @param [String] ca_path A path to an OpenSSL::X509::Certificate or a 'c-rehash'ed directory
|
|
118
|
-
def self.set_trust_ca(ca_path)
|
|
119
|
-
SOAP::ExchangeWebService.set_http_options(:trust_ca_file => ca_path) && true
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
def initialize
|
|
123
|
-
@ews = SOAP::ExchangeWebService.new
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
# The MailboxUser object that represents the user connected to EWS.
|
|
127
|
-
def me
|
|
128
|
-
MailboxUser.find_user((@@user.include?('@') ? @@user : "#{@@user}@"))
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
end # class EWS
|
|
132
|
-
end # EWS
|
|
133
|
-
end
|
|
74
|
+
require 'ews/types/message'
|
|
75
|
+
require 'ews/types/calendar_item'
|
|
76
|
+
require 'ews/types/contact'
|
|
77
|
+
require 'ews/types/distribution_list'
|
|
78
|
+
require 'ews/types/meeting_message'
|
|
79
|
+
require 'ews/types/meeting_request'
|
|
80
|
+
require 'ews/types/meeting_response'
|
|
81
|
+
require 'ews/types/meeting_cancellation'
|
|
82
|
+
require 'ews/types/task'
|
|
83
|
+
require 'ews/types/attachment'
|
|
84
|
+
require 'ews/types/file_attachment'
|
|
85
|
+
require 'ews/types/item_attachment'
|
|
86
|
+
require 'ews/types/mailbox_user'
|
|
87
|
+
require 'ews/types/out_of_office'
|
|
88
|
+
require 'ews/types/export_items_response_message'
|
|
89
|
+
require 'ews/types/post_item'
|
|
90
|
+
|
|
91
|
+
# Events
|
|
92
|
+
require 'ews/types/event'
|
|
93
|
+
require 'ews/types/copied_event'
|
|
94
|
+
require 'ews/types/created_event'
|
|
95
|
+
require 'ews/types/deleted_event'
|
|
96
|
+
require 'ews/types/free_busy_changed_event'
|
|
97
|
+
require 'ews/types/modified_event'
|
|
98
|
+
require 'ews/types/moved_event'
|
|
99
|
+
require 'ews/types/new_mail_event'
|
|
100
|
+
require 'ews/types/status_event'
|
|
101
|
+
|
|
102
|
+
# Template Objects
|
|
103
|
+
require 'ews/templates/message'
|
|
104
|
+
require 'ews/templates/forward_item'
|
|
105
|
+
require 'ews/templates/reply_to_item'
|
|
106
|
+
require 'ews/templates/calendar_item'
|
|
107
|
+
require 'ews/templates/task'
|
|
108
|
+
|
|
109
|
+
# The proxy between the models and the web service
|
|
110
|
+
require 'ews/ews_client'
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
This file is part of Viewpoint; the Ruby library for Microsoft Exchange Web Services.
|
|
3
|
+
|
|
4
|
+
Copyright © 2011 Dan Wanek <dan.wanek@gmail.com>
|
|
5
|
+
|
|
6
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
you may not use this file except in compliance with the License.
|
|
8
|
+
You may obtain a copy of the License at
|
|
9
|
+
|
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
|
|
12
|
+
Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
See the License for the specific language governing permissions and
|
|
16
|
+
limitations under the License.
|
|
17
|
+
=end
|
|
18
|
+
|
|
19
|
+
module Viewpoint
|
|
20
|
+
|
|
21
|
+
class StringFormatException < ::Exception; end
|
|
22
|
+
|
|
23
|
+
# Collection of utility methods for working with Strings
|
|
24
|
+
module StringUtils
|
|
25
|
+
|
|
26
|
+
DURATION_RE = /
|
|
27
|
+
(?<start>P)
|
|
28
|
+
((?<weeks>\d+)W)?
|
|
29
|
+
((?<days>\d+)D)?
|
|
30
|
+
(?<time>T
|
|
31
|
+
((?<hours>\d+)H)?
|
|
32
|
+
((?<minutes>\d+)M)?
|
|
33
|
+
((?<seconds>\d+)S)?
|
|
34
|
+
)?
|
|
35
|
+
/x
|
|
36
|
+
|
|
37
|
+
def self.included(klass)
|
|
38
|
+
klass.extend StringUtils
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
private
|
|
42
|
+
|
|
43
|
+
# Change CamelCased strings to ruby_cased strings
|
|
44
|
+
# It uses the lookahead assertion ?= In this case it basically says match
|
|
45
|
+
# anything followed by a capital letter, but not the capital letter itself.
|
|
46
|
+
# @see http://www.pcre.org/pcre.txt The PCRE guide for more details
|
|
47
|
+
def ruby_case(input)
|
|
48
|
+
input.to_s.split(/(?=[A-Z])/).join('_').downcase
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Change a ruby_cased string to CamelCased
|
|
52
|
+
def camel_case(input)
|
|
53
|
+
input.to_s.split(/_/).map { |i|
|
|
54
|
+
i.sub(/^./) { |s| s.upcase }
|
|
55
|
+
}.join
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Convert an ISO8601 Duration format to seconds
|
|
59
|
+
# @see http://tools.ietf.org/html/rfc2445#section-4.3.6
|
|
60
|
+
# @param [String] input
|
|
61
|
+
# @return [nil,Fixnum] the number of seconds in this duration
|
|
62
|
+
# nil if there is no known duration
|
|
63
|
+
def iso8601_duration_to_seconds(input)
|
|
64
|
+
return nil if input.nil? || input.empty?
|
|
65
|
+
match_data = DURATION_RE.match(input)
|
|
66
|
+
raise(StringFormatException, "Invalid duration given") if match_data.nil?
|
|
67
|
+
duration = 0
|
|
68
|
+
duration += match_data[:weeks].to_i * 604800
|
|
69
|
+
duration += match_data[:days].to_i * 86400
|
|
70
|
+
duration += match_data[:hours].to_i * 3600
|
|
71
|
+
duration += match_data[:minutes].to_i * 60
|
|
72
|
+
duration += match_data[:seconds].to_i
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
end # StringUtils
|
|
76
|
+
end # Viewpoint
|
metadata
CHANGED
|
@@ -1,159 +1,192 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: viewpoint
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
version: 0.1.26
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.1.1
|
|
6
5
|
platform: ruby
|
|
7
|
-
authors:
|
|
6
|
+
authors:
|
|
8
7
|
- Dan Wanek
|
|
9
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
19
|
-
none: false
|
|
20
|
-
requirements:
|
|
11
|
+
date: 2021-02-02 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: nokogiri
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
21
17
|
- - ">="
|
|
22
|
-
- !ruby/object:Gem::Version
|
|
23
|
-
version:
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
24
20
|
type: :runtime
|
|
25
|
-
version_requirements: *id001
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: nokogiri
|
|
28
21
|
prerelease: false
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
requirements:
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
32
24
|
- - ">="
|
|
33
|
-
- !ruby/object:Gem::Version
|
|
34
|
-
version:
|
|
35
|
-
|
|
36
|
-
version_requirements: *id002
|
|
37
|
-
- !ruby/object:Gem::Dependency
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
38
28
|
name: httpclient
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
none: false
|
|
42
|
-
requirements:
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
43
31
|
- - ">="
|
|
44
|
-
- !ruby/object:Gem::Version
|
|
45
|
-
version:
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
46
34
|
type: :runtime
|
|
47
|
-
version_requirements: *id003
|
|
48
|
-
- !ruby/object:Gem::Dependency
|
|
49
|
-
name: rubyntlm
|
|
50
35
|
prerelease: false
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rubyntlm
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
54
45
|
- - ">="
|
|
55
|
-
- !ruby/object:Gem::Version
|
|
56
|
-
version:
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0'
|
|
57
48
|
type: :runtime
|
|
58
|
-
version_requirements: *id004
|
|
59
|
-
- !ruby/object:Gem::Dependency
|
|
60
|
-
name: icalendar
|
|
61
49
|
prerelease: false
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
requirements:
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
65
52
|
- - ">="
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version:
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: logging
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
68
62
|
type: :runtime
|
|
69
|
-
version_requirements: *id005
|
|
70
|
-
- !ruby/object:Gem::Dependency
|
|
71
|
-
name: mail
|
|
72
63
|
prerelease: false
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
requirements:
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
76
66
|
- - ">="
|
|
77
|
-
- !ruby/object:Gem::Version
|
|
78
|
-
version:
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
description: "A Ruby client access library for Microsoft Exchange Web Services (EWS). Examples can be found here: http://distributed-frostbite.blogspot.com"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
69
|
+
description: 'A Ruby client access library for Microsoft Exchange Web Services (EWS). Examples
|
|
70
|
+
can be found here: http://distributed-frostbite.blogspot.com'
|
|
82
71
|
email: dan.wanek@gmail.com
|
|
83
72
|
executables: []
|
|
84
|
-
|
|
85
73
|
extensions: []
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
files:
|
|
74
|
+
extra_rdoc_files:
|
|
75
|
+
- README.md
|
|
76
|
+
files:
|
|
90
77
|
- Changelog.txt
|
|
91
|
-
- README
|
|
78
|
+
- README.md
|
|
92
79
|
- TODO
|
|
80
|
+
- lib/ews/calendar_accessors.rb
|
|
81
|
+
- lib/ews/connection.rb
|
|
82
|
+
- lib/ews/connection_helper.rb
|
|
83
|
+
- lib/ews/convert_accessors.rb
|
|
84
|
+
- lib/ews/errors.rb
|
|
85
|
+
- lib/ews/ews_client.rb
|
|
86
|
+
- lib/ews/exceptions/exceptions.rb
|
|
87
|
+
- lib/ews/folder_accessors.rb
|
|
88
|
+
- lib/ews/impersonation.rb
|
|
89
|
+
- lib/ews/item_accessors.rb
|
|
90
|
+
- lib/ews/mailbox_accessors.rb
|
|
91
|
+
- lib/ews/meeting_accessors.rb
|
|
92
|
+
- lib/ews/message_accessors.rb
|
|
93
|
+
- lib/ews/push_subscription_accessors.rb
|
|
94
|
+
- lib/ews/room_accessors.rb
|
|
95
|
+
- lib/ews/roomlist_accessors.rb
|
|
96
|
+
- lib/ews/soap.rb
|
|
97
|
+
- lib/ews/soap/builders/ews_builder.rb
|
|
98
|
+
- lib/ews/soap/ews_response.rb
|
|
99
|
+
- lib/ews/soap/ews_soap_availability_response.rb
|
|
100
|
+
- lib/ews/soap/ews_soap_free_busy_response.rb
|
|
101
|
+
- lib/ews/soap/ews_soap_response.rb
|
|
102
|
+
- lib/ews/soap/ews_soap_room_response.rb
|
|
103
|
+
- lib/ews/soap/ews_soap_roomlist_response.rb
|
|
104
|
+
- lib/ews/soap/exchange_availability.rb
|
|
105
|
+
- lib/ews/soap/exchange_data_services.rb
|
|
106
|
+
- lib/ews/soap/exchange_notification.rb
|
|
107
|
+
- lib/ews/soap/exchange_synchronization.rb
|
|
108
|
+
- lib/ews/soap/exchange_time_zones.rb
|
|
109
|
+
- lib/ews/soap/exchange_user_configuration.rb
|
|
110
|
+
- lib/ews/soap/exchange_web_service.rb
|
|
111
|
+
- lib/ews/soap/parsers/ews_parser.rb
|
|
112
|
+
- lib/ews/soap/parsers/ews_sax_document.rb
|
|
113
|
+
- lib/ews/soap/response_message.rb
|
|
114
|
+
- lib/ews/soap/responses/create_attachment_response_message.rb
|
|
115
|
+
- lib/ews/soap/responses/create_item_response_message.rb
|
|
116
|
+
- lib/ews/soap/responses/find_item_response_message.rb
|
|
117
|
+
- lib/ews/soap/responses/get_events_response_message.rb
|
|
118
|
+
- lib/ews/soap/responses/send_notification_response_message.rb
|
|
119
|
+
- lib/ews/soap/responses/subscribe_response_message.rb
|
|
120
|
+
- lib/ews/soap/responses/sync_folder_hierarchy_response_message.rb
|
|
121
|
+
- lib/ews/soap/responses/sync_folder_items_response_message.rb
|
|
122
|
+
- lib/ews/templates/calendar_item.rb
|
|
123
|
+
- lib/ews/templates/forward_item.rb
|
|
124
|
+
- lib/ews/templates/message.rb
|
|
125
|
+
- lib/ews/templates/reply_to_item.rb
|
|
126
|
+
- lib/ews/templates/task.rb
|
|
127
|
+
- lib/ews/types.rb
|
|
128
|
+
- lib/ews/types/attachment.rb
|
|
129
|
+
- lib/ews/types/attendee.rb
|
|
130
|
+
- lib/ews/types/calendar_folder.rb
|
|
131
|
+
- lib/ews/types/calendar_item.rb
|
|
132
|
+
- lib/ews/types/contact.rb
|
|
133
|
+
- lib/ews/types/contacts_folder.rb
|
|
134
|
+
- lib/ews/types/copied_event.rb
|
|
135
|
+
- lib/ews/types/created_event.rb
|
|
136
|
+
- lib/ews/types/deleted_event.rb
|
|
137
|
+
- lib/ews/types/distribution_list.rb
|
|
138
|
+
- lib/ews/types/event.rb
|
|
139
|
+
- lib/ews/types/export_items_response_message.rb
|
|
140
|
+
- lib/ews/types/file_attachment.rb
|
|
141
|
+
- lib/ews/types/folder.rb
|
|
142
|
+
- lib/ews/types/free_busy_changed_event.rb
|
|
143
|
+
- lib/ews/types/generic_folder.rb
|
|
144
|
+
- lib/ews/types/item.rb
|
|
145
|
+
- lib/ews/types/item_attachment.rb
|
|
146
|
+
- lib/ews/types/item_field_uri_map.rb
|
|
147
|
+
- lib/ews/types/mailbox_user.rb
|
|
148
|
+
- lib/ews/types/meeting_cancellation.rb
|
|
149
|
+
- lib/ews/types/meeting_message.rb
|
|
150
|
+
- lib/ews/types/meeting_request.rb
|
|
151
|
+
- lib/ews/types/meeting_response.rb
|
|
152
|
+
- lib/ews/types/message.rb
|
|
153
|
+
- lib/ews/types/modified_event.rb
|
|
154
|
+
- lib/ews/types/moved_event.rb
|
|
155
|
+
- lib/ews/types/new_mail_event.rb
|
|
156
|
+
- lib/ews/types/out_of_office.rb
|
|
157
|
+
- lib/ews/types/post_item.rb
|
|
158
|
+
- lib/ews/types/search_folder.rb
|
|
159
|
+
- lib/ews/types/status_event.rb
|
|
160
|
+
- lib/ews/types/task.rb
|
|
161
|
+
- lib/ews/types/tasks_folder.rb
|
|
93
162
|
- lib/viewpoint.rb
|
|
94
|
-
- lib/
|
|
95
|
-
- lib/
|
|
96
|
-
- lib/
|
|
97
|
-
- lib/model/generic_folder.rb
|
|
98
|
-
- lib/model/distribution_list.rb
|
|
99
|
-
- lib/model/attendee.rb
|
|
100
|
-
- lib/model/meeting_response.rb
|
|
101
|
-
- lib/model/meeting_cancellation.rb
|
|
102
|
-
- lib/model/task.rb
|
|
103
|
-
- lib/model/event.rb
|
|
104
|
-
- lib/model/tasks_folder.rb
|
|
105
|
-
- lib/model/attachment.rb
|
|
106
|
-
- lib/model/contacts_folder.rb
|
|
107
|
-
- lib/model/meeting_request.rb
|
|
108
|
-
- lib/model/item_attachment.rb
|
|
109
|
-
- lib/model/meeting_message.rb
|
|
110
|
-
- lib/model/folder.rb
|
|
111
|
-
- lib/model/search_folder.rb
|
|
112
|
-
- lib/model/contact.rb
|
|
113
|
-
- lib/model/item.rb
|
|
114
|
-
- lib/model/calendar_folder.rb
|
|
115
|
-
- lib/model/item_field_uri_map.rb
|
|
116
|
-
- lib/model/message.rb
|
|
117
|
-
- lib/model/file_attachment.rb
|
|
118
|
-
- lib/model/calendar_item.rb
|
|
119
|
-
- lib/soap/handsoap/parsers/ews_parser.rb
|
|
120
|
-
- lib/soap/handsoap/parser.rb
|
|
121
|
-
- lib/soap/handsoap/builder.rb
|
|
122
|
-
- lib/soap/handsoap/builders/ews_builder.rb
|
|
123
|
-
- lib/soap/handsoap/builders/ews_build_helpers.rb
|
|
124
|
-
- lib/soap/handsoap/ews_service.rb
|
|
125
|
-
- lib/soap/soap_provider.rb
|
|
126
|
-
- lib/extensions/string.rb
|
|
163
|
+
- lib/viewpoint/logging.rb
|
|
164
|
+
- lib/viewpoint/logging/config.rb
|
|
165
|
+
- lib/viewpoint/string_utils.rb
|
|
127
166
|
homepage: http://github.com/zenchild/Viewpoint
|
|
128
167
|
licenses: []
|
|
129
|
-
|
|
130
|
-
post_install_message:
|
|
131
|
-
rdoc_options:
|
|
132
|
-
- -x
|
|
168
|
+
metadata: {}
|
|
169
|
+
post_install_message:
|
|
170
|
+
rdoc_options:
|
|
171
|
+
- "-x"
|
|
133
172
|
- test/
|
|
134
|
-
- -x
|
|
173
|
+
- "-x"
|
|
135
174
|
- examples/
|
|
136
|
-
require_paths:
|
|
175
|
+
require_paths:
|
|
137
176
|
- lib
|
|
138
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
139
|
-
|
|
140
|
-
requirements:
|
|
177
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
178
|
+
requirements:
|
|
141
179
|
- - ">="
|
|
142
|
-
- !ruby/object:Gem::Version
|
|
143
|
-
version: 1.
|
|
144
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
145
|
-
|
|
146
|
-
requirements:
|
|
180
|
+
- !ruby/object:Gem::Version
|
|
181
|
+
version: 1.9.1
|
|
182
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
|
+
requirements:
|
|
147
184
|
- - ">="
|
|
148
|
-
- !ruby/object:Gem::Version
|
|
149
|
-
version:
|
|
185
|
+
- !ruby/object:Gem::Version
|
|
186
|
+
version: '0'
|
|
150
187
|
requirements: []
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
signing_key:
|
|
155
|
-
specification_version: 3
|
|
188
|
+
rubygems_version: 3.0.8
|
|
189
|
+
signing_key:
|
|
190
|
+
specification_version: 4
|
|
156
191
|
summary: A Ruby client access library for Microsoft Exchange Web Services (EWS)
|
|
157
192
|
test_files: []
|
|
158
|
-
|
|
159
|
-
has_rdoc:
|