timetree 0.1.4 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6fd16ab1a54faf7be5a951aa8472e997f791ab3dc1bdb06d1588f0630920c2a1
4
- data.tar.gz: 0c2ba91f9b256c5011f053cdf831d35c905486097a6cb832635d25261fe3f77a
3
+ metadata.gz: cd742156da72043bdb3d549064a3ea4c560fc8ef2c60c340c53647b6cc0ea43b
4
+ data.tar.gz: 828100939eadee2275fa189f34dfe9fdd86b58113941cee0eaaabea26a161753
5
5
  SHA512:
6
- metadata.gz: 01db118d26095eed595b67747f51cd2203fc767378b1b2c39f5ef4985098bf53ba53a2c60d836717924281b603af09f24700bc9ac3ef1d4b63a0b71495baa932
7
- data.tar.gz: 29ff89e03d4d9919fbd981f4b34b0fa2ae0a6df5ca57a61b29a50497fd56b3888739139ebd48c554ac120f5aa9369eb8e3658cefcddad19207ea1b42490a1112
6
+ metadata.gz: f13a82f70529e872f34026d733875f05ef783c9dc5b89b23b6fc989b3256acf6f5640a8c5a377707b6adec96aa04a659cfab8ebd8a83bc9866a626179566a772
7
+ data.tar.gz: 38bf4a08b7e0bb92275ed0a9d20cf31f1623ba5955a560f3491625080e1b0ffdf2075c5e753d916f5aba64f860465582bf46f01a391af15b6c8c712211f9c168
@@ -0,0 +1,37 @@
1
+ name: Ruby Gem
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+
7
+ jobs:
8
+ build:
9
+ name: Build + Publish
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - name: Set up Ruby 2.6
15
+ uses: actions/setup-ruby@v1
16
+ with:
17
+ ruby-version: 2.6
18
+
19
+ - name: Build and test
20
+ run: |
21
+ gem install bundler
22
+ bundle install --jobs 4 --retry 3
23
+ bundle exec rake test
24
+ env:
25
+ CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}}
26
+
27
+ - name: Publish to RubyGems
28
+ run: |
29
+ mkdir -p $HOME/.gem
30
+ touch $HOME/.gem/credentials
31
+ chmod 0600 $HOME/.gem/credentials
32
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
33
+ gem build *.gemspec
34
+ gem push *.gem
35
+ continue-on-error: true
36
+ env:
37
+ GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
@@ -0,0 +1,21 @@
1
+ name: Test
2
+
3
+ on: pull_request
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+
9
+ steps:
10
+ - uses: actions/checkout@v2
11
+ - name: Set up Ruby
12
+ uses: ruby/setup-ruby@v1
13
+ with:
14
+ ruby-version: 2.6
15
+ - name: Build and test
16
+ run: |
17
+ gem install bundler
18
+ bundle install --jobs 4 --retry 3
19
+ bundle exec rake test
20
+ env:
21
+ CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}}
data/.gitignore CHANGED
@@ -7,5 +7,4 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
 
10
- coverage
11
- Gemfile.lock
10
+ Gemfile.lock
@@ -1,3 +1,26 @@
1
+ # 0.2.1
2
+
3
+ - do refactor
4
+ - use `respond_to?(setter)` instead of `instance_methods.include?(setter)`.
5
+ - use getter method instead of instant variables if defined it.
6
+
7
+ # 0.2.0
8
+
9
+ - organize model classes.
10
+
11
+ # 0.1.7
12
+
13
+ - refs #16 correct a mistake codecov badge url on README
14
+
15
+ # 0.1.6
16
+
17
+ - refs #16 add code coverage to readme.
18
+ - refs #17 update deprecated `version` for `ruby-version` on gem-push.yml.
19
+
20
+ # 0.1.5
21
+
22
+ - refs #6 setup GitHub Actions.
23
+
1
24
  # 0.1.4
2
25
 
3
26
  - updates comments.
data/README.md CHANGED
@@ -1,6 +1,9 @@
1
1
  # Simple TimeTree APIs client
2
2
 
