timetree 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 98b454f4b6399b34fbf63831e9cc44fd2f5ca70cb7240d57789c7ff444cb3368
4
- data.tar.gz: 96fdd0ff4900c2cb70a3382deae8f4595b161d29051a6cbaaa3d1c62a09c7dc2
3
+ metadata.gz: df0d2bfb7eba71f46fe26e60f22fffae4b0da14fbb4e08b65554c2196618d92f
4
+ data.tar.gz: 2d9da4a76ece71b6a9c4515655ef17f0f27d72f0ab540c53c118492076881a03
5
5
  SHA512:
6
- metadata.gz: da93d828f3a2b0bd9975ef68d3e60d20d78c617f26aeed868d7f3c9da420d301dc9217d00599fd4bb8066f58cf07f371dd68f7e1c820774b9b0766174b33d4eb
7
- data.tar.gz: '083b993a60b2a6456012c1be450912f03c00566f503a814ce41b17e4a6a537f0cbfd58c5f6f98264d82a478303a15ab807c6ebe4c9755ac5f86b4971a331a16e'
6
+ metadata.gz: 860f43f818d2eb354d57c6a657301b2c33104fd6e372f1769a5509b37aee9033fcc8d9ac0058364562128a2a00edd19bd42bdc2ec7614e506c59b66f4c2c7701
7
+ data.tar.gz: 6cdae75ad99e57b6ec9d86781fb402cfea2424c85644898e0991e2745c9fcd30872d8ca8febf0f896147ca49a98e67fcb6f911ae494e193eef82b64654d3e0b9
@@ -23,12 +23,11 @@ Metrics/BlockNesting:
23
23
  Max: 2
24
24
 
25
25
  Layout/LineLength:
26
- AllowURI: true
27
- Enabled: false
26
+ Max: 120
28
27
 
29
28
  Metrics/MethodLength:
30
29
  CountComments: false
31
- Max: 15
30
+ Max: 20
32
31
 
33
32
  Metrics/ParameterLists:
34
33
  Max: 4
@@ -39,10 +38,10 @@ Metrics/AbcSize:
39
38
 
40
39
  Style/CollectionMethods:
41
40
  PreferredMethods:
42
- map: 'collect'
43
- reduce: 'inject'
44
- find: 'detect'
45
- find_all: 'select'
41
+ map: "collect"
42
+ reduce: "inject"
43
+ find: "detect"
44
+ find_all: "select"
46
45
 
47
46
  Style/Documentation:
48
47
  Enabled: false
@@ -60,10 +59,13 @@ Style/ExpandPathArguments:
60
59
  Enabled: false
61
60
 
62
61
  Style/HashSyntax:
63
- EnforcedStyle: hash_rockets
62
+ EnforcedStyle: ruby19
64
63
 
65
64
  Style/Lambda:
66
65
  Enabled: false
67
66
 
68
67
  Style/RaiseArgs:
69
- EnforcedStyle: compact
68
+ EnforcedStyle: compact
69
+
70
+ Style/AsciiComments:
71
+ Enabled: false
@@ -1,55 +1,61 @@
1
- # 0.3.0
1
+ # CHANGELOG
2
+
3
+ ## 0.3.1
4
+
5
+ - fix rubocop warnings.
6
+
7
+ ## 0.3.0
2
8
 
3
9
  - refs #25 fix dependencies.
4
10
  - remove minitest-reporter.
5
11
 
6
- # 0.2.1
12
+ ## 0.2.1
7
13
 
8
14
  - do refactor
9
15
  - use `respond_to?(setter)` instead of `instance_methods.include?(setter)`.
10
16
  - use getter method instead of instant variables if defined it.
11
17
 
12
- # 0.2.0
18
+ ## 0.2.0
13
19
 
14
20
  - organize model classes.
15
21
 
16
- # 0.1.7
22
+ ## 0.1.7
17
23
 
18
24
  - refs #16 correct a mistake codecov badge url on README
19
25
 
20
- # 0.1.6
26
+ ## 0.1.6
21
27
 
22
28
  - refs #16 add code coverage to readme.
23
29
  - refs #17 update deprecated `version` for `ruby-version` on gem-push.yml.
24
30
 
25
- # 0.1.5
31
+ ## 0.1.5
26
32
 
27
33
  - refs #6 setup GitHub Actions.
28
34
 
29
- # 0.1.4
35
+ ## 0.1.4
30
36
 
31
37
  - updates comments.
32
38
 
33
- # 0.1.3
39
+ ## 0.1.3
34
40
 
35
41
  - refs #7 #9 make the code coverage 100%.
36
42
 
37
- # 0.1.2
43
+ ## 0.1.2
38
44
 
39
45
  - refs #1 fix typo Event#recurrences to recurrence
