bitflyer 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 02cf9dce44723e91ea75d8f9c705c8bec8040f40
4
- data.tar.gz: 0c359f712a2692685e6e7a504f0c05c70edbc468
2
+ SHA256:
3
+ metadata.gz: e017b1fb5befa1653ab22b3333a94e9d59e2168ea7f0d5dd58acdcb143dd3eea
4
+ data.tar.gz: d06a630e375806601b5cdc0d1d23f0c5d5574bc847d23e5156092e20f101baab
5
5
  SHA512:
6
- metadata.gz: 88b4f42f92fc5e8431011030f28a7195c382903da764c22cdf0a0baf15a3f0f04eac6646fc552433dd1d591e39b21c97f774fca0ba16b521747b9c4da6dffb5e
7
- data.tar.gz: 59d59e03775bb6a074f22115803c16d40c674262b1ca5e73b77f2b0dbedc4d3c90fcec0bfd671045b0dd5e6488c557d61a618bc340b26ca5a05672c722150716
6
+ metadata.gz: 58f8ca8dfe138dd4d0d6a22883bca134ef94f6abef0474f6e3a30dc9c4ae1a123cdd88a67a32daa6b940e814872535f8140472683ac6b8ccf9dcb98f2f3d573a
7
+ data.tar.gz: 675d662fe2f2667c3d733a82a04af407891132d5afd31fadd43a10c95f32d36a65fde231fb45297e5122aba1341c1e4677e2511faf4d44a664aa39e33f7b8369
@@ -21,6 +21,14 @@ jobs:
21
21
  key: cache-bundler-{{ checksum "Gemfile.lock" }}
22
22
  paths:
23
23
  - vendor/bundle
24
+ rubocop:
25
+ docker:
26
+ - image: circleci/ruby
27
+ steps:
28
+ - checkout
29
+ - *restore_bundle_cache
30
+ - *bundle_install
31
+ - run: bundle exec rubocop
24
32
  rspec:
25
33
  docker:
26
34
  - image: circleci/ruby
@@ -34,4 +42,5 @@ workflows:
34
42
  rspec:
35
43
  jobs:
36
44
  - build
45
+ - rubocop
37
46
  - rspec
@@ -0,0 +1,9 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ AllCops:
4
+ Include:
5
+ - 'lib/**/*.rb'
6
+ Style/Documentation:
7
+ Enabled: false
8
+ Metrics/LineLength:
9
+ Max: 120
@@ -0,0 +1,30 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2019-07-08 01:59:32 +0900 using RuboCop version 0.72.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 3
10
+ Metrics/AbcSize:
11
+ Max: 29
12
+
13
+ # Offense count: 2
14
+ # Configuration parameters: CountComments.
15
+ Metrics/ClassLength:
16
+ Max: 150
17
+
18
+ # Offense count: 1
19
+ Metrics/CyclomaticComplexity:
20
+ Max: 7
21
+
22
+ # Offense count: 2
23
+ # Configuration parameters: CountComments, ExcludedMethods.
24
+ Metrics/MethodLength:
25
+ Max: 20
26
+
27
+ # Offense count: 3
28
+ # Configuration parameters: CountKeywordArgs.
29
+ Metrics/ParameterLists:
30
+ Max: 7
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bitflyer (0.3.0)
4
+ bitflyer (1.0.0)
5
5
  faraday (~> 0.14.0)
6
6
  faraday_middleware (~> 0.12.0)
7
7
  websocket-client-simple (~> 0.3.0)
@@ -9,6 +9,7 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
+ ast (2.4.0)
12
13
  coderay (1.1.2)
13
14
  diff-lcs (1.3)
14
15
  event_emitter (0.2.6)
@@ -16,11 +17,16 @@ GEM
16
17
  multipart-post (>= 1.2, < 3)
17
18
  faraday_middleware (0.12.2)
18
19
  faraday (>= 0.7.4, < 1.0)
20
+ jaro_winkler (1.5.3)
19
21
  method_source (0.9.2)
20
- multipart-post (2.0.0)
22
+ multipart-post (2.1.1)
23
+ parallel (1.17.0)
24
+ parser (2.6.3.0)
25
+ ast (~> 2.4.0)
21
26
  pry (0.12.2)
22
27
  coderay (~> 1.1.0)
23
28
  method_source (~> 0.9.0)
29
+ rainbow (3.0.0)
24
30
  rake (12.3.0)
25
31
  rspec (3.7.0)
26
32
  rspec-core (~> 3.7.0)
@@ -35,6 +41,15 @@ GEM
35
41
  diff-lcs (>= 1.2.0, < 2.0)
36
42
  rspec-support (~> 3.7.0)
37
43
  rspec-support (3.7.1)
44
+ rubocop (0.72.0)
45
+ jaro_winkler (~> 1.5.1)
46
+ parallel (~> 1.10)
47
+ parser (>= 2.6)
48
+ rainbow (>= 2.2.2, < 4.0)
49
+ ruby-progressbar (~> 1.7)
50
+ unicode-display_width (>= 1.4.0, < 1.7)
51
+ ruby-progressbar (1.10.1)
52
+ unicode-display_width (1.6.0)
38
53
  websocket (1.2.8)
39
54
  websocket-client-simple (0.3.0)
40
55
  event_emitter
@@ -49,6 +64,7 @@ DEPENDENCIES
49
64
  pry
50
65
  rake
51
66
  rspec
67
+ rubocop
52
68
 
53
69
  BUNDLED WITH
54
70
  1.17.3
data/README.md CHANGED
@@ -18,6 +18,8 @@ See https://lightning.bitflyer.jp/docs for details.
18
18
 
19
19
  ### HTTP API
20
20
 
21
+ See [public.rb](./lib/bitflyer/http/public.rb) / [private.rb](./lib/bitflyer/http/private.rb) for method definition.
22
+
21
23
  #### Example
22
24
 
23
25
  ```ruby
@@ -33,17 +35,7 @@ p private_client.positions # will print your positions
33
35
  Accessor format is like `{event_name}_{product_code}`.
34
36
  You can set lambda to get realtime events.
35
37
 
36
- #### `event_name`
37
- - board_snapshot
38
- - board
39
- - ticker
40
- - executions
41
-
42
- #### `product_code`
43
- - btc_jpy
44
- - fx_btc_jpy
45
- - eth_btc
46
- - bch_btc
38
+ `{event_name}` and `{product_code}` is defined at [client.rb](./lib/bitflyer/realtime/client.rb).
47
39
 
48
40
  #### Example
49
41
 
@@ -21,7 +21,8 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'faraday_middleware', '~> 0.12.0'
22
22
  spec.add_dependency 'websocket-client-simple', '~> 0.3.0'
23
23
  spec.add_development_dependency 'bundler', '~> 1.12'
24
+ spec.add_development_dependency 'pry'
24
25
  spec.add_development_dependency 'rake'
25
26
  spec.add_development_dependency 'rspec'
26
- spec.add_development_dependency 'pry'
27
+ spec.add_development_dependency 'rubocop'
27
28
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bitflyer/version'
2
4
  require 'bitflyer/http'
3
5
  require 'bitflyer/realtime'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bitflyer'
2
4
  require 'bitflyer/http/public'
3
5
  require 'bitflyer/http/private'
@@ -13,7 +15,7 @@ module Bitflyer
13
15
  def_delegators :@connection, :get, :post
14
16
 
15
17
  def initialize(key, secret)
16
- @connection = Faraday::Connection.new(:url => 'https://api.bitflyer.jp') do |f|
18
+ @connection = Faraday::Connection.new(url: 'https://api.bitflyer.jp') do |f|
17
19
  f.request :json
18
20
  f.response :json
19
21
  f.use Authentication, key, secret
@@ -36,7 +38,7 @@ module Bitflyer
36
38
  method = env[:method].to_s.upcase
37
39
  path = env[:url].path + (env[:url].query ? '?' + env[:url].query : '')
38
40
  body = env[:body] || ''
39
- signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @secret, timestamp + method + path + body)
41
+ signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @secret, timestamp + method + path + body)
40
42
  env[:request_headers]['ACCESS-KEY'] = @key if @key
41
43
  env[:request_headers]['ACCESS-TIMESTAMP'] = timestamp
42
44
  env[:request_headers]['ACCESS-SIGN'] = signature
@@ -44,4 +46,4 @@ module Bitflyer
44
46
  end
45
47
  end
46
48
  end
47
- end
49
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bitflyer
2
4
  module HTTP
3
5
  module Private
@@ -40,10 +42,10 @@ module Bitflyer
40
42
 
41
43
  def withdraw(currency_code: 'JPY', bank_account_id: nil, amount: nil, code: nil)
42
44
  body = {
43
- currency_code: currency_code,
44
- bank_account_id: bank_account_id,
45
- amount: amount,
46
- code: code
45
+ currency_code: currency_code,
46
+ bank_account_id: bank_account_id,
47
+ amount: amount,
48
+ code: code
47
49
  }.delete_if { |_, v| v.nil? }
48
50
  @connection.post('/v1/me/withdraw', body).body
49
51
  end
@@ -52,102 +54,124 @@ module Bitflyer
52
54
  @connection.get('/v1/me/getwithdrawals').body
53
55
  end
54
56
 
55
- def send_child_order(product_code: 'BTC_JPY', child_order_type: nil, side: nil, price: nil, size: nil, minute_to_expire: nil, time_in_force: 'GTC')
57
+ def send_child_order(
58
+ product_code: 'BTC_JPY',
59
+ child_order_type: nil,
60
+ side: nil,
61
+ price: nil,
62
+ size: nil,
63
+ minute_to_expire: nil,
64
+ time_in_force: 'GTC'
65
+ )
56
66
  body = {
57
- product_code: product_code,
58
- child_order_type: child_order_type,
59
- side: side,
60
- price: price,
61
- size: size,
62
- minute_to_expire: minute_to_expire,
63
- time_in_force: time_in_force
67
+ product_code: product_code,
68
+ child_order_type: child_order_type,
69
+ side: side,
70
+ price: price,
71
+ size: size,
72
+ minute_to_expire: minute_to_expire,
73
+ time_in_force: time_in_force
64
74
  }.delete_if { |_, v| v.nil? }
65
75
  @connection.post('/v1/me/sendchildorder', body).body
66
76
  end
67
77
 
68
78
  def cancel_child_order(product_code: 'BTC_JPY', child_order_id: nil, child_order_acceptance_id: nil)
69
79
  body = {
70
- product_code: product_code,
71
- child_order_id: child_order_id,
72
- child_order_acceptance_id: child_order_acceptance_id
80
+ product_code: product_code,
81
+ child_order_id: child_order_id,
82
+ child_order_acceptance_id: child_order_acceptance_id
73
83
  }.delete_if { |_, v| v.nil? }
74
84
  @connection.post('/v1/me/cancelchildorder', body).body
75
85
  end
76
86
 
77
87
  def send_parent_order(order_method: nil, minute_to_expire: nil, time_in_force: 'GTC', parameters: {})
78
88
  body = {
79
- order_method: order_method,
80
- minute_to_expire: minute_to_expire,
81
- time_in_force: time_in_force,
82
- parameters: parameters
89
+ order_method: order_method,
90
+ minute_to_expire: minute_to_expire,
91
+ time_in_force: time_in_force,
92
+ parameters: parameters
83
93
  }.delete_if { |_, v| v.nil? }
84
94
  @connection.post('/v1/me/sendparentorder', body).body
85
95
  end
86
96
 
87
97
  def cancel_parent_order(product_code: 'BTC_JPY', parent_order_id: nil, parent_order_acceptance_id: nil)
88
98
  body = {
89
- product_code: product_code,
90
- parent_order_id: parent_order_id,
91
- parent_order_acceptance_id: parent_order_acceptance_id
99
+ product_code: product_code,
100
+ parent_order_id: parent_order_id,
101
+ parent_order_acceptance_id: parent_order_acceptance_id
92
102
  }.delete_if { |_, v| v.nil? }
93
103
  @connection.post('/v1/me/cancelparentorder', body).body
94
104
  end
95
105
 
96
106
  def cancel_all_child_orders(product_code: 'BTC_JPY')
97
- @connection.post('/v1/me/cancelallchildorders', { product_code: product_code }).body
107
+ @connection.post('/v1/me/cancelallchildorders', product_code: product_code).body
98
108
  end
99
109
 
100
- def child_orders(product_code: 'BTC_JPY', count: nil, before: nil, after: nil, child_order_state: nil, parent_order_id: nil)
110
+ def child_orders(
111
+ product_code: 'BTC_JPY',
112
+ count: nil,
113
+ before: nil,
114
+ after: nil,
115
+ child_order_state: nil,
116
+ parent_order_id: nil
117
+ )
101
118
  query = {
102
- product_code: product_code,
103
- count: count,
104
- before: before,
105
- after: after,
106
- child_order_state: child_order_state,
107
- parent_order_id: parent_order_id
119
+ product_code: product_code,
120
+ count: count,
121
+ before: before,
122
+ after: after,
123
+ child_order_state: child_order_state,
124
+ parent_order_id: parent_order_id
108
125
  }.delete_if { |_, v| v.nil? }
109
126
  @connection.get('/v1/me/getchildorders', query).body
110
127
  end
111
128
 
112
129
  def parent_orders(product_code: 'BTC_JPY', count: nil, before: nil, after: nil, parent_order_state: nil)
113
130
  query = {
114
- product_code: product_code,
115
- count: count,
116
- before: before,
117
- after: after,
118
- parent_order_state: parent_order_state
131
+ product_code: product_code,
132
+ count: count,
133
+ before: before,
134
+ after: after,
135
+ parent_order_state: parent_order_state
119
136
  }.delete_if { |_, v| v.nil? }
120
137
  @connection.get('/v1/me/getparentorders', query).body
121
138
  end
122
139
 
123
140
  def parent_order(parent_order_id: nil, parent_order_acceptance_id: nil)
124
141
  query = {
125
- parent_order_id: parent_order_id,
126
- parent_order_acceptance_id: parent_order_acceptance_id
142
+ parent_order_id: parent_order_id,
143
+ parent_order_acceptance_id: parent_order_acceptance_id
127
144
  }.delete_if { |_, v| v.nil? }
128
145
  @connection.get('/v1/me/getparentorder', query).body
129
146
  end
130
147
 
131
- def executions(product_code: 'BTC_JPY', count: nil, before: nil, after: nil, child_order_id: nil, child_order_acceptance_id: nil)
148
+ def executions(
149
+ product_code: 'BTC_JPY',
150
+ count: nil,
151
+ before: nil,
152
+ after: nil,
153
+ child_order_id: nil,
154
+ child_order_acceptance_id: nil
155
+ )
132
156
  query = {
133
- product_code: product_code,
134
- count: count,
135
- before: before,
136
- after: after,
137
- child_order_id: child_order_id,
138
- child_order_acceptance_id: child_order_acceptance_id,
157
+ product_code: product_code,
158
+ count: count,
159
+ before: before,
160
+ after: after,
161
+ child_order_id: child_order_id,
162
+ child_order_acceptance_id: child_order_acceptance_id
139
163
  }.delete_if { |_, v| v.nil? }
140
164
  @connection.get('/v1/me/getexecutions', query).body
141
165
  end
142
166
 
143
167
  def positions(product_code: 'FX_BTC_JPY')
144
- @connection.get('/v1/me/getpositions', { product_code: product_code }).body
168
+ @connection.get('/v1/me/getpositions', product_code: product_code).body
145
169
  end
146
170
 
147
171
  def trading_commission(product_code: 'BTC_JPY')
148
- @connection.get('v1/me/gettradingcommission', { product_code: product_code }).body
172
+ @connection.get('v1/me/gettradingcommission', product_code: product_code).body
149
173
  end
150
174
  end
151
175
  end
152
176
  end
153
- end
177
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bitflyer
2
4
  module HTTP
3
5
  module Public
@@ -14,22 +16,22 @@ module Bitflyer
14
16
  @connection.get('/v1/markets').body
15
17
  end
16
18
 
17
- def board(product_code = 'BTC_JPY')
18
- @connection.get('/v1/board', { product_code: product_code }).body
19
+ def board(product_code: 'BTC_JPY')
20
+ @connection.get('/v1/board', product_code: product_code).body
19
21
  end
20
22
 
21
- def ticker(product_code = 'BTC_JPY')
22
- @connection.get('/v1/ticker', { product_code: product_code }).body
23
+ def ticker(product_code: 'BTC_JPY')
24
+ @connection.get('/v1/ticker', product_code: product_code).body
23
25
  end
24
26
 
25
- def executions(product_code = 'BTC_JPY')
26
- @connection.get('/v1/executions', { product_code: product_code }).body
27
+ def executions(product_code: 'BTC_JPY')
28
+ @connection.get('/v1/executions', product_code: product_code).body
27
29
  end
28
30
 
29
- def chats(from_date = (Time.now - 5 * 24 * 60 * 60))
30
- @connection.get('/v1/getchats', { from_date: from_date }).body
31
+ def chats(from_date: (Time.now - 5 * 24 * 60 * 60))
32
+ @connection.get('/v1/getchats', from_date: from_date).body
31
33
  end
32
34
  end
33
35
  end
34
36
  end
35
- end
37
+ end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bitflyer'
2
4
  require 'bitflyer/realtime/client'
3
5
 
4
6
  module Bitflyer
5
7
  module Realtime
6
8
  end
7
- end
9
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative './websocket'
2
4
 
3
5
  module Bitflyer
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'websocket-client-simple'
2
4
  require 'json'
3
5
 
@@ -5,7 +7,7 @@ module Bitflyer
5
7
  module Realtime
6
8
  class WebSocketClient
7
9
  attr_accessor :websocket_client, :channel_name, :channel_callbacks, :ping_interval, :ping_timeout,
8
- :last_ping_at, :last_pong_at, :error
10
+ :last_ping_at, :last_pong_at, :error
9
11
 
10
12
  def initialize(host:, debug: false)
11
13
  @host = host
@@ -30,7 +32,7 @@ module Bitflyer
30
32
  Thread.new do
31
33
  loop do
32
34
  sleep 1
33
- if @websocket_client && @websocket_client.open?
35
+ if @websocket_client&.open?
34
36
  send_ping
35
37
  wait_pong
36
38
  end
@@ -41,6 +43,7 @@ module Bitflyer
41
43
  loop do
42
44
  sleep 1
43
45
  next unless @error
46
+
44
47
  reconnect
45
48
  end
46
49
  end
@@ -54,7 +57,7 @@ module Bitflyer
54
57
  return unless Time.now.to_i - @last_ping_at > @ping_interval / 1000
55
58
 
56
59
  debug_log 'Sent ping'
57
- @websocket_client.send "2"
60
+ @websocket_client.send '2'
58
61
  @last_ping_at = Time.now.to_i
59
62
  end
60
63
 
@@ -68,6 +71,7 @@ module Bitflyer
68
71
 
69
72
  def reconnect
70
73
  return unless @error
74
+
71
75
  debug_log 'Reconnecting...'
72
76
 
73
77
  @error = nil
@@ -81,13 +85,15 @@ module Bitflyer
81
85
 
82
86
  def handle_error(error:)
83
87
  debug_log error
84
- return unless error.kind_of? Errno::ECONNRESET
88
+ return unless error.is_a? Errno::ECONNRESET
89
+
85
90
  reconnect
86
91
  end
87
92
 
88
93
  def handle_message(payload:)
89
94
  debug_log payload.data
90
95
  return unless payload.data =~ /^\d+/
96
+
91
97
  code, body = payload.data.scan(/^(\d+)(.*)$/)[0]
92
98
 
93
99
  case code.to_i
@@ -96,15 +102,15 @@ module Bitflyer
96
102
  when 41 then disconnect
97
103
  when 42 then emit_message(json: body)
98
104
  end
99
- rescue => e
105
+ rescue StandardError => e
100
106
  puts e
101
107
  puts e.backtrace.join("\n")
102
108
  end
103
109
 
104
110
  def setup_by_response(json:)
105
111
  body = JSON.parse json
106
- @ping_interval = body["pingInterval"].to_i || 25000
107
- @ping_timeout = body["pingTimeout"].to_i || 60000
112
+ @ping_interval = body['pingInterval'].to_i || 25_000
113
+ @ping_timeout = body['pingTimeout'].to_i || 60_000
108
114
  @last_ping_at = Time.now.to_i
109
115
  @last_pong_at = Time.now.to_i
110
116
  channel_callbacks.each do |channel_name, _|
@@ -125,11 +131,13 @@ module Bitflyer
125
131
  def emit_message(json:)
126
132
  channel_name, *messages = JSON.parse json
127
133
  return unless channel_name
134
+
128
135
  messages.each { |message| @channel_callbacks[channel_name.to_sym]&.call(message) }
129
136
  end
130
137
 
131
138
  def debug_log(message)
132
139
  return unless @debug
140
+
133
141
  p message
134
142
  end
135
143
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bitflyer
2
- VERSION = '0.3.0'
4
+ VERSION = '1.0.0'
3
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitflyer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuji Ueki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-07 00:00:00.000000000 Z
11
+ date: 2019-07-11 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: '1.12'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rake
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -95,7 +109,7 @@ dependencies:
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
- name: pry
112
+ name: rubocop
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - ">="
@@ -116,6 +130,8 @@ extensions: []
116
130
  extra_rdoc_files: []
117
131
  files:
118
132
  - ".circleci/config.yml"
133
+ - ".rubocop.yml"
134
+ - ".rubocop_todo.yml"
119
135
  - CODE_OF_CONDUCT.md
120
136
  - Gemfile
121
137
  - Gemfile.lock
@@ -151,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
167
  version: '0'
152
168
  requirements: []
153
169
  rubyforge_project:
154
- rubygems_version: 2.6.14
170
+ rubygems_version: 2.7.6
155
171
  signing_key:
156
172
  specification_version: 4
157
173
  summary: Bitflyer API wrapper