calendly 0.1.2 → 0.1.3
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 +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +49 -1
- data/lib/calendly/client.rb +115 -2
- data/lib/calendly/models/model_utils.rb +2 -2
- data/lib/calendly/models/organization.rb +32 -0
- data/lib/calendly/models/organization_membership.rb +37 -0
- data/lib/calendly/models/webhook_subscription.rb +72 -0
- data/lib/calendly/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 73fe04308ea6b80fec0d5141f3a848476d0b4dd0e818cc32019ab54f9ad02243
|
4
|
+
data.tar.gz: 2adaee2381b6631af1d19eb07d0fa122b1cd8d347c877c07808bac5cb3670d6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a3b7a7dc8926ea80d87e9a3cc5b96a4c6816b78baebeac4d28773eba80ad6078c44ea379e01d0be87ecd47bc8f12eef4d64516a67b7e11adc2a5e843aacc9a7
|
7
|
+
data.tar.gz: bf1eb06ab1432c27b7d557cd4c703a6d157ce26f526942a89f3102b34c9d8ba6b3e123d78b5e7ca53348e49125be7e2e3423da7f68540c799745b7b2c35d8c3b
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
|
+
|
1
2
|
# CHANGELOG
|
2
3
|
|
4
|
+
## 0.1.3
|
5
|
+
|
6
|
+
- support webhook APIs
|
7
|
+
- `GET /webhook_subscriptions`
|
8
|
+
- `GET /webhook_subscriptions/{webhook_uuid}`
|
9
|
+
- `POST /webhook_subscriptions`
|
10
|
+
- `DELETE /webhook_subscriptions/{webhook_uuid}`
|
11
|
+
|
3
12
|
## 0.1.2
|
4
13
|
|
5
14
|
- fix rubocop warnings.
|
data/README.md
CHANGED
@@ -35,7 +35,10 @@ As of now the supported statuses each Calendly API are as below.
|
|
35
35
|
- [x] Get List of Event Invitees
|
36
36
|
- [x] Get List of User Events
|
37
37
|
- Webhook V2
|
38
|
-
-
|
38
|
+
- [x] Create Webhook Subscription
|
39
|
+
- [x] Delete Webhook Subscription
|
40
|
+
- [x] Get Webhook Subscription
|
41
|
+
- [x] List Webhook Subscriptions
|
39
42
|
|
40
43
|
## Installation
|
41
44
|
|
@@ -55,6 +58,8 @@ Or install it yourself as:
|
|
55
58
|
|
56
59
|
## Usage
|
57
60
|
|
61
|
+
### Basic
|
62
|
+
|
58
63
|
The APIs client needs access token.
|
59
64
|
This client setup step is below.
|
60
65
|
|
@@ -116,7 +121,50 @@ invitation.status
|
|
116
121
|
|
117
122
|
# cancel the invitation
|
118
123
|
invitation.delete
|
124
|
+
```
|
125
|
+
|
126
|
+
### Webhook
|
127
|
+
|
128
|
+
The webhook usage is below.
|
129
|
+
|
130
|
+
```ruby
|
131
|
+
events = ['invitee.created', 'invitee.canceled']
|
132
|
+
own_member = client.me.organization_membership
|
133
|
+
org = own_member.organization
|
134
|
+
|
135
|
+
# create user scope webhook
|
136
|
+
url = 'https://example.com/received_event'
|
137
|
+
user_webhook = own_member.create_user_scope_webhook(url, events)
|
138
|
+
# => #<Calendly::WebhookSubscription uuid:USER_WEBHOOK_001>
|
139
|
+
|
140
|
+
# list of user scope webhooks
|
141
|
+
own_member.user_scope_webhooks
|
142
|
+
# => [#<Calendly::WebhookSubscription uuid:USER_WEBHOOK_001>]
|
143
|
+
|
144
|
+
# delete the webhook
|
145
|
+
user_webhook.delete
|
146
|
+
# => true
|
119
147
|
|
148
|
+
|
149
|
+
# create organization scope webhook
|
150
|
+
url = 'https://example.com/received_event'
|
151
|
+
org_webhook = org.create_webhook(url, events)
|
152
|
+
# => #<Calendly::WebhookSubscription uuid:ORG_WEBHOOK_001>
|
153
|
+
|
154
|
+
# list of organization scope webhooks
|
155
|
+
org.webhooks
|
156
|
+
# => [#<Calendly::WebhookSubscription uuid:ORG_WEBHOOK_001>]
|
157
|
+
|
158
|
+
# delete the webhook
|
159
|
+
org_webhook.delete
|
160
|
+
# => true
|
161
|
+
```
|
162
|
+
|
163
|
+
### Logging
|
164
|
+
|
165
|
+
This library supports a configurable logger.
|
166
|
+
|
167
|
+
```ruby
|
120
168
|
# if the log level set :debug, you can get the request/response information.
|
121
169
|
Calendly.configuration.logger.level = :debug
|
122
170
|
invitation = my_org.create_invitation('foobar@example.com')
|
data/lib/calendly/client.rb
CHANGED
@@ -125,12 +125,12 @@ module Calendly
|
|
125
125
|
# @param [String] user_uri the specified user (user's uri).
|
126
126
|
# @param [Hash] opts the optional request parameters.
|
127
127
|
# @option opts [Integer] :count Number of rows to return.
|
128
|
-
# @option opts [String] :invitee_email Return events scheduled with the specified invitee email
|
128
|
+
# @option opts [String] :invitee_email Return events scheduled with the specified invitee email.
|
129
129
|
# @option opts [String] :max_start_time Upper bound (inclusive) for an event's start time to filter by.
|
130
130
|
# @option opts [String] :min_start_time Lower bound (inclusive) for an event's start time to filter by.
|
131
131
|
# @option opts [String] :page_token Pass this to get the next portion of collection.
|
132
132
|
# @option opts [String] :sort Order results by the specified field and directin. Accepts comma-separated list of {field}:{direction} values.
|
133
|
-
# @option opts [String] :status Whether the scheduled event is active or canceled
|
133
|
+
# @option opts [String] :status Whether the scheduled event is active or canceled.
|
134
134
|
# @return [Array<Array<Calendly::Event>, Hash>]
|
135
135
|
# - [Array<Calendly::Event>] events
|
136
136
|
# - [Hash] next_params the parameters to get next data. if thre is no next it returns nil.
|
@@ -362,6 +362,118 @@ module Calendly
|
|
362
362
|
true
|
363
363
|
end
|
364
364
|
|
365
|
+
#
|
366
|
+
# Get a webhook subscription for an organization or user with a specified UUID.
|
367
|
+
#
|
368
|
+
# @param [String] uuid the specified webhook (webhook's uuid).
|
369
|
+
# @return [Calendly::WebhookSubscription]
|
370
|
+
# @raise [Calendly::Error] if the uuid arg is empty.
|
371
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
372
|
+
# @since 0.1.3
|
373
|
+
def webhook(uuid)
|
374
|
+
check_not_empty uuid, 'uuid'
|
375
|
+
body = request :get, "webhook_subscriptions/#{uuid}"
|
376
|
+
WebhookSubscription.new body[:resource], self
|
377
|
+
end
|
378
|
+
|
379
|
+
#
|
380
|
+
# Get List of organization scope Webhooks.
|
381
|
+
#
|
382
|
+
# @param [String] org_uri the specified organization (organization's uri).
|
383
|
+
# @param [Hash] opts the optional request parameters.
|
384
|
+
# @option opts [Integer] :count Number of rows to return.
|
385
|
+
# @option opts [String] :page_token Pass this to get the next portion of collection.
|
386
|
+
# @option opts [String] :sort Order results by the specified field and directin. Accepts comma-separated list of {field}:{direction} values.
|
387
|
+
# @return [Array<Array<Calendly::WebhookSubscription>, Hash>]
|
388
|
+
# - [Array<Calendly::WebhookSubscription>] webhooks
|
389
|
+
# - [Hash] next_params the parameters to get next data. if thre is no next it returns nil.
|
390
|
+
# @raise [Calendly::Error] if the org_uri arg is empty.
|
391
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
392
|
+
# @since 0.1.3
|
393
|
+
def webhooks(org_uri, opts = {})
|
394
|
+
check_not_empty org_uri, 'org_uri'
|
395
|
+
|
396
|
+
opts_keys = %i[count page_token sort]
|
397
|
+
params = {organization: org_uri, scope: 'organization'}
|
398
|
+
params = merge_options opts, opts_keys, params
|
399
|
+
body = request :get, 'webhook_subscriptions', params: params
|
400
|
+
items = body[:collection] || []
|
401
|
+
evs = items.map { |item| WebhookSubscription.new item, self }
|
402
|
+
[evs, next_page_params(body)]
|
403
|
+
end
|
404
|
+
|
405
|
+
#
|
406
|
+
# Get List of user scope Webhooks.
|
407
|
+
#
|
408
|
+
# @param [String] org_uri the specified organization (organization's uri).
|
409
|
+
# @param [String] user_uri the specified user (user's uri).
|
410
|
+
# @param [Hash] opts the optional request parameters.
|
411
|
+
# @option opts [Integer] :count Number of rows to return.
|
412
|
+
# @option opts [String] :page_token Pass this to get the next portion of collection.
|
413
|
+
# @option opts [String] :sort Order results by the specified field and directin. Accepts comma-separated list of {field}:{direction} values.
|
414
|
+
# @return [Array<Array<Calendly::WebhookSubscription>, Hash>]
|
415
|
+
# - [Array<Calendly::WebhookSubscription>] webhooks
|
416
|
+
# - [Hash] next_params the parameters to get next data. if thre is no next it returns nil.
|
417
|
+
# @raise [Calendly::Error] if the org_uri arg is empty.
|
418
|
+
# @raise [Calendly::Error] if the user_uri arg is empty.
|
419
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
420
|
+
# @since 0.1.3
|
421
|
+
def user_scope_webhooks(org_uri, user_uri, opts = {})
|
422
|
+
check_not_empty org_uri, 'org_uri'
|
423
|
+
check_not_empty user_uri, 'user_uri'
|
424
|
+
|
425
|
+
opts_keys = %i[count page_token sort]
|
426
|
+
params = {organization: org_uri, user: user_uri, scope: 'user'}
|
427
|
+
params = merge_options opts, opts_keys, params
|
428
|
+
body = request :get, 'webhook_subscriptions', params: params
|
429
|
+
items = body[:collection] || []
|
430
|
+
evs = items.map { |item| WebhookSubscription.new item, self }
|
431
|
+
[evs, next_page_params(body)]
|
432
|
+
end
|
433
|
+
|
434
|
+
#
|
435
|
+
# Create a webhook subscription for an organization or user.
|
436
|
+
#
|
437
|
+
# @param [String] url Canonical reference (unique identifier) for the resource.
|
438
|
+
# @param [Array<String>] events List of user events to subscribe to. options: invitee.created or invitee.canceled
|
439
|
+
# @param [String] org_uri The unique reference to the organization that the webhook will be tied to.
|
440
|
+
# @param [String] user_uri The unique reference to the user that the webhook will be tied to.
|
441
|
+
# @return [Calendly::WebhookSubscription]
|
442
|
+
# @raise [Calendly::Error] if the url arg is empty.
|
443
|
+
# @raise [Calendly::Error] if the events arg is empty.
|
444
|
+
# @raise [Calendly::Error] if the org_uri arg is empty.
|
445
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
446
|
+
# @since 0.1.3
|
447
|
+
def create_webhook(url, events, org_uri, user_uri = nil)
|
448
|
+
check_not_empty url, 'url'
|
449
|
+
check_not_empty events, 'events'
|
450
|
+
check_not_empty org_uri, 'org_uri'
|
451
|
+
|
452
|
+
params = {url: url, events: events, organization: org_uri}
|
453
|
+
if user_uri
|
454
|
+
params[:scope] = 'user'
|
455
|
+
params[:user] = user_uri
|
456
|
+
else
|
457
|
+
params[:scope] = 'organization'
|
458
|
+
end
|
459
|
+
body = request(:post, 'webhook_subscriptions', body: params)
|
460
|
+
WebhookSubscription.new body[:resource], self
|
461
|
+
end
|
462
|
+
|
463
|
+
#
|
464
|
+
# Delete a webhook subscription for an organization or user with a specified UUID.
|
465
|
+
#
|
466
|
+
# @param [String] uuid the specified webhook (webhook's uuid).
|
467
|
+
# @return [true]
|
468
|
+
# @raise [Calendly::Error] if the uuid arg is empty.
|
469
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
470
|
+
# @since 0.1.3
|
471
|
+
def delete_webhook(uuid)
|
472
|
+
check_not_empty uuid, 'uuid'
|
473
|
+
request :delete, "webhook_subscriptions/#{uuid}"
|
474
|
+
true
|
475
|
+
end
|
476
|
+
|
365
477
|
private
|
366
478
|
|
367
479
|
def request(method, path, params: nil, body: nil)
|
@@ -389,6 +501,7 @@ module Calendly
|
|
389
501
|
def blank?(value)
|
390
502
|
return true if value.nil?
|
391
503
|
return true if value.to_s.empty?
|
504
|
+
return true if value.is_a?(Array) && value.empty?
|
392
505
|
|
393
506
|
false
|
394
507
|
end
|
@@ -68,10 +68,10 @@ module Calendly
|
|
68
68
|
attrs.each do |key, value|
|
69
69
|
next unless respond_to? "#{key}=".to_sym
|
70
70
|
|
71
|
-
if defined?(self.class::ASSOCIATION) && self.class::ASSOCIATION.key?(key)
|
71
|
+
if value && defined?(self.class::ASSOCIATION) && self.class::ASSOCIATION.key?(key)
|
72
72
|
associated_attrs = value.is_a?(Hash) ? value : {uri: value}
|
73
73
|
value = self.class::ASSOCIATION[key].new associated_attrs, @client
|
74
|
-
elsif defined?(self.class::TIME_FIELDS) && self.class::TIME_FIELDS.include?(key)
|
74
|
+
elsif value && defined?(self.class::TIME_FIELDS) && self.class::TIME_FIELDS.include?(key)
|
75
75
|
value = Time.parse value
|
76
76
|
end
|
77
77
|
instance_variable_set "@#{key}", value
|
@@ -60,5 +60,37 @@ module Calendly
|
|
60
60
|
def create_invitation(email)
|
61
61
|
client.create_invitation uuid, email
|
62
62
|
end
|
63
|
+
|
64
|
+
#
|
65
|
+
# Get List of organization scope Webhooks associated with self.
|
66
|
+
#
|
67
|
+
# @param [Hash] opts the optional request parameters.
|
68
|
+
# @option opts [Integer] :count Number of rows to return.
|
69
|
+
# @option opts [String] :page_token Pass this to get the next portion of collection.
|
70
|
+
# @option opts [String] :sort Order results by the specified field and directin. Accepts comma-separated list of {field}:{direction} values.
|
71
|
+
# Accepts comma-separated list of {field}:{direction} values.
|
72
|
+
# @return [Array<Calendly::WebhookSubscription>]
|
73
|
+
# @raise [Calendly::Error] if the uri is empty.
|
74
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
75
|
+
# @since 0.1.3
|
76
|
+
def webhooks(opts = {})
|
77
|
+
request_proc = proc { |options| client.webhooks uri, options }
|
78
|
+
auto_pagination request_proc, opts
|
79
|
+
end
|
80
|
+
|
81
|
+
#
|
82
|
+
# Create a user scope webhook associated with self.
|
83
|
+
#
|
84
|
+
# @param [String] url Canonical reference (unique identifier) for the resource.
|
85
|
+
# @param [Array<String>] events List of user events to subscribe to. options: invitee.created or invitee.canceled
|
86
|
+
# @return [Calendly::WebhookSubscription]
|
87
|
+
# @raise [Calendly::Error] if the url arg is empty.
|
88
|
+
# @raise [Calendly::Error] if the events arg is empty.
|
89
|
+
# @raise [Calendly::Error] if the uri is empty.
|
90
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
91
|
+
# @since 0.1.3
|
92
|
+
def create_webhook(url, events)
|
93
|
+
client.create_webhook url, events, uri
|
94
|
+
end
|
63
95
|
end
|
64
96
|
end
|
@@ -52,5 +52,42 @@ module Calendly
|
|
52
52
|
def delete
|
53
53
|
client.delete_membership uuid
|
54
54
|
end
|
55
|
+
|
56
|
+
#
|
57
|
+
# Get List of user scope Webhooks associated with self.
|
58
|
+
#
|
59
|
+
# @param [Hash] opts the optional request parameters.
|
60
|
+
# @option opts [Integer] :count Number of rows to return.
|
61
|
+
# @option opts [String] :page_token Pass this to get the next portion of collection.
|
62
|
+
# @option opts [String] :sort Order results by the specified field and directin. Accepts comma-separated list of {field}:{direction} values.
|
63
|
+
# Accepts comma-separated list of {field}:{direction} values.
|
64
|
+
# @return [Array<Calendly::WebhookSubscription>]
|
65
|
+
# @raise [Calendly::Error] if the organization.uri is empty.
|
66
|
+
# @raise [Calendly::Error] if the user.uri is empty.
|
67
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
68
|
+
# @since 0.1.3
|
69
|
+
def user_scope_webhooks(opts = {})
|
70
|
+
org_uri = organization.uri if organization
|
71
|
+
user_uri = user.uri if user
|
72
|
+
request_proc = proc { |options| client.user_scope_webhooks org_uri, user_uri, options }
|
73
|
+
auto_pagination request_proc, opts
|
74
|
+
end
|
75
|
+
|
76
|
+
#
|
77
|
+
# Create a user scope webhook associated with self.
|
78
|
+
#
|
79
|
+
# @param [String] url Canonical reference (unique identifier) for the resource.
|
80
|
+
# @param [Array<String>] events List of user events to subscribe to. options: invitee.created or invitee.canceled
|
81
|
+
# @return [Calendly::WebhookSubscription]
|
82
|
+
# @raise [Calendly::Error] if the url arg is empty.
|
83
|
+
# @raise [Calendly::Error] if the events arg is empty.
|
84
|
+
# @raise [Calendly::Error] if the organization.uri is empty.
|
85
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
86
|
+
# @since 0.1.3
|
87
|
+
def create_user_scope_webhook(url, events)
|
88
|
+
org_uri = organization.uri if organization
|
89
|
+
user_uri = user.uri if user
|
90
|
+
client.create_webhook url, events, org_uri, user_uri
|
91
|
+
end
|
55
92
|
end
|
56
93
|
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# Get a webhook subscription matching the provided UUID for the webhook subscription
|
2
|
+
|
3
|
+
# frozen_string_literal: true
|
4
|
+
|
5
|
+
module Calendly
|
6
|
+
# Calendly's webhook model.
|
7
|
+
class WebhookSubscription
|
8
|
+
include ModelUtils
|
9
|
+
UUID_RE = %r{\A#{Client::API_HOST}/webhook_subscriptions/(\w+)\z}.freeze
|
10
|
+
TIME_FIELDS = %i[created_at updated_at retry_started_at].freeze
|
11
|
+
ASSOCIATION = {organization: Organization, user: User, creator: User}.freeze
|
12
|
+
|
13
|
+
# @return [String]
|
14
|
+
# unique id of the WebhookSubscription object.
|
15
|
+
attr_accessor :uuid
|
16
|
+
# @return [String]
|
17
|
+
# Canonical reference (unique identifier) for the webhook.
|
18
|
+
attr_accessor :uri
|
19
|
+
# @return [String]
|
20
|
+
# The callback URL to use when the event is triggered.
|
21
|
+
attr_accessor :callback_url
|
22
|
+
# @return [Time]
|
23
|
+
# The moment when the webhook subscription was created.
|
24
|
+
attr_accessor :created_at
|
25
|
+
# @return [Time]
|
26
|
+
# The moment when the webhook subscription was last updated.
|
27
|
+
attr_accessor :updated_at
|
28
|
+
# @return [Time]
|
29
|
+
# The date and time the webhook subscription is retried.
|
30
|
+
attr_accessor :retry_started_at
|
31
|
+
# @return [String]
|
32
|
+
# Indicates if the webhook subscription is "active" or "disabled".
|
33
|
+
attr_accessor :state
|
34
|
+
# @return [Array<String>]
|
35
|
+
# A list of events to which the webhook is subscribed.
|
36
|
+
attr_accessor :events
|
37
|
+
# @return [String]
|
38
|
+
# The scope of the webhook subscription.
|
39
|
+
attr_accessor :scope
|
40
|
+
# @return [Calendly::Organization]
|
41
|
+
# The organization that's associated with the webhook subscription.
|
42
|
+
attr_accessor :organization
|
43
|
+
# @return [Calendly::User]
|
44
|
+
# The user that's associated with the webhook subscription.
|
45
|
+
attr_accessor :user
|
46
|
+
# @return [Calendly::User]
|
47
|
+
# The user who created the webhook subscription.
|
48
|
+
attr_accessor :creator
|
49
|
+
|
50
|
+
#
|
51
|
+
# Get a webhook subscription associated with self.
|
52
|
+
#
|
53
|
+
# @return [Calendly::WebhookSubscription]
|
54
|
+
# @raise [Calendly::Error] if the uuid is empty.
|
55
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
56
|
+
# @since 0.1.3
|
57
|
+
def fetch
|
58
|
+
client.webhook uuid
|
59
|
+
end
|
60
|
+
|
61
|
+
#
|
62
|
+
# Delete a webhook subscription associated with self.
|
63
|
+
#
|
64
|
+
# @return [true]
|
65
|
+
# @raise [Calendly::Error] if the uuid is empty.
|
66
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
67
|
+
# @since 0.1.0
|
68
|
+
def delete
|
69
|
+
client.delete_webhook uuid
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
data/lib/calendly/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: calendly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kenji Koshikawa
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oauth2
|
@@ -159,6 +159,7 @@ files:
|
|
159
159
|
- lib/calendly/models/organization_invitation.rb
|
160
160
|
- lib/calendly/models/organization_membership.rb
|
161
161
|
- lib/calendly/models/user.rb
|
162
|
+
- lib/calendly/models/webhook_subscription.rb
|
162
163
|
- lib/calendly/version.rb
|
163
164
|
homepage: https://github.com/koshilife/calendly-api-ruby-client
|
164
165
|
licenses:
|
@@ -167,7 +168,7 @@ metadata:
|
|
167
168
|
homepage_uri: https://github.com/koshilife/calendly-api-ruby-client
|
168
169
|
source_code_uri: https://github.com/koshilife/calendly-api-ruby-client
|
169
170
|
changelog_uri: https://github.com/koshilife/calendly-api-ruby-client/blob/master/CHANGELOG.md
|
170
|
-
documentation_uri: https://www.rubydoc.info/gems/calendly/0.1.
|
171
|
+
documentation_uri: https://www.rubydoc.info/gems/calendly/0.1.3
|
171
172
|
post_install_message:
|
172
173
|
rdoc_options: []
|
173
174
|
require_paths:
|