3
+ [![Test](https://github.com/koshilife/timetree-api-ruby-client/workflows/Test/badge.svg)](https://github.com/koshilife/timetree-api-ruby-client/actions?query=workflow%3ATest)
4
+ [![codecov](https://codecov.io/gh/koshilife/timetree-api-ruby-client/branch/master/graph/badge.svg)](https://codecov.io/gh/koshilife/timetree-api-ruby-client)
3
5
  [![Gem Version](https://badge.fury.io/rb/timetree.svg)](http://badge.fury.io/rb/timetree)
6
+ [![license](https://img.shields.io/github/license/koshilife/timetree-api-ruby-client)](https://github.com/koshilife/timetree-api-ruby-client/blob/master/LICENSE.txt)
4
7
 
5
8
  ## About
6
9
 
@@ -1,14 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require "bundler/setup"
4
- require "timetree"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
4
+ require 'bundler/setup'
5
+ require 'timetree'
6
+ require 'irb'
14
7
  IRB.start(__FILE__)
data/bin/setup CHANGED
@@ -4,5 +4,3 @@ IFS=$'\n\t'
4
4
  set -vx
5
5
 
6
6
  bundle install
7
-
8
- # Do any other automated setup that you need to do here
@@ -5,6 +5,7 @@ loader = Zeitwerk::Loader.for_gem
5
5
  loader.inflector.inflect(
6
6
  'timetree' => 'TimeTree'
7
7
  )
8
+ loader.collapse('**/models')
8
9
  loader.setup
9
10
 
10
11
  # module for TimeTree apis client
@@ -23,7 +23,7 @@ module TimeTree
23
23
  end
24
24
 
25
25
  def inspect
26
- "\#<#{self.class}:#{object_id} title:#{@title}, status:#{@status}>"
26
+ "\#<#{self.class}:#{object_id} title:#{title}, status:#{status}>"
27
27
  end
28
28
  end
29
29
  end
@@ -240,10 +240,10 @@ module TimeTree
240
240
  def inspect
241
241
  limit_info = nil
242
242
  if defined?(@ratelimit_limit) && @ratelimit_limit
243
- limit_info = " ratelimit:#{@ratelimit_remaining}/#{@ratelimit_limit}"
243
+ limit_info = " ratelimit:#{ratelimit_remaining}/#{ratelimit_limit}"
244
244
  end
245
245
  if defined?(@ratelimit_reset_at) && @ratelimit_reset_at
246
- limit_info = "#{limit_info}, reset_at:#{@ratelimit_reset_at.strftime('%m/%d %R')}"
246
+ limit_info = "#{limit_info}, reset_at:#{ratelimit_reset_at.strftime('%m/%d %R')}"
247
247
  end
248
248
  "\#<#{self.class}:#{object_id}#{limit_info}>"
249
249
  end
@@ -11,9 +11,8 @@ module TimeTree
11
11
  attr_accessor :logger
12
12
 
13
13
  def initialize
14
- logger = Logger.new(STDOUT)
15
- logger.level = :warn
16
- @logger = logger
14
+ @logger = Logger.new(STDOUT)
15
+ @logger.level = :warn
17
16
  end
18
17
  end
19
18
  end
@@ -15,10 +15,10 @@ module TimeTree
15
15
  # @param path [String] String or URI to access.
16
16
  # @param params [Hash] Hash of URI query unencoded key/value pairs.
17
17
  def get(path, params = {})
18
- logger.info "GET #{connection.build_url("#{@host}#{path}", params)}"
18
+ @logger.info "GET #{connection.build_url("#{@host}#{path}", params)}"
19
19
  res = connection.get path, params
20
20
  @client.update_ratelimit(res)
21
- logger.debug "Response status:#{res.status}, body:#{res.body}"
21
+ @logger.debug "Response status:#{res.status}, body:#{res.body}"
22
22
  res
23
23
  end
24
24
 
@@ -30,7 +30,7 @@ module TimeTree
30
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
- logger.debug "Response status:#{res.status}, body:#{res.body}"
33
+ @logger.debug "Response status:#{res.status}, body:#{res.body}"
34
34
  res
35
35
  end
36
36
 
@@ -38,11 +38,11 @@ module TimeTree
38
38
  # @param body_params [Hash]
39
39
  # The request bodythat will eventually be converted to JSON.
40
40
  def put(path, body_params = {})
41
- logger.debug "PUT #{@host}#{path} body:#{body_params}"
41
+ @logger.debug "PUT #{@host}#{path} body:#{body_params}"
42
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
- logger.debug "Response status:#{res.status}, body:#{res.body}"
45
+ @logger.debug "Response status:#{res.status}, body:#{res.body}"
46
46
  res
47
47
  end
48
48
 
@@ -52,14 +52,12 @@ module TimeTree
52
52
  @logger.debug "DELETE #{@host}#{path} params:#{params}"
53
53
  res = connection.delete path, params
54
54
  @client.update_ratelimit(res)
55
- logger.debug "Response status:#{res.status}, body:#{res.body}"
55
+ @logger.debug "Response status:#{res.status}, body:#{res.body}"
56
56
  res
57
57
  end
58
58
 
59
59
  private
60
60
 
61
- attr_reader :logger
62
-
63
61
  def connection
64
62
  Faraday.new(
65
63
  url: @host,
@@ -78,10 +78,8 @@ module TimeTree
78
78
  return unless attributes.is_a? Hash
79
79
  return if attributes.empty?
80
80
 
81
- setter_methods = self.class.instance_methods.select { |method| method.to_s.end_with? '=' }
82
81
  attributes.each do |key, value|
83
- setter = "#{key.to_sym}=".to_sym
84
- next unless setter_methods.include? setter
82
+ next unless respond_to?("#{key}=".to_sym)
85
83
 
86
84
  if defined?(self.class::TIME_FIELDS) && self.class::TIME_FIELDS.include?(key)
87
85
  value = Time.parse value
@@ -126,7 +124,7 @@ module TimeTree
126
124
 
127
125
  @_relation_data_dic[type][id]
128
126
  }
129
- @relationships.each do |key, id_data|
127
+ relationships.each do |key, id_data|
130
128
  relation_data = nil
131
129
  if id_data.is_a? Array
132
130
  relation_data = []
@@ -123,8 +123,8 @@ module TimeTree
123
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
129
  label: { data: current_label },
130
130
  attendees: { data: current_attendees }
File without changes
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TimeTree
4
- VERSION = '0.1.4'
4
+ VERSION = '0.2.1'
5
5
  end
@@ -33,9 +33,10 @@ Gem::Specification.new do |spec|
33
33
  spec.add_runtime_dependency 'zeitwerk', '~> 2.3.0'
34
34
 
35
35
  spec.add_development_dependency 'bundler', '~> 2.0'
36
+ spec.add_development_dependency 'codecov', '~> 0.1.17'
36
37
  spec.add_development_dependency 'minitest', '~> 5.14.0'
37
38
  spec.add_development_dependency 'minitest-reporters', '~> 1.4.2'
38
39
  spec.add_development_dependency 'rake', '~> 12.0'
39
- spec.add_development_dependency 'webmock', '~> 3.7.6'
40
40
  spec.add_development_dependency 'simplecov', '~> 0.18.5'
41
+ spec.add_development_dependency 'webmock', '~> 3.7.6'
41
42
  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.1.4
4
+ version: 0.2.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-06-30 00:00:00.000000000 Z
11
+ date: 2020-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: codecov
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.1.17
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.1.17
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: minitest
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -109,33 +123,33 @@ dependencies:
109
123
  - !ruby/object:Gem::Version
110
124
  version: '12.0'
111
125
  - !ruby/object:Gem::Dependency
112
- name: webmock
126
+ name: simplecov
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: 3.7.6
131
+ version: 0.18.5
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: 3.7.6
138
+ version: 0.18.5
125
139
  - !ruby/object:Gem::Dependency
126
- name: simplecov
140
+ name: webmock
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: 0.18.5
145
+ version: 3.7.6
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: 0.18.5
152
+ version: 3.7.6
139
153
  description: Client for accessing TimeTree APIs
140
154
  email:
141
155
  - koshikawa2009@gmail.com
@@ -143,9 +157,10 @@ executables: []
143
157
  extensions: []
144
158
  extra_rdoc_files: []
145
159
  files:
160
+ - ".github/workflows/gem-push.yml"
161
+ - ".github/workflows/test.yml"
146
162
  - ".gitignore"
147
163
  - ".rubocom.yml"
148
- - ".travis.yml"
149
164
  - CHANGELOG.md
150
165
  - CODE_OF_CONDUCT.md
151
166
  - Gemfile
@@ -155,16 +170,16 @@ files:
155
170
  - bin/console
156
171
  - bin/setup
157
172
  - lib/timetree.rb
158
- - lib/timetree/activity.rb
159
173
  - lib/timetree/api_error.rb
160
- - lib/timetree/base_model.rb
161
- - lib/timetree/calendar.rb
162
174
  - lib/timetree/client.rb
163
175
  - lib/timetree/configuration.rb
164
- - lib/timetree/event.rb
165
176
  - lib/timetree/http_command.rb
166
- - lib/timetree/label.rb
167
- - lib/timetree/user.rb
177
+ - lib/timetree/models/activity.rb
178
+ - lib/timetree/models/base_model.rb
179
+ - lib/timetree/models/calendar.rb
180
+ - lib/timetree/models/event.rb
181
+ - lib/timetree/models/label.rb
182
+ - lib/timetree/models/user.rb
168
183
  - lib/timetree/version.rb
169
184
  - timetree.gemspec
170
185
  homepage: https://github.com/koshilife/timetree-api-ruby-client
@@ -174,7 +189,7 @@ metadata:
174
189
  homepage_uri: https://github.com/koshilife/timetree-api-ruby-client
175
190
  source_code_uri: https://github.com/koshilife/timetree-api-ruby-client
176
191
  changelog_uri: https://github.com/koshilife/timetree-api-ruby-client/blob/master/CHANGELOG.md
177
- documentation_uri: https://www.rubydoc.info/gems/timetree/0.1.4
192
+ documentation_uri: https://www.rubydoc.info/gems/timetree/0.2.1
178
193
  post_install_message:
179
194
  rdoc_options: []
180
195
  require_paths:
@@ -190,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
205
  - !ruby/object:Gem::Version
191
206
  version: '0'
192
207
  requirements: []
193
- rubygems_version: 3.1.4
208
+ rubygems_version: 3.0.3
194
209
  signing_key:
195
210
  specification_version: 4
196
211
  summary: Client for accessing TimeTree APIs
@@ -1,6 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.6.3
6
- before_install: gem install bundler -v 2.1.4