chatwork 0.12.3 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5bb38c6cdbe4e1ad3c0b38bc21ac36ce00581a12b1b62db584be89157dc64cd5
4
- data.tar.gz: 3bedf9754acd3114a6d5bf20a3b765e2c65d6085eaf3dec6ae45f3f829e4fbdb
3
+ metadata.gz: 6ebd6f01a2cc37a47a6257aeb737ff651136d8648fdbc789d7b04ead47871b7f
4
+ data.tar.gz: cc0dd6dad262c74a62a60935c0fd2f7eeacbbcc354e8c9537dcac32484b005ed
5
5
  SHA512:
6
- metadata.gz: 026e88dcf281567c670c133da00a5fafe5c4257efa257691042228e3da5f8d65089558123eaa2805479c3cf619968fc83f99dec73abd99a0381c7976d2c29ad3
7
- data.tar.gz: d225e6749f569d69ee535548b5d442c7a7e94063a06b1107470abe1aec3fd868fc1d7229b65bf83eb3925fd16b38abe518e4b0329c6c1fc3d8a6b112f58368f1
6
+ metadata.gz: 4adfba5cbacb2c7d013890d1e023b2b8e3edec7c0a485f3d9e73c0142c34e1f84ecf67cf9238abab519640ecbb932eb2270075829ff7268a316e0f684714f880
7
+ data.tar.gz: eee04c8ba3baf1754b1b497f265dad2be39583a24bda1ba8d6f29ae9b9f85442e2b55570c0c8d9fa45526070621d3c9e423e6ed852937cbc1c7e84240a822631
@@ -26,15 +26,13 @@ jobs:
26
26
 
27
27
  matrix:
28
28
  ruby:
29
- - ruby:2.4
30
- - ruby:2.5
31
29
  - ruby:2.6
32
30
  - ruby:2.7
33
31
  - ruby:3.0
32
+ - ruby:3.1
34
33
  - rubylang/ruby:master-nightly-bionic
35
34
  gemfile:
36
- - faraday_0
37
- - faraday_1
35
+ - faraday_2
38
36
  include:
39
37
  - ruby: rubylang/ruby:master-nightly-bionic
40
38
  allow_failures: "true"
@@ -76,7 +74,6 @@ jobs:
76
74
 
77
75
  - run: bundle exec rubocop
78
76
  continue-on-error: ${{ matrix.allow_failures == 'true' }}
79
- if: matrix.ruby < 'ruby:3.0' # FIXME: remove this after upgrade rubocop
80
77
 
81
78
  finish:
82
79
  needs: test
data/.rubocop.yml CHANGED
@@ -6,6 +6,9 @@ inherit_gem:
6
6
  require: rubocop-rspec
7
7
 
8
8
  AllCops:
9
+ NewCops: enable
10
+ SuggestExtensions: false
11
+ TargetRubyVersion: 2.6
9
12
  Exclude:
10
13
  - 'gemfiles/vendor/**/*'
11
14
 
@@ -15,9 +18,27 @@ AllCops:
15
18
  - 'vendor/**/*'
16
19
  - '.git/**/*'
17
20
 
18
- # module name is `ChatWork`, but I want to use `chatwork` as filename
19
- RSpec/FilePath:
21
+ Layout/HashAlignment:
22
+ EnforcedColonStyle: table
23
+
24
+ Lint/BinaryOperatorWithIdenticalOperands:
20
25
  Enabled: false
21
26
 
22
27
  Metrics/ParameterLists:
23
28
  Max: 6
29
+
30
+ # module name is `ChatWork`, but I want to use `chatwork` as filename
31
+ RSpec/FilePath:
32
+ Enabled: false
33
+
34
+ RSpec/MultipleExpectations:
35
+ Enabled: false
36
+
37
+ RSpec/MultipleMemoizedHelpers:
38
+ Enabled: false
39
+
40
+ RSpec/SharedExamples:
41
+ Enabled: false
42
+
43
+ Style/KeywordParametersOrder:
44
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # Change Log
2
2
  ## Unreleased
3
- [Full Changelog](https://github.com/asonas/chatwork-ruby/compare/v0.12.3...master)
3
+ [Full Changelog](https://github.com/asonas/chatwork-ruby/compare/v1.0.0...master)
4
+
5
+ ## v1.0.0
6
+ [Full Changelog](https://github.com/asonas/chatwork-ruby/compare/v0.12.3...v1.0.0)
7
+
8
+ * :bomb: **[BREAKING CHANGE]** Support faraday v2+ and drop support ruby < 2.6
9
+ * https://github.com/asonas/chatwork-ruby/pull/78
4
10
 
5
11
  ## v0.12.3
6
12
  [Full Changelog](https://github.com/asonas/chatwork-ruby/compare/v0.12.2...v0.12.3)
data/Gemfile CHANGED
@@ -3,4 +3,4 @@ source "https://rubygems.org"
3
3
  # Specify your gem's dependencies in chatwork.gemspec
4
4
  gemspec
5
5
 
6
- eval_gemfile "#{__dir__}/gemfiles/common.gemfile"
6
+ # eval_gemfile "#{__dir__}/gemfiles/common.gemfile"
data/bin/console CHANGED
@@ -7,7 +7,7 @@ require "faraday_curl"
7
7
 
8
8
  Dotenv.load
9
9
 
10
- logger = Logger.new(STDOUT)
10
+ logger = Logger.new($stdout)
11
11
 
12
12
  @client = ChatWork::Client.new(api_key: ENV["CHATWORK_API_TOKEN"])
13
13
  connection = @client.instance_variable_get(:@conn)
data/chatwork.gemspec CHANGED
@@ -22,21 +22,24 @@ Gem::Specification.new do |spec|
22
22
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
23
23
  spec.require_paths = ["lib"]
24
24
 
25
- spec.add_dependency "faraday", ">= 0.9"
26
- spec.add_dependency "faraday_middleware"
27
- spec.add_dependency "hashie"
25
+ spec.required_ruby_version = ">= 2.6.0"
26
+
27
+ spec.add_dependency "faraday", ">= 2.0.0"
28
+ spec.add_dependency "faraday-mashify"
29
+ spec.add_dependency "faraday-multipart"
28
30
 
29
31
  spec.add_development_dependency "activesupport"
30
32
  spec.add_development_dependency "bundler", ">= 1.3"
31
33
  spec.add_development_dependency "dotenv"
32
34
  spec.add_development_dependency "faraday_curl"
33
- spec.add_development_dependency "onkcop", "0.53.0.0"
35
+ spec.add_development_dependency "onkcop", "1.0.0.0"
34
36
  spec.add_development_dependency "rake"
35
37
  spec.add_development_dependency "rspec"
36
38
  spec.add_development_dependency "rspec-its"
37
39
  spec.add_development_dependency "rspec-parameterized"
38
- spec.add_development_dependency "rubocop", "0.53.0"
39
- spec.add_development_dependency "rubocop-rspec", "1.24.0"
40
+ spec.add_development_dependency "rubocop", "1.24.1"
41
+ spec.add_development_dependency "rubocop_auto_corrector"
42
+ spec.add_development_dependency "rubocop-rspec", "2.7.0"
40
43
  spec.add_development_dependency "simplecov"
41
44
  spec.add_development_dependency "simplecov-lcov"
42
45
  spec.add_development_dependency "webmock"
@@ -3,6 +3,6 @@ source "https://rubygems.org"
3
3
  # Specify your gem's dependencies in chatwork.gemspec
4
4
  gemspec path: "../"
5
5
 
6
- eval_gemfile "#{__dir__}/common.gemfile"
6
+ # eval_gemfile "#{__dir__}/common.gemfile"
7
7
 
8
- gem "faraday", "~> 0.9"
8
+ gem "faraday", "~> 2.0"
@@ -1,6 +1,3 @@
1
- require "faraday"
2
- require "faraday_middleware"
3
-
4
1
  module ChatWork
5
2
  class BaseClient
6
3
  include Converter
@@ -44,7 +41,7 @@ module ChatWork
44
41
  end
45
42
 
46
43
  begin
47
- response = @conn.__send__(method, @api_version + url, hash_compact(args))
44
+ response = @conn.__send__(method, @api_version + url, args.compact)
48
45
  rescue *faraday_errors => e
49
46
  raise ChatWork::APIConnectionError.faraday_error(e)
50
47
  end
@@ -21,8 +21,7 @@ module ChatWork
21
21
  APIConnectionError.new("Invalid response #{body.to_hash} (status: #{status})")
22
22
  end
23
23
 
24
- attr_reader :status
25
- attr_reader :error_response
24
+ attr_reader :status, :error_response
26
25
 
27
26
  def initialize(message, status = nil, error_response = nil)
28
27
  @status = status
@@ -69,10 +68,10 @@ module ChatWork
69
68
  end
70
69
 
71
70
  def self.from_www_authenticate(www_authenticate:, status:, error_response:)
72
- www_authenticate =~ /error="([^\"]+)"/
71
+ www_authenticate =~ /error="([^"]+)"/
73
72
  error = Regexp.last_match(1)
74
73
 
75
- www_authenticate =~ /error_description="([^\"]+)"/
74
+ www_authenticate =~ /error_description="([^"]+)"/
76
75
  error_description = Regexp.last_match(1)
77
76
 
78
77
  AuthenticateError.new(
@@ -65,8 +65,8 @@ module ChatWork::Client::TaskMethods
65
65
  # }
66
66
  def create_task(room_id:, body:, to_ids:, limit: nil, limit_type: nil, &block)
67
67
  params = {
68
- body: body,
69
- to_ids: Array(to_ids).join(","),
68
+ body: body,
69
+ to_ids: Array(to_ids).join(","),
70
70
  limit_type: limit_type,
71
71
  }
72
72
  params[:limit] = limit.to_i if limit
@@ -1,9 +1,5 @@
1
1
  module ChatWork
2
2
  module Converter
3
- def hash_compact(hash)
4
- hash.reject {|_k, v| v.nil? }
5
- end
6
-
7
3
  def boolean_to_integer(value)
8
4
  case value
9
5
  when true
@@ -1,5 +1,5 @@
1
1
  module ChatWork
2
- class Multipart < ::Faraday::Request::Multipart
2
+ class Multipart < ::Faraday::Multipart::Middleware
3
3
  self.mime_type = "multipart/form-data".freeze
4
4
 
5
5
  def create_multipart(env, params)
@@ -17,7 +17,7 @@ module ChatWork
17
17
  end
18
18
 
19
19
  class EpiloguePart < ::Faraday::Parts::EpiloguePart
20
- def initialize(boundary)
20
+ def initialize(boundary) # rubocop:disable Lint/MissingSuper
21
21
  # NOTE: ChatWork doesn't accepts ending "\r\n\r\n" of payload...
22
22
  # @part = "--#{boundary}--\r\n\r\n"
23
23
  @part = "--#{boundary}--\r\n"
@@ -1,3 +1,3 @@
1
1
  module ChatWork
2
- VERSION = "0.12.3".freeze
2
+ VERSION = "1.0.0".freeze
3
3
  end
data/lib/chatwork.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require "chatwork/version"
2
2
  require "hashie"
3
3
  require "faraday"
4
+ require "faraday/mashify"
5
+ require "faraday/multipart"
4
6
 
5
7
  module ChatWork
6
8
  autoload :BaseClient, "chatwork/base_client"
@@ -34,7 +36,7 @@ module ChatWork
34
36
  @client_secret = nil
35
37
 
36
38
  Faraday::Request.register_middleware(
37
- chatwork_multipart: -> { ChatWork::Multipart },
39
+ chatwork_multipart: ChatWork::Multipart,
38
40
  )
39
41
 
40
42
  class << self
@@ -13,7 +13,7 @@ describe ChatWork::OAuthClient::TokenMethods do
13
13
  context "when successful" do
14
14
  before do
15
15
  stub_request(:post, "https://oauth.chatwork.com/token").
16
- with(body: { "grant_type" => "refresh_token", "refresh_token" => refresh_token },
16
+ with(body: { "grant_type" => "refresh_token", "refresh_token" => refresh_token },
17
17
  headers: { "Authorization" => "Basic #{signature}", "Content-Type" => "application/x-www-form-urlencoded" }).
18
18
  to_return(status: 200, body: token.to_json, headers: { "Content-Type" => "application/json" })
19
19
  end
@@ -38,7 +38,7 @@ describe ChatWork::OAuthClient::TokenMethods do
38
38
  context "when failure" do
39
39
  before do
40
40
  stub_request(:post, "https://oauth.chatwork.com/token").
41
- with(body: { "grant_type" => "refresh_token", "refresh_token" => refresh_token },
41
+ with(body: { "grant_type" => "refresh_token", "refresh_token" => refresh_token },
42
42
  headers: { "Authorization" => "Basic #{signature}", "Content-Type" => "application/x-www-form-urlencoded" }).
43
43
  to_return(status: 401, body: body.to_json, headers: { "Content-Type" => "application/json" })
44
44
  end
@@ -14,6 +14,7 @@ describe ChatWork do
14
14
 
15
15
  it { should eq("https://api.chatwork.com/") }
16
16
  end
17
+
17
18
  describe "#api_base=" do
18
19
  before { ChatWork.api_base = "https://test.example.com/" }
19
20
 
@@ -22,12 +23,6 @@ describe ChatWork do
22
23
 
23
24
  it { should eq("https://test.example.com/") }
24
25
  end
25
-
26
- describe "#api_base" do
27
- subject { super().api_base }
28
-
29
- it { should eq("https://test.example.com/") }
30
- end
31
26
  end
32
27
 
33
28
  describe "#api_key" do
@@ -42,6 +37,7 @@ describe ChatWork do
42
37
 
43
38
  let(:test_token) { "chatwork_test_token" }
44
39
  before { ENV["CHATWORK_API_TOKEN"] = test_token }
40
+
45
41
  it { is_expected.to eq test_token }
46
42
  end
47
43
  end
@@ -58,6 +54,7 @@ describe ChatWork do
58
54
 
59
55
  let(:test_token) { "chatwork_test_token" }
60
56
  before { ENV["CHATWORK_ACCESS_TOKEN"] = test_token }
57
+
61
58
  it { is_expected.to eq test_token }
62
59
  end
63
60
  end
data/spec/spec_helper.rb CHANGED
@@ -26,10 +26,10 @@ require "active_support/all"
26
26
 
27
27
  begin
28
28
  require "backport_dig"
29
- rescue LoadError # rubocop:disable Lint/HandleExceptions
29
+ rescue LoadError # rubocop:disable Lint/SuppressedException
30
30
  end
31
31
 
32
- Dir["#{__dir__}/support/**/*.rb"].each {|f| require f }
32
+ Dir["#{__dir__}/support/**/*.rb"].sort.each {|f| require f }
33
33
 
34
34
  def spec_dir
35
35
  Pathname(__dir__)
@@ -4,10 +4,10 @@ RSpec.shared_context :api_context, type: :api do
4
4
 
5
5
  let(:response_headers) do
6
6
  {
7
- "Content-Type" => "application/json",
8
- "X-RateLimit-Limit" => ratelimit_limit,
7
+ "Content-Type" => "application/json",
8
+ "X-RateLimit-Limit" => ratelimit_limit,
9
9
  "X-RateLimit-Remaining" => ratelimit_remaining,
10
- "X-RateLimit-Reset" => ratelimit_reset,
10
+ "X-RateLimit-Reset" => ratelimit_reset,
11
11
  }
12
12
  end
13
13
 
@@ -30,7 +30,7 @@ RSpec.shared_context :api_context, type: :api do
30
30
  unless query_example.empty?
31
31
  case expected_verb
32
32
  when :get, :delete
33
- query_string = "?" + query_example.to_query
33
+ query_string = "?#{query_example.to_query}"
34
34
  when :post, :put
35
35
  request_options[:headers]["Content-Type"] = "application/x-www-form-urlencoded"
36
36
  request_options[:body] = query_example.transform_values(&:to_s)
@@ -33,7 +33,7 @@ module RamlParser
33
33
  nil
34
34
  end
35
35
 
36
- def self.find_query_parameter_example(verb, path)
36
+ def self.find_query_parameter_example(verb, path) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
37
37
  resource = find_resource(verb, path)
38
38
  return {} unless resource
39
39
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chatwork
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - asonas
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-11-19 00:00:00.000000000 Z
12
+ date: 2022-01-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -17,16 +17,16 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '0.9'
20
+ version: 2.0.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '0.9'
27
+ version: 2.0.0
28
28
  - !ruby/object:Gem::Dependency
29
- name: faraday_middleware
29
+ name: faraday-mashify
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ">="
@@ -40,7 +40,7 @@ dependencies:
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
42
  - !ruby/object:Gem::Dependency
43
- name: hashie
43
+ name: faraday-multipart
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - ">="
@@ -115,14 +115,14 @@ dependencies:
115
115
  requirements:
116
116
  - - '='
117
117
  - !ruby/object:Gem::Version
118
- version: 0.53.0.0
118
+ version: 1.0.0.0
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - '='
124
124
  - !ruby/object:Gem::Version
125
- version: 0.53.0.0
125
+ version: 1.0.0.0
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: rake
128
128
  requirement: !ruby/object:Gem::Requirement
@@ -185,28 +185,42 @@ dependencies:
185
185
  requirements:
186
186
  - - '='
187
187
  - !ruby/object:Gem::Version
188
- version: 0.53.0
188
+ version: 1.24.1
189
189
  type: :development
190
190
  prerelease: false
191
191
  version_requirements: !ruby/object:Gem::Requirement
192
192
  requirements:
193
193
  - - '='
194
194
  - !ruby/object:Gem::Version
195
- version: 0.53.0
195
+ version: 1.24.1
196
+ - !ruby/object:Gem::Dependency
197
+ name: rubocop_auto_corrector
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
196
210
  - !ruby/object:Gem::Dependency
197
211
  name: rubocop-rspec
198
212
  requirement: !ruby/object:Gem::Requirement
199
213
  requirements:
200
214
  - - '='
201
215
  - !ruby/object:Gem::Version
202
- version: 1.24.0
216
+ version: 2.7.0
203
217
  type: :development
204
218
  prerelease: false
205
219
  version_requirements: !ruby/object:Gem::Requirement
206
220
  requirements:
207
221
  - - '='
208
222
  - !ruby/object:Gem::Version
209
- version: 1.24.0
223
+ version: 2.7.0
210
224
  - !ruby/object:Gem::Dependency
211
225
  name: simplecov
212
226
  requirement: !ruby/object:Gem::Requirement
@@ -285,9 +299,7 @@ files:
285
299
  - Rakefile
286
300
  - bin/console
287
301
  - chatwork.gemspec
288
- - gemfiles/common.gemfile
289
- - gemfiles/faraday_0.gemfile
290
- - gemfiles/faraday_1.gemfile
302
+ - gemfiles/faraday_2.gemfile
291
303
  - lib/chatwork.rb
292
304
  - lib/chatwork/base_client.rb
293
305
  - lib/chatwork/chatwork_error.rb
@@ -371,14 +383,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
371
383
  requirements:
372
384
  - - ">="
373
385
  - !ruby/object:Gem::Version
374
- version: '0'
386
+ version: 2.6.0
375
387
  required_rubygems_version: !ruby/object:Gem::Requirement
376
388
  requirements:
377
389
  - - ">="
378
390
  - !ruby/object:Gem::Version
379
391
  version: '0'
380
392
  requirements: []
381
- rubygems_version: 3.2.22
393
+ rubygems_version: 3.3.3
382
394
  signing_key:
383
395
  specification_version: 4
384
396
  summary: Ruby bindings of ChatWork API
@@ -1,18 +0,0 @@
1
- if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("2.3.0")
2
- group :test do
3
- gem "backport_dig", group: :development
4
- end
5
- end
6
-
7
- if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("2.2.2")
8
- group :test do
9
- gem "activesupport", "< 5.0.0", group: :development
10
- end
11
- end
12
-
13
- if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("2.5.0")
14
- group :test do
15
- # NOTE: unparser v0.3.0+ requires Ruby 2.5+
16
- gem "unparser", "< 0.3.0"
17
- end
18
- end
@@ -1,8 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- # Specify your gem's dependencies in chatwork.gemspec
4
- gemspec path: "../"
5
-
6
- eval_gemfile "#{__dir__}/common.gemfile"
7
-
8
- gem "faraday", "~> 1.0"