40
46
  - refs #2 add a note for debugging guide on README
41
47
 
42
- # 0.1.1
48
+ ## 0.1.1
43
49
 
44
50
  - set current version on this gem's documentation_uri.
45
51
  - fixed typo on README.
46
52
 
47
- # 0.1.0
53
+ ## 0.1.0
48
54
 
49
55
  - did refactor and wrote comments.
50
56
  - started to use zeitwerk.
51
57
  - wrote README.
52
58
 
53
- # 0.0.1
59
+ ## 0.0.1
54
60
 
55
61
  - Initial release
data/Rakefile CHANGED
@@ -1,10 +1,12 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rake/testtask'
3
5
 
4
6
  Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList["test/**/*_test.rb"]
7
+ t.libs << 'test'
8
+ t.libs << 'lib'
9
+ t.test_files = FileList['test/**/*_test.rb']
8
10
  end
9
11
 
10
- task :default => :test
12
+ task default: :test
@@ -28,7 +28,7 @@ module TimeTree
28
28
  # @since 0.0.1
29
29
  def current_user
30
30
  res = @http_cmd.get '/user'
31
- raise ApiError, res if res.status != 200
31
+ raise ApiError.new(res) if res.status != 200
32
32
 
33
33
  to_model res.body[:data]
34
34
  end
@@ -47,7 +47,7 @@ module TimeTree
47
47
  check_calendar_id cal_id
48
48
  params = relationships_params(include_relationships, Calendar::RELATIONSHIPS)
49
49
  res = @http_cmd.get "/calendars/#{cal_id}", params
50
- raise ApiError, res if res.status != 200
50
+ raise ApiError.new(res) if res.status != 200
51
51
 
52
52
  to_model(res.body[:data], included: res.body[:included])
53
53
  end
@@ -63,7 +63,7 @@ module TimeTree
63
63
  def calendars(include_relationships: nil)
64
64
  params = relationships_params(include_relationships, Calendar::RELATIONSHIPS)
65
65
  res = @http_cmd.get '/calendars', params
66
- raise ApiError, res if res.status != 200
66
+ raise ApiError.new(res) if res.status != 200
67
67
 
68
68
  included = res.body[:included]
69
69
  res.body[:data].map { |item| to_model(item, included: included) }
@@ -80,7 +80,7 @@ module TimeTree
80
80
  def calendar_labels(cal_id)
81
81
  check_calendar_id cal_id
82
82
  res = @http_cmd.get "/calendars/#{cal_id}/labels"
83
- raise ApiError, res if res.status != 200
83
+ raise ApiError.new(res) if res.status != 200
84
84
 
85
85
  res.body[:data].map { |item| to_model(item) }
86
86
  end
@@ -96,7 +96,7 @@ module TimeTree
96
96
  def calendar_members(cal_id)
97
97
  check_calendar_id cal_id
98
98
  res = @http_cmd.get "/calendars/#{cal_id}/members"
99
- raise ApiError, res if res.status != 200
99
+ raise ApiError.new(res) if res.status != 200
100
100
 
101
101
  res.body[:data].map { |item| to_model item }
102
102
  end
@@ -118,7 +118,7 @@ module TimeTree
118
118
  check_event_id event_id
119
119
  params = relationships_params(include_relationships, Event::RELATIONSHIPS)
120
120
  res = @http_cmd.get "/calendars/#{cal_id}/events/#{event_id}", params
121
- raise ApiError, res if res.status != 200
121
+ raise ApiError.new(res) if res.status != 200
122
122
 
123
123
  ev = to_model(res.body[:data], included: res.body[:included])
124
124
  ev.calendar_id = cal_id
@@ -142,7 +142,7 @@ module TimeTree
142
142
  params = relationships_params(include_relationships, Event::RELATIONSHIPS)
143
143
  params.merge!(days: days, timezone: timezone)
144
144
  res = @http_cmd.get "/calendars/#{cal_id}/upcoming_events", params
145
- raise ApiError, res if res.status != 200
145
+ raise ApiError.new(res) if res.status != 200
146
146
 
147
147
  included = res.body[:included]
148
148
  res.body[:data].map do |item|
@@ -164,7 +164,7 @@ module TimeTree
164
164
  def create_event(cal_id, params)
165
165
  check_calendar_id cal_id
166
166
  res = @http_cmd.post "/calendars/#{cal_id}/events", params
167
- raise ApiError, res if res.status != 201
167
+ raise ApiError.new(res) if res.status != 201
168
168
 
169
169
  ev = to_model res.body[:data]
170
170
  ev.calendar_id = cal_id
@@ -187,7 +187,7 @@ module TimeTree
187
187
  check_calendar_id cal_id
188
188
  check_event_id event_id
189
189
  res = @http_cmd.put "/calendars/#{cal_id}/events/#{event_id}", params
190
- raise ApiError, res if res.status != 200
190
+ raise ApiError.new(res) if res.status != 200
191
191
 
192
192
  ev = to_model res.body[:data]
193
193
  ev.calendar_id = cal_id
@@ -208,7 +208,7 @@ module TimeTree
208
208
  check_calendar_id cal_id
209
209
  check_event_id event_id
210
210
  res = @http_cmd.delete "/calendars/#{cal_id}/events/#{event_id}"
211
- raise ApiError, res if res.status != 204
211
+ raise ApiError.new(res) if res.status != 204
212
212
 
213
213
  true
214
214
  end
@@ -229,7 +229,7 @@ module TimeTree
229
229
  check_calendar_id cal_id
230
230
  check_event_id event_id
231
231
  res = @http_cmd.post "/calendars/#{cal_id}/events/#{event_id}/activities", params
232
- raise ApiError, res if res.status != 201
232
+ raise ApiError.new(res) if res.status != 201
233
233
 
234
234
  activity = to_model res.body[:data]
235
235
  activity.calendar_id = cal_id
@@ -262,7 +262,7 @@ module TimeTree
262
262
  @ratelimit_reset_at = Time.at reset.to_i if reset
263
263
  end
264
264
 
265
- private
265
+ private
266
266
 
267
267
  def check_token
268
268
  check_required_property(@token, 'token')
@@ -27,7 +27,7 @@ module TimeTree
27
27
  # The request bodythat will eventually be converted to JSON.
28
28
  def post(path, body_params = {})
29
29
  @logger.debug "POST #{@host}#{path} body:#{body_params}"
30
- headers = { 'Content-Type' => 'application/json' }
30
+ headers = {'Content-Type' => 'application/json'}
31
31
  res = connection.run_request :post, path, body_params.to_json, headers
32
32
  @client.update_ratelimit(res)
33
33
  @logger.debug "Response status:#{res.status}, body:#{res.body}"
@@ -39,7 +39,7 @@ module TimeTree
39
39
  # The request bodythat will eventually be converted to JSON.
40
40
  def put(path, body_params = {})
41
41
  @logger.debug "PUT #{@host}#{path} body:#{body_params}"
42
- headers = { 'Content-Type' => 'application/json' }
42
+ headers = {'Content-Type' => 'application/json'}
43
43
  res = connection.run_request :put, path, body_params.to_json, headers
44
44
  @client.update_ratelimit(res)
45
45
  @logger.debug "Response status:#{res.status}, body:#{res.body}"
@@ -56,14 +56,14 @@ module TimeTree
56
56
  res
57
57
  end
58
58
 
59
- private
59
+ private
60
60
 
61
61
  def connection
62
62
  Faraday.new(
63
63
  url: @host,
64
64
  headers: base_request_headers
65
65
  ) do |builder|
66
- builder.response :json, parser_options: { symbolize_names: true }, content_type: /\bjson$/
66
+ builder.response :json, parser_options: {symbolize_names: true}, content_type: /\bjson$/
67
67
  end
68
68
  end
69
69
 
@@ -39,7 +39,7 @@ module TimeTree
39
39
  # @since 0.0.1
40
40
  def data_params
41
41
  {
42
- data: { attributes: { content: content } }
42
+ data: {attributes: {content: content}}
43
43
  }
44
44
  end
45
45
  end
@@ -4,7 +4,7 @@ require 'time'
4
4
 
5
5
  module TimeTree
6
6
  # TimeTree base model object.
7
- class BaseModel
7
+ class BaseModel # rubocop:disable Metrics/ClassLength
8
8
  # @return [Array<Hash<String,String>>]
9
9
  attr_accessor :relationships
10
10
  # @return [String]
@@ -20,10 +20,10 @@ module TimeTree
20
20
  # A TimeTree model object that be based on the type.
21
21
  # @raise [TimeTree::Error] if the type property is not set or unknown.
22
22
  # @since 0.0.1
23
- def self.to_model(data, included: nil, client: nil)
23
+ def self.to_model(data, included: nil, client: nil) # rubocop:disable all
24
24
  id = data[:id]
25
25
  type = data[:type]
26
- raise Error, 'type is required.' if type.nil?
26
+ raise Error.new('type is required.') if type.nil?
27
27
 
28
28
  attributes = data[:attributes] || {}
29
29
  relationships = data[:relationships] || {}
@@ -48,11 +48,11 @@ module TimeTree
48
48
  when 'activity'
49
49
  Activity.new(**params)
50
50
  else
51
- raise Error, "type '#{type}' is unknown."
51
+ raise Error.new("type '#{type}' is unknown.")
52
52
  end
53
53
  end
54
54
 
55
- def initialize(type:, id: nil, client: nil, attributes: nil, relationships: nil, included: nil)
55
+ def initialize(type:, id: nil, client: nil, attributes: nil, relationships: nil, included: nil) # rubocop:disable Metrics/ParameterLists
56
56
  @type = type
57
57
  @id = id
58
58
  @client = client
@@ -64,31 +64,29 @@ module TimeTree
64
64
  "\#<#{self.class}:#{object_id} id:#{id}>"
65
65
  end
66
66
 
67
- private
67
+ private
68
68
 
69
69
  def check_client
70
- raise Error, '@client is nil.' if @client.nil?
70
+ raise Error.new('@client is nil.') if @client.nil?
71
71
  end
72
72
 
73
73
  def to_model(data)
74
74
  self.class.to_model data, client: @client
75
75
  end
76
76
 
77
- def set_attributes(attributes)
77
+ def set_attributes(attributes) # rubocop:disable Naming/AccessorMethodName
78
78
  return unless attributes.is_a? Hash
79
79
  return if attributes.empty?
80
80
 
81
81
  attributes.each do |key, value|
82
82
  next unless respond_to?("#{key}=".to_sym)
83
83
 
84
- if defined?(self.class::TIME_FIELDS) && self.class::TIME_FIELDS.include?(key)
85
- value = Time.parse value
86
- end
84
+ value = Time.parse value if defined?(self.class::TIME_FIELDS) && self.class::TIME_FIELDS.include?(key)
87
85
  instance_variable_set "@#{key}", value
88
86
  end
89
87
  end
90
88
 
91
- def set_relationships(relationships, included)
89
+ def set_relationships(relationships, included) # rubocop:disable all
92
90
  return unless relationships.is_a? Hash
93
91
  return if relationships.empty?
94
92
  return unless defined? self.class::RELATIONSHIPS
@@ -110,7 +108,7 @@ module TimeTree
110
108
  set_relationship_data_if_included(included)
111
109
  end
112
110
 
113
- def set_relationship_data_if_included(included)
111
+ def set_relationship_data_if_included(included) # rubocop:disable all
114
112
  @_relation_data_dic = {}
115
113
  included.each do |data|
116
114
  item = to_model(data)
@@ -90,7 +90,7 @@ module TimeTree
90
90
  # @since 0.0.1
91
91
  def create_comment(message)
92
92
  check_client
93
- params = { type: 'activity', attributes: { calendar_id: calendar_id, event_id: id, content: message } }
93
+ params = {type: 'activity', attributes: {calendar_id: calendar_id, event_id: id, content: message}}
94
94
  activity = to_model params
95
95
  activity.create
96
96
  end
@@ -120,14 +120,14 @@ module TimeTree
120
120
  }
121
121
  end
122
122
 
123
- private
123
+ private
124
124
 
125
125
  def relationships_params
126
- current_label = label ? { type: 'label', id: label.id } : relationships[:label]
127
- current_attendees = attendees ? attendees.map { |u| { type: 'user', id: u.id } } : relationships[:attendees]
126
+ current_label = label ? {type: 'label', id: label.id} : relationships[:label]
127
+ current_attendees = attendees ? attendees.map { |u| {type: 'user', id: u.id} } : relationships[:attendees]
128
128
  {
129
- label: { data: current_label },
130
- attendees: { data: current_attendees }
129
+ label: {data: current_label},
130
+ attendees: {data: current_attendees}
131
131
  }
132
132
  end
133
133
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TimeTree
4
- VERSION = '0.3.0'
4
+ VERSION = '0.3.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timetree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
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-08-19 00:00:00.000000000 Z
11
+ date: 2020-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -146,7 +146,7 @@ files:
146
146
  - ".github/workflows/gem-push.yml"
147
147
  - ".github/workflows/test.yml"
148
148
  - ".gitignore"
149
- - ".rubocom.yml"
149
+ - ".rubocop.yml"
150
150
  - CHANGELOG.md
151
151
  - CODE_OF_CONDUCT.md
152
152
  - Gemfile
@@ -175,7 +175,7 @@ metadata:
175
175
  homepage_uri: https://github.com/koshilife/timetree-api-ruby-client
176
176
  source_code_uri: https://github.com/koshilife/timetree-api-ruby-client
177
177
  changelog_uri: https://github.com/koshilife/timetree-api-ruby-client/blob/master/CHANGELOG.md
178
- documentation_uri: https://www.rubydoc.info/gems/timetree/0.3.0
178
+ documentation_uri: https://www.rubydoc.info/gems/timetree/0.3.1
179
179
  post_install_message:
180
180
  rdoc_options: []
181
181
  require_paths: