timetree 0.2.0 → 1.0.0
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/{.rubocom.yml → .rubocop.yml} +12 -9
- data/CHANGELOG.md +36 -10
- data/README.md +49 -18
- data/Rakefile +8 -6
- data/lib/timetree.rb +12 -7
- data/lib/timetree/api_error.rb +1 -1
- data/lib/timetree/base_client.rb +52 -0
- data/lib/timetree/calendar_app/access_token.rb +25 -0
- data/lib/timetree/calendar_app/client.rb +228 -0
- data/lib/timetree/configuration.rb +11 -5
- data/lib/timetree/http_command.rb +12 -14
- data/lib/timetree/models/activity.rb +14 -2
- data/lib/timetree/models/application.rb +15 -0
- data/lib/timetree/models/base_model.rb +37 -28
- data/lib/timetree/models/calendar.rb +40 -4
- data/lib/timetree/models/event.rb +35 -9
- data/lib/timetree/models/label.rb +2 -0
- data/lib/timetree/models/user.rb +2 -0
- data/lib/timetree/oauth_app/client.rb +256 -0
- data/lib/timetree/version.rb +1 -1
- data/timetree.gemspec +9 -10
- metadata +42 -52
- data/lib/timetree/client.rb +0 -298
data/lib/timetree/models/user.rb
CHANGED
@@ -0,0 +1,256 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TimeTree
|
4
|
+
module OAuthApp
|
5
|
+
# TimeTree API OAuthApp client.
|
6
|
+
class Client < BaseClient
|
7
|
+
# @return [String]
|
8
|
+
attr_reader :token
|
9
|
+
|
10
|
+
# @param token [String] a TimeTree's access token.
|
11
|
+
def initialize(token = nil)
|
12
|
+
@token = token || TimeTree.configuration.oauth_app_token
|
13
|
+
check_token
|
14
|
+
@http_cmd = HttpCommand.new(API_HOST, self)
|
15
|
+
end
|
16
|
+
|
17
|
+
#
|
18
|
+
# Get current user information.
|
19
|
+
#
|
20
|
+
# @return [TimeTree::User]
|
21
|
+
# @raise [TimeTree::ApiError] if the http response status will not success.
|
22
|
+
# @since 0.0.1
|
23
|
+
def current_user
|
24
|
+
res = @http_cmd.get '/user'
|
25
|
+
raise ApiError.new(res) if res.status != 200
|
26
|
+
|
27
|
+
to_model res.body[:data]
|
28
|
+
end
|
29
|
+
|
30
|
+
#
|
31
|
+
# Get a single calendar's information.
|
32
|
+
#
|
33
|
+
# @param cal_id [String] calendar's id.
|
34
|
+
# @param include_relationships [Array<symbol>]
|
35
|
+
# includes association's object in the response.
|
36
|
+
# @return [TimeTree::Calendar]
|
37
|
+
# @raise [TimeTree::Error] if the cal_id arg is empty.
|
38
|
+
# @raise [TimeTree::ApiError] if the http response status will not success.
|
39
|
+
# @since 0.0.1
|
40
|
+
def calendar(cal_id, include_relationships: nil)
|
41
|
+
check_calendar_id cal_id
|
42
|
+
params = relationships_params(include_relationships, Calendar::RELATIONSHIPS)
|
43
|
+
res = @http_cmd.get "/calendars/#{cal_id}", params
|
44
|
+
raise ApiError.new(res) if res.status != 200
|
45
|
+
|
46
|
+
to_model(res.body[:data], included: res.body[:included])
|
47
|
+
end
|
48
|
+
|
49
|
+
#
|
50
|
+
# Get calendar list that current user can access.
|
51
|
+
#
|
52
|
+
# @param include_relationships [Array<symbol>]
|
53
|
+
# includes association's object in the response.
|
54
|
+
# @return [Array<TimeTree::Calendar>]
|
55
|
+
# @raise [TimeTree::ApiError] if the http response status will not success.
|
56
|
+
# @since 0.0.1
|
57
|
+
def calendars(include_relationships: nil)
|
58
|
+
params = relationships_params(include_relationships, Calendar::RELATIONSHIPS)
|
59
|
+
res = @http_cmd.get '/calendars', params
|
60
|
+
raise ApiError.new(res) if res.status != 200
|
61
|
+
|
62
|
+
included = res.body[:included]
|
63
|
+
res.body[:data].map { |item| to_model(item, included: included) }
|
64
|
+
end
|
65
|
+
|
66
|
+
#
|
67
|
+
# Get a calendar's label information used in event.
|
68
|
+
#
|
69
|
+
# @param cal_id [String] calendar's id.
|
70
|
+
# @return [Array<TimeTree::Label>]
|
71
|
+
# @raise [TimeTree::Error] if the cal_id arg is empty.
|
72
|
+
# @raise [TimeTree::ApiError] if the http response status will not success.
|
73
|
+
# @since 0.0.1
|
74
|
+
def calendar_labels(cal_id)
|
75
|
+
check_calendar_id cal_id
|
76
|
+
res = @http_cmd.get "/calendars/#{cal_id}/labels"
|
77
|
+
raise ApiError.new(res) if res.status != 200
|
78
|
+
|
79
|
+
res.body[:data].map { |item| to_model(item) }
|
80
|
+
end
|
81
|
+
|
82
|
+
#
|
83
|
+
# Get a calendar's member information.
|
84
|
+
#
|
85
|
+
# @param cal_id [String] calendar's id.
|
86
|
+
# @return [Array<TimeTree::User>]
|
87
|
+
# @raise [TimeTree::Error] if the cal_id arg is empty.
|
88
|
+
# @raise [TimeTree::ApiError] if the http response status will not success.
|
89
|
+
# @since 0.0.1
|
90
|
+
def calendar_members(cal_id)
|
91
|
+
check_calendar_id cal_id
|
92
|
+
res = @http_cmd.get "/calendars/#{cal_id}/members"
|
93
|
+
raise ApiError.new(res) if res.status != 200
|
94
|
+
|
95
|
+
res.body[:data].map { |item| to_model item }
|
96
|
+
end
|
97
|
+
|
98
|
+
#
|
99
|
+
# Get the event's information.
|
100
|
+
#
|
101
|
+
# @param cal_id [String] calendar's id.
|
102
|
+
# @param event_id [String] event's id.
|
103
|
+
# @param include_relationships [Array<symbol>]
|
104
|
+
# includes association's object in the response.
|
105
|
+
# @return [TimeTree::Event]
|
106
|
+
# @raise [TimeTree::Error] if the cal_id arg is empty.
|
107
|
+
# @raise [TimeTree::Error] if the event_id arg is empty.
|
108
|
+
# @raise [TimeTree::ApiError] if the http response status will not success.
|
109
|
+
# @since 0.0.1
|
110
|
+
def event(cal_id, event_id, include_relationships: nil)
|
111
|
+
check_calendar_id cal_id
|
112
|
+
check_event_id event_id
|
113
|
+
params = relationships_params(include_relationships, Event::RELATIONSHIPS)
|
114
|
+
res = @http_cmd.get "/calendars/#{cal_id}/events/#{event_id}", params
|
115
|
+
raise ApiError.new(res) if res.status != 200
|
116
|
+
|
117
|
+
ev = to_model(res.body[:data], included: res.body[:included])
|
118
|
+
ev.calendar_id = cal_id
|
119
|
+
ev
|
120
|
+
end
|
121
|
+
|
122
|
+
#
|
123
|
+
# Get the events' information after a request date.
|
124
|
+
#
|
125
|
+
# @param cal_id[String] calendar's id.
|
126
|
+
# @param days [Integer] The number of days to get.
|
127
|
+
# @param timezone [String] Timezone.
|
128
|
+
# @param include_relationships [Array<symbol>]
|
129
|
+
# includes association's object in the response.
|
130
|
+
# @return [Array<TimeTree::Event>]
|
131
|
+
# @raise [TimeTree::Error] if the cal_id arg is empty.
|
132
|
+
# @raise [TimeTree::ApiError] if the http response status will not success.
|
133
|
+
# @since 0.0.1
|
134
|
+
def upcoming_events(cal_id, days: 7, timezone: 'UTC', include_relationships: nil)
|
135
|
+
check_calendar_id cal_id
|
136
|
+
params = relationships_params(include_relationships, Event::RELATIONSHIPS)
|
137
|
+
params.merge!(days: days, timezone: timezone)
|
138
|
+
res = @http_cmd.get "/calendars/#{cal_id}/upcoming_events", params
|
139
|
+
raise ApiError.new(res) if res.status != 200
|
140
|
+
|
141
|
+
included = res.body[:included]
|
142
|
+
res.body[:data].map do |item|
|
143
|
+
ev = to_model(item, included: included)
|
144
|
+
ev.calendar_id = cal_id
|
145
|
+
ev
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
#
|
150
|
+
# Creates an event to the calendar.
|
151
|
+
#
|
152
|
+
# @param cal_id [String] calendar's id.
|
153
|
+
# @param params [Hash] TimeTree request body format.
|
154
|
+
# @return [TimeTree::Event]
|
155
|
+
# @raise [TimeTree::Error] if the cal_id arg is empty.
|
156
|
+
# @raise [TimeTree::ApiError] if the http response status will not success.
|
157
|
+
# @since 0.0.1
|
158
|
+
def create_event(cal_id, params)
|
159
|
+
check_calendar_id cal_id
|
160
|
+
res = @http_cmd.post "/calendars/#{cal_id}/events", params
|
161
|
+
raise ApiError.new(res) if res.status != 201
|
162
|
+
|
163
|
+
ev = to_model res.body[:data]
|
164
|
+
ev.calendar_id = cal_id
|
165
|
+
ev
|
166
|
+
end
|
167
|
+
|
168
|
+
#
|
169
|
+
# Updates an event.
|
170
|
+
#
|
171
|
+
# @param cal_id [String] calendar's id.
|
172
|
+
# @param event_id [String] event's id.
|
173
|
+
# @param params [Hash]
|
174
|
+
# event's information specified in TimeTree request body format.
|
175
|
+
# @return [TimeTree::Event]
|
176
|
+
# @raise [TimeTree::Error] if the cal_id arg is empty.
|
177
|
+
# @raise [TimeTree::Error] if the event_id arg is empty.
|
178
|
+
# @raise [TimeTree::ApiError] if the http response status will not success.
|
179
|
+
# @since 0.0.1
|
180
|
+
def update_event(cal_id, event_id, params)
|
181
|
+
check_calendar_id cal_id
|
182
|
+
check_event_id event_id
|
183
|
+
res = @http_cmd.put "/calendars/#{cal_id}/events/#{event_id}", params
|
184
|
+
raise ApiError.new(res) if res.status != 200
|
185
|
+
|
186
|
+
ev = to_model res.body[:data]
|
187
|
+
ev.calendar_id = cal_id
|
188
|
+
ev
|
189
|
+
end
|
190
|
+
|
191
|
+
#
|
192
|
+
# Deletes an event.
|
193
|
+
#
|
194
|
+
# @param cal_id [String] calendar's id.
|
195
|
+
# @param event_id [String] event's id.
|
196
|
+
# @return [true] if the operation succeeded.
|
197
|
+
# @raise [TimeTree::Error] if the cal_id arg is empty.
|
198
|
+
# @raise [TimeTree::Error] if the event_id arg is empty.
|
199
|
+
# @raise [TimeTree::ApiError] if the http response status will not success.
|
200
|
+
# @since 0.0.1
|
201
|
+
def delete_event(cal_id, event_id)
|
202
|
+
check_calendar_id cal_id
|
203
|
+
check_event_id event_id
|
204
|
+
res = @http_cmd.delete "/calendars/#{cal_id}/events/#{event_id}"
|
205
|
+
raise ApiError.new(res) if res.status != 204
|
206
|
+
|
207
|
+
true
|
208
|
+
end
|
209
|
+
|
210
|
+
#
|
211
|
+
# Creates comment to an event.
|
212
|
+
#
|
213
|
+
# @param cal_id [String] calendar's id.
|
214
|
+
# @param event_id [String] event's id.
|
215
|
+
# @param params [Hash]
|
216
|
+
# comment's information specified in TimeTree request body format.
|
217
|
+
# @return [TimeTree::Activity]
|
218
|
+
# @raise [TimeTree::Error] if the cal_id arg is empty.
|
219
|
+
# @raise [TimeTree::Error] if the event_id arg is empty.
|
220
|
+
# @raise [TimeTree::ApiError] if the http response status is not success.
|
221
|
+
# @since 0.0.1
|
222
|
+
def create_activity(cal_id, event_id, params)
|
223
|
+
check_calendar_id cal_id
|
224
|
+
check_event_id event_id
|
225
|
+
res = @http_cmd.post "/calendars/#{cal_id}/events/#{event_id}/activities", params
|
226
|
+
raise ApiError.new(res) if res.status != 201
|
227
|
+
|
228
|
+
activity = to_model res.body[:data]
|
229
|
+
activity.calendar_id = cal_id
|
230
|
+
activity.event_id = event_id
|
231
|
+
activity
|
232
|
+
end
|
233
|
+
|
234
|
+
def inspect
|
235
|
+
limit_info = nil
|
236
|
+
if defined?(@ratelimit_limit) && @ratelimit_limit
|
237
|
+
limit_info = " ratelimit:#{ratelimit_remaining}/#{ratelimit_limit}"
|
238
|
+
end
|
239
|
+
if defined?(@ratelimit_reset_at) && @ratelimit_reset_at
|
240
|
+
limit_info = "#{limit_info}, reset_at:#{ratelimit_reset_at.strftime('%m/%d %R')}"
|
241
|
+
end
|
242
|
+
"\#<#{self.class}:#{object_id}#{limit_info}>"
|
243
|
+
end
|
244
|
+
|
245
|
+
private
|
246
|
+
|
247
|
+
def check_token
|
248
|
+
check_required_property(@token, 'token')
|
249
|
+
end
|
250
|
+
|
251
|
+
def check_calendar_id(value)
|
252
|
+
check_required_property(value, 'calendar_id')
|
253
|
+
end
|
254
|
+
end
|
255
|
+
end
|
256
|
+
end
|
data/lib/timetree/version.rb
CHANGED
data/timetree.gemspec
CHANGED
@@ -28,15 +28,14 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
29
29
|
spec.require_paths = ['lib']
|
30
30
|
|
31
|
-
spec.add_runtime_dependency 'faraday', '
|
32
|
-
spec.add_runtime_dependency 'faraday_middleware', '
|
33
|
-
spec.add_runtime_dependency '
|
31
|
+
spec.add_runtime_dependency 'faraday', '>= 1.0.1'
|
32
|
+
spec.add_runtime_dependency 'faraday_middleware', '>= 1.0.0'
|
33
|
+
spec.add_runtime_dependency 'jwt', '>= 2.2.2'
|
34
34
|
|
35
|
-
spec.add_development_dependency 'bundler'
|
36
|
-
spec.add_development_dependency 'codecov'
|
37
|
-
spec.add_development_dependency 'minitest'
|
38
|
-
spec.add_development_dependency '
|
39
|
-
spec.add_development_dependency '
|
40
|
-
spec.add_development_dependency '
|
41
|
-
spec.add_development_dependency 'webmock', '~> 3.7.6'
|
35
|
+
spec.add_development_dependency 'bundler'
|
36
|
+
spec.add_development_dependency 'codecov'
|
37
|
+
spec.add_development_dependency 'minitest'
|
38
|
+
spec.add_development_dependency 'rake'
|
39
|
+
spec.add_development_dependency 'simplecov'
|
40
|
+
spec.add_development_dependency 'webmock'
|
42
41
|
end
|
metadata
CHANGED
@@ -1,155 +1,141 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: timetree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
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-
|
11
|
+
date: 2020-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.0.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.0.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: faraday_middleware
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 1.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 1.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: jwt
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 2.
|
47
|
+
version: 2.2.2
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 2.
|
54
|
+
version: 2.2.2
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: codecov
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0
|
75
|
+
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0
|
82
|
+
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: minitest
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: minitest-reporters
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 1.4.2
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 1.4.2
|
96
|
+
version: '0'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: rake
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
114
100
|
requirements:
|
115
|
-
- - "
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
103
|
+
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
|
-
- - "
|
108
|
+
- - ">="
|
123
109
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
110
|
+
version: '0'
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: simplecov
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
128
114
|
requirements:
|
129
|
-
- - "
|
115
|
+
- - ">="
|
130
116
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0
|
117
|
+
version: '0'
|
132
118
|
type: :development
|
133
119
|
prerelease: false
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
135
121
|
requirements:
|
136
|
-
- - "
|
122
|
+
- - ">="
|
137
123
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0
|
124
|
+
version: '0'
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
126
|
name: webmock
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
142
128
|
requirements:
|
143
|
-
- - "
|
129
|
+
- - ">="
|
144
130
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
131
|
+
version: '0'
|
146
132
|
type: :development
|
147
133
|
prerelease: false
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
149
135
|
requirements:
|
150
|
-
- - "
|
136
|
+
- - ">="
|
151
137
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
138
|
+
version: '0'
|
153
139
|
description: Client for accessing TimeTree APIs
|
154
140
|
email:
|
155
141
|
- koshikawa2009@gmail.com
|
@@ -160,7 +146,7 @@ files:
|
|
160
146
|
- ".github/workflows/gem-push.yml"
|
161
147
|
- ".github/workflows/test.yml"
|
162
148
|
- ".gitignore"
|
163
|
-
- ".
|
149
|
+
- ".rubocop.yml"
|
164
150
|
- CHANGELOG.md
|
165
151
|
- CODE_OF_CONDUCT.md
|
166
152
|
- Gemfile
|
@@ -171,15 +157,19 @@ files:
|
|
171
157
|
- bin/setup
|
172
158
|
- lib/timetree.rb
|
173
159
|
- lib/timetree/api_error.rb
|
174
|
-
- lib/timetree/
|
160
|
+
- lib/timetree/base_client.rb
|
161
|
+
- lib/timetree/calendar_app/access_token.rb
|
162
|
+
- lib/timetree/calendar_app/client.rb
|
175
163
|
- lib/timetree/configuration.rb
|
176
164
|
- lib/timetree/http_command.rb
|
177
165
|
- lib/timetree/models/activity.rb
|
166
|
+
- lib/timetree/models/application.rb
|
178
167
|
- lib/timetree/models/base_model.rb
|
179
168
|
- lib/timetree/models/calendar.rb
|
180
169
|
- lib/timetree/models/event.rb
|
181
170
|
- lib/timetree/models/label.rb
|
182
171
|
- lib/timetree/models/user.rb
|
172
|
+
- lib/timetree/oauth_app/client.rb
|
183
173
|
- lib/timetree/version.rb
|
184
174
|
- timetree.gemspec
|
185
175
|
homepage: https://github.com/koshilife/timetree-api-ruby-client
|
@@ -189,7 +179,7 @@ metadata:
|
|
189
179
|
homepage_uri: https://github.com/koshilife/timetree-api-ruby-client
|
190
180
|
source_code_uri: https://github.com/koshilife/timetree-api-ruby-client
|
191
181
|
changelog_uri: https://github.com/koshilife/timetree-api-ruby-client/blob/master/CHANGELOG.md
|
192
|
-
documentation_uri: https://www.rubydoc.info/gems/timetree/0.
|
182
|
+
documentation_uri: https://www.rubydoc.info/gems/timetree/1.0.0
|
193
183
|
post_install_message:
|
194
184
|
rdoc_options: []
|
195
185
|
require_paths:
|