silkey-sdk 0.0.3 → 0.0.4

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: e8f37e3a731e1250525daa64cbba2676f05ca174068385681db03a87f9431b93
4
- data.tar.gz: 8b5c2cab19cc338acf549f3d560873752b330682c6c5baee34f694ae31e70410
3
+ metadata.gz: 34f7f3262bb3dc4802e1c98c85bd6fa14106684137d51c08b6af0aa1b52c336f
4
+ data.tar.gz: f278210ebd52cd945a61eda5659f4f21b02796ed23f4ac6797493963fe9e8e48
5
5
  SHA512:
6
- metadata.gz: 6e5d6c28c863609c85e0dc5cdf990a2ad833678d1e0eea24d735185b2d7d7385ffb4d8f3aa481325c0427a127b7b55468264071fae85c9541917bd02b261ca03
7
- data.tar.gz: d141c1b91aeb5fda18ed215af19d06346b47af34ced8369f822a45ca8df7a2f6cbf2c683fef7b8f25afdb6c71adfe5251520a7068ab9213068dfdac51695463a
6
+ metadata.gz: e94b68b8281d193a9dc58e672130b047f1ae41ba3a9e3f13bdcb575eac974bb2bfcd98c2d8275d08295c381cf4307df7c471f39334e8bda7547180983d35c454
7
+ data.tar.gz: f35e71a0cd42a65c431916ff69bc028e20345d506f6219010b5d50fe0e8ab2a123a23bd72cbbb0207bbcfe4cad12f29cd2d50408de9697a2b3ca722c354d62c6
@@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.0.4] - 2020-11-26
8
+ ### Added
9
+ - Logo and badges to README
10
+ - `generate_sso_request_params` throws on empty PK
11
+
12
+ ### Changed
13
+ - join operator for `message_to_sign` is now `&`
14
+ - `message_to_sign` ignores data that are not set
15
+
16
+ ### Fixed
17
+ - ensure testing `throws` is working correctly
18
+ - rubocop offences
19
+
20
+ ## [0.0.3] - 2020-11-25
21
+ ### Added
22
+ - Logo and badges to README
23
+
7
24
  ## [0.0.2] 2020-11-23
8
25
  ### Added
9
26
  - add support for `redirectMethod`
@@ -1,9 +1,5 @@
1
1
  # Silkey-SDK for Ruby
2
2
 
3
- [logo]
4
-
5
- [slogan]
6
-
7
3
  ## Development
8
4
 
9
5
  After checking out the repo, run `bin/setup` to install dependencies.
data/Gemfile CHANGED
@@ -1,13 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
-
5
- # Specify your gem's dependencies in andromeda.gemspec
6
-
7
- #source 'https://hwGZD769AGZu5Wyzp87F@repo.fury.io/silkey/' do
8
- # gem 'ethereum.rb', '~> 2.2.3'
9
- #end
10
-
11
3
  gemspec
12
4
 
13
- gem "rspec"
5
+ gem "rspec"
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- silkey-sdk (0.0.3)
4
+ silkey-sdk (0.0.4)
5
5
  activesupport (~> 6.0)
6
6
  eth (~> 0.4.12)
7
7
  ethereum.rb (~> 2.5)
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
- ![Silkey Logo](https://raw.githubusercontent.com/Silkey-Team/brand/master/silkey-word-black.png)
2
-
3
1
  # Silkey SDK for Ruby
4
2
 
3
+ ![Silkey Logo](https://raw.githubusercontent.com/Silkey-Team/brand/master/silkey-word-black.png)
4
+
5
5
  [![GitHub version](https://badge.fury.io/gh/Silkey-Team%2Fsilkey-sdk.svg)](https://badge.fury.io/gh/Silkey-Team%2Fsilkey-sdk)
6
6
  [![Gem Version](https://badge.fury.io/rb/silkey-sdk.svg)](https://badge.fury.io/rb/silkey-sdk)
7
7
 
@@ -32,14 +32,14 @@ end
32
32
  | signature | yes | string | Domain owner signature
33
33
  | ssoTimestamp | yes | number | Time of signing SSO request
34
34
  | redirectUrl | yes | string | Where to redirect user with token after sign in
35
- | redirectMethod | no | GET/POST | How to redirect user after sign in, default is POST
36
35
  | cancelUrl | yes | string | Where to redirect user on error
36
+ | redirectMethod | no | GET/POST | How to redirect user after sign in, default is POST
37
37
  | refId | no | string | It will be return with user token, you may use it to identify request
38
38
  | scope | no | string | Scope of data to return in a token payload: `id` (default) returns only user address, `email` returns address + email
39
39
 
40
40
 
41
41
  ```rb
42
- params = { :redirectUrl => 'https://your-website', :refId => '12ab' }
42
+ params = { redirectUrl: 'https://your-website', refId: '12ab' }
43
43
  sso_params = Silkey::SDK.generate_sso_request_params(private_key, params)
44
44
  ```
45
45
 
@@ -68,7 +68,6 @@ module Silkey
68
68
  self.silkey_signature_timestamp = timestamp
69
69
  self
70
70
  end
71
-
72
71
  # rubocop:enable Naming/AccessorMethodName
73
72
 
74
73
  ##
@@ -78,20 +77,9 @@ module Silkey
78
77
  self.user_signature_timestamp = Silkey::Utils.current_timestamp
79
78
  end
80
79
 
81
- str1_hex = 'address'.unpack('H*')[0]
82
- adr_hex = Silkey::Utils.remove0x(address).downcase
83
-
84
- str2_hex = [
85
- 'refId', ref_id.to_s,
86
- 'scope', scope,
87
- 'userSignatureTimestamp'
88
- ].map { |str| str.to_s.unpack('H*') }.join('')
89
-
90
- str_hex = "#{str1_hex}#{adr_hex}#{str2_hex}"
91
-
92
- return str_hex if Silkey::Utils.empty?(user_signature_timestamp)
80
+ return pack_payload_to_hex if Silkey::Utils.empty?(user_signature_timestamp)
93
81
 
94
- "#{str_hex}#{Silkey::Utils.int_to_hex(user_signature_timestamp.to_s)}"
82
+ "#{pack_payload_to_hex}#{Silkey::Utils.int_to_hex(user_signature_timestamp.to_s)}"
95
83
  end
96
84
 
97
85
  def message_to_sign_by_silkey
@@ -130,7 +118,7 @@ module Silkey
130
118
  if k == 'scope'
131
119
  set_scope(v)
132
120
  else
133
- self.instance_variable_set("@#{var}", v)
121
+ instance_variable_set("@#{var}", v)
134
122
  end
135
123
  end
136
124
 
@@ -139,6 +127,19 @@ module Silkey
139
127
 
140
128
  private
141
129
 
130
+ def pack_payload_to_hex
131
+ str1_hex = 'address'.unpack('H*')[0]
132
+ adr_hex = Silkey::Utils.remove0x(address).downcase
133
+
134
+ str2_hex = [
135
+ 'refId', ref_id.to_s,
136
+ 'scope', scope,
137
+ 'userSignatureTimestamp'
138
+ ].map { |str| str.to_s.unpack('H*') }.join('')
139
+
140
+ "#{str1_hex}#{adr_hex}#{str2_hex}"
141
+ end
142
+
142
143
  def validate_scope_email
143
144
  raise 'email is empty' if Silkey::Utils.empty?(email)
144
145
 
@@ -26,7 +26,7 @@ module Silkey # :nodoc: all
26
26
  {
27
27
  name: CONTRACT_NAME,
28
28
  address: Configuration.registry_contract_address,
29
- abi: Configuration.registry_contract_abi,
29
+ abi: Configuration.registry_contract_abi
30
30
  }.freeze
31
31
  end
32
32
  end
@@ -12,7 +12,7 @@ module Silkey
12
12
  #
13
13
  # @example:
14
14
  #
15
- # Silkey::SDK.message_to_sign({ :redirectUrl => 'http://silkey.io', :refId => 1 });
15
+ # Silkey::SDK.message_to_sign({ redirectUrl: 'http://silkey.io', refId: 1 });
16
16
  #
17
17
  # returns
18
18
  #
@@ -20,15 +20,12 @@ module Silkey
20
20
  #
21
21
  def message_to_sign(to_sign = {})
22
22
  msg = []
23
+
23
24
  to_sign.keys.sort.each do |k|
24
- if Silkey::Utils.empty?(to_sign[k])
25
- msg.push("#{k}=")
26
- else
27
- msg.push("#{k}=#{to_sign[k]}")
28
- end
25
+ msg.push("#{k}=#{to_sign[k]}") unless to_sign[k].nil?
29
26
  end
30
27
 
31
- msg.join('::')
28
+ msg.join('&')
32
29
  end
33
30
 
34
31
  ##
@@ -36,51 +33,40 @@ module Silkey
36
33
  #
37
34
  # @param private_key [string] secret private key of domain owner
38
35
  #
39
- # @param params [Hash] Hash object with parameters:
36
+ # @param result [Hash] Hash object with parameters:
40
37
  # - redirectUrl*,
41
- # - redirectMethod*,
42
38
  # - cancelUrl*,
39
+ # - redirectMethod,
43
40
  # - refId,
44
41
  # - scope,
45
- # - ssoTimestamp*
42
+ # - ssoTimestamp
46
43
  # marked with * are required by Silkey
47
44
  #
48
45
  # @return [Hash] parameters for SSO as key -> value, they all need to be set in URL
49
46
  #
47
+ # @throws on missing required data
48
+ #
50
49
  # @example
51
50
  #
52
- # data = { :redirectUrl => 'https://your-website', :refId => '12ab' }
51
+ # data = { redirectUrl: 'https://your-website', refId: '12ab' }
53
52
  # Silkey::SDK.generate_sso_request_params(private_key, data)
54
53
  #
55
- def generate_sso_request_params(private_key, params)
56
- raise "params[:redirectUrl] is empty" if Silkey::Utils.empty?(params[:redirectUrl])
54
+ def generate_sso_request_params(private_key, data_to_sign)
55
+ result = data_to_sign.clone
57
56
 
58
- raise "params[:cancelUrl] is empty" if Silkey::Utils.empty?(params[:cancelUrl])
57
+ raise '`private_key` is empty' if Silkey::Utils.empty?(private_key)
59
58
 
60
- keys = %w(redirectUrl redirectMethod cancelUrl ssoTimestamp refId scope)
59
+ assert_required_soo_params(result)
61
60
 
62
- data_to_sign = keys.reduce({}) do |acc, k|
63
- if Silkey::Utils.empty?(params[k.to_sym])
64
- case k
65
- when 'ssoTimestamp'
66
- acc[k.to_sym] = Silkey::Utils.current_timestamp
67
- when 'scope'
68
- acc[k.to_sym] = 'id'
69
- else
70
- # type code here
71
- end
72
- else
73
- acc[k.to_sym] = params[k.to_sym]
74
- end
75
-
76
- acc
61
+ if Silkey::Utils.empty?(result[:ssoTimestamp])
62
+ result[:ssoTimestamp] = Silkey::Utils.current_timestamp
77
63
  end
78
64
 
79
- puts data_to_sign
80
- message = message_to_sign(data_to_sign)
81
- data_to_sign['signature'] = Silkey::Utils.sign_message(private_key, message)
65
+ result[:scope] = 'id' if Silkey::Utils.empty?(result[:scope])
66
+ message = message_to_sign(result)
67
+ result[:signature] = Silkey::Utils.sign_message(private_key, message)
82
68
 
83
- data_to_sign
69
+ result
84
70
  end
85
71
 
86
72
  ##
@@ -113,7 +99,7 @@ module Silkey
113
99
  end
114
100
 
115
101
  nil
116
- rescue
102
+ rescue # rubocop:disable Style/RescueStandardError
117
103
  nil
118
104
  end
119
105
 
@@ -133,23 +119,42 @@ module Silkey
133
119
 
134
120
  private
135
121
 
122
+ def assert_required_soo_params(data)
123
+ raise '`redirectUrl` is empty' if Silkey::Utils.empty?(data[:redirectUrl])
124
+
125
+ raise '`cancelUrl` is empty' if Silkey::Utils.empty?(data[:cancelUrl])
126
+ end
127
+
136
128
  def token_payload(token)
137
129
  # Set password to nil and validation to false otherwise this won't work
138
130
  decoded = JWT.decode token, nil, false
139
131
  decoded[0]
140
132
  end
141
133
 
142
- def user_signature_valid?(payload)
143
- jwt_payload = Silkey::Models::JwtPayload.new.import(payload)
144
- utils = Silkey::Utils
134
+ def can_validate_user_signature?(jwt_payload)
135
+ if Silkey::Utils.empty?(jwt_payload.address)
136
+ logger.warn('Verification failed, missing user address')
137
+ return false
138
+ end
139
+
140
+ if Silkey::Utils.empty?(jwt_payload.user_signature)
141
+ logger.warn('Verification failed, missing user signature')
142
+ return false
143
+ end
145
144
 
146
- if utils.empty?(jwt_payload.address) ||
147
- utils.empty?(jwt_payload.user_signature) ||
148
- utils.empty?(jwt_payload.user_signature_timestamp)
149
- logger.warn('Verification failed, missing user signature/timestamp and/or address')
145
+ if Silkey::Utils.empty?(jwt_payload.user_signature_timestamp)
146
+ logger.warn('Verification failed, missing user signature timestamp ')
150
147
  return false
151
148
  end
152
149
 
150
+ true
151
+ end
152
+
153
+ def user_signature_valid?(payload)
154
+ jwt_payload = Silkey::Models::JwtPayload.new.import(payload)
155
+
156
+ return false unless can_validate_user_signature?(jwt_payload)
157
+
153
158
  signer = Silkey::Utils
154
159
  .verify_message(jwt_payload.message_to_sign_by_user, jwt_payload.user_signature)
155
160
 
@@ -165,24 +170,37 @@ module Silkey
165
170
  false
166
171
  end
167
172
 
168
- def silkey_signature_valid?(payload, silkey_public_key)
169
- jwt_payload = Silkey::Models::JwtPayload.new.import(payload)
170
- utils = Silkey::Utils
173
+ def cant_validate_silky_signature?(jwt_payload)
174
+ empty_email = Silkey::Utils.empty?(jwt_payload.email)
175
+ empty_sig = Silkey::Utils.empty?(jwt_payload.silkey_signature)
171
176
 
172
- if utils.empty?(jwt_payload.email) && utils.empty?(jwt_payload.silkey_signature)
173
- return nil
174
- end
177
+ empty_email && empty_sig
178
+ end
179
+
180
+ def silkey_sig_check_requirements?(jwt_payload)
181
+ empty_email = Silkey::Utils.empty?(jwt_payload.email)
182
+ empty_sig = Silkey::Utils.empty?(jwt_payload.silkey_signature)
175
183
 
176
- if utils.empty?(jwt_payload.email) ^ utils.empty?(jwt_payload.silkey_signature)
184
+ if empty_email ^ empty_sig
177
185
  logger.warn('Verification failed, missing silkey signature or email')
178
186
  return false
179
187
  end
180
188
 
181
- if utils.empty?(jwt_payload.silkey_signature_timestamp)
189
+ if Silkey::Utils.empty?(jwt_payload.silkey_signature_timestamp)
182
190
  logger.warn('Verification failed, missing silkey signature timestamp')
183
191
  return false
184
192
  end
185
193
 
194
+ true
195
+ end
196
+
197
+ def silkey_signature_valid?(payload, silkey_public_key)
198
+ jwt_payload = Silkey::Models::JwtPayload.new.import(payload)
199
+
200
+ return nil if cant_validate_silky_signature?(jwt_payload)
201
+
202
+ return false unless silkey_sig_check_requirements?(jwt_payload)
203
+
186
204
  signer = Silkey::Utils.verify_message(
187
205
  jwt_payload.message_to_sign_by_silkey, jwt_payload.silkey_signature
188
206
  )
@@ -7,7 +7,7 @@ module Silkey # :nodoc: all
7
7
 
8
8
  def logger
9
9
  if @logger.nil?
10
- @logger = Logger.new(STDOUT)
10
+ @logger = Logger.new($stdout)
11
11
  @logger.level = Logger::INFO
12
12
  @logger.datetime_format = '%a %d-%m-%Y %H%M '
13
13
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Silkey
4
- VERSION = '0.0.3'
4
+ VERSION = '0.0.4'
5
5
  end
@@ -16,15 +16,15 @@ Gem::Specification.new do |spec|
16
16
  spec.homepage = 'https://github.com/Silkey-Team/ruby-sdk'
17
17
  spec.licenses = ['MIT']
18
18
 
19
- # spec.files = ["lib/sdk.rb"]
19
+ # spec.files = ['lib/sdk.rb']
20
20
 
21
21
  spec.metadata = {
22
- "bug_tracker_uri" => "https://github.com/Silkey-Team/ruby-sdk/issues",
23
- "changelog_uri" => "https://github.com/Silkey-Team/ruby-sdk/blob/master/CHANGELOG.md",
24
- "documentation_uri" => "https://www.rubydoc.info/gems/silkey-sdk/" + Silkey::VERSION,
25
- "homepage_uri" => "https://silkey.io",
26
- "source_code_uri" => "https://github.com/Silkey-Team/ruby-sdk",
27
- # "wiki_uri" => "https://example.com/user/bestgemever/wiki"
22
+ 'bug_tracker_uri' => 'https://github.com/Silkey-Team/ruby-sdk/issues',
23
+ 'changelog_uri' => 'https://github.com/Silkey-Team/ruby-sdk/blob/master/CHANGELOG.md',
24
+ 'documentation_uri' => "https://www.rubydoc.info/gems/silkey-sdk/#{Silkey::VERSION}",
25
+ 'homepage_uri' => 'https://silkey.io',
26
+ 'source_code_uri' => 'https://github.com/Silkey-Team/ruby-sdk'
27
+ # 'wiki_uri' => 'https://example.com/user/bestgemever/wiki'
28
28
  }
29
29
 
30
30
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
@@ -44,18 +44,18 @@ Gem::Specification.new do |spec|
44
44
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
45
45
  spec.require_paths = ['lib']
46
46
  spec.add_dependency 'activesupport', '~> 6.0'
47
- spec.add_dependency 'jwt', '~> 2.2.2'
48
47
  spec.add_dependency 'eth', '~> 0.4.12'
49
48
  spec.add_dependency 'ethereum.rb', '~> 2.5'
49
+ spec.add_dependency 'jwt', '~> 2.2.2'
50
50
  spec.add_dependency 'virtus', '~> 1.0'
51
51
  spec.add_dependency 'virtus_convert', '~> 0.1'
52
- spec.add_development_dependency 'rdoc', '~> 6.2', '>= 6.2.1'
53
- spec.add_development_dependency 'yard', '~> 0.9.25'
54
52
  spec.add_development_dependency 'bundler', '~> 2.0'
55
53
  spec.add_development_dependency 'factory_bot', '~> 6.1'
56
54
  spec.add_development_dependency 'pry', '~> 0.13'
57
55
  spec.add_development_dependency 'rake', '~> 13.0'
56
+ spec.add_development_dependency 'rdoc', '~> 6.2', '>= 6.2.1'
58
57
  spec.add_development_dependency 'rspec', '~> 3.10'
59
58
  spec.add_development_dependency 'rubocop', '~> 1.3'
60
59
  spec.add_development_dependency 'rubocop-performance', '~> 1.8'
60
+ spec.add_development_dependency 'yard', '~> 0.9.25'
61
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: silkey-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - silkey.io
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-25 00:00:00.000000000 Z
11
+ date: 2020-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -25,47 +25,47 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: jwt
28
+ name: eth
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 2.2.2
33
+ version: 0.4.12
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
- version: 2.2.2
40
+ version: 0.4.12
41
41
  - !ruby/object:Gem::Dependency
42
- name: eth
42
+ name: ethereum.rb
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.4.12
47
+ version: '2.5'
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: 0.4.12
54
+ version: '2.5'
55
55
  - !ruby/object:Gem::Dependency
56
- name: ethereum.rb
56
+ name: jwt
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.5'
61
+ version: 2.2.2
62
62
  type: :runtime
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: '2.5'
68
+ version: 2.2.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: virtus
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -95,137 +95,137 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.1'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rdoc
98
+ name: bundler
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '6.2'
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- version: 6.2.1
103
+ version: '2.0'
107
104
  type: :development
108
105
  prerelease: false
109
106
  version_requirements: !ruby/object:Gem::Requirement
110
107
  requirements:
111
108
  - - "~>"
112
109
  - !ruby/object:Gem::Version
113
- version: '6.2'
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: 6.2.1
110
+ version: '2.0'
117
111
  - !ruby/object:Gem::Dependency
118
- name: yard
112
+ name: factory_bot
119
113
  requirement: !ruby/object:Gem::Requirement
120
114
  requirements:
121
115
  - - "~>"
122
116
  - !ruby/object:Gem::Version
123
- version: 0.9.25
117
+ version: '6.1'
124
118
  type: :development
125
119
  prerelease: false
126
120
  version_requirements: !ruby/object:Gem::Requirement
127
121
  requirements:
128
122
  - - "~>"
129
123
  - !ruby/object:Gem::Version
130
- version: 0.9.25
124
+ version: '6.1'
131
125
  - !ruby/object:Gem::Dependency
132
- name: bundler
126
+ name: pry
133
127
  requirement: !ruby/object:Gem::Requirement
134
128
  requirements:
135
129
  - - "~>"
136
130
  - !ruby/object:Gem::Version
137
- version: '2.0'
131
+ version: '0.13'
138
132
  type: :development
139
133
  prerelease: false
140
134
  version_requirements: !ruby/object:Gem::Requirement
141
135
  requirements:
142
136
  - - "~>"
143
137
  - !ruby/object:Gem::Version
144
- version: '2.0'
138
+ version: '0.13'
145
139
  - !ruby/object:Gem::Dependency
146
- name: factory_bot
140
+ name: rake
147
141
  requirement: !ruby/object:Gem::Requirement
148
142
  requirements:
149
143
  - - "~>"
150
144
  - !ruby/object:Gem::Version
151
- version: '6.1'
145
+ version: '13.0'
152
146
  type: :development
153
147
  prerelease: false
154
148
  version_requirements: !ruby/object:Gem::Requirement
155
149
  requirements:
156
150
  - - "~>"
157
151
  - !ruby/object:Gem::Version
158
- version: '6.1'
152
+ version: '13.0'
159
153
  - !ruby/object:Gem::Dependency
160
- name: pry
154
+ name: rdoc
161
155
  requirement: !ruby/object:Gem::Requirement
162
156
  requirements:
163
157
  - - "~>"
164
158
  - !ruby/object:Gem::Version
165
- version: '0.13'
159
+ version: '6.2'
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 6.2.1
166
163
  type: :development
167
164
  prerelease: false
168
165
  version_requirements: !ruby/object:Gem::Requirement
169
166
  requirements:
170
167
  - - "~>"
171
168
  - !ruby/object:Gem::Version
172
- version: '0.13'
169
+ version: '6.2'
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 6.2.1
173
173
  - !ruby/object:Gem::Dependency
174
- name: rake
174
+ name: rspec
175
175
  requirement: !ruby/object:Gem::Requirement
176
176
  requirements:
177
177
  - - "~>"
178
178
  - !ruby/object:Gem::Version
179
- version: '13.0'
179
+ version: '3.10'
180
180
  type: :development
181
181
  prerelease: false
182
182
  version_requirements: !ruby/object:Gem::Requirement
183
183
  requirements:
184
184
  - - "~>"
185
185
  - !ruby/object:Gem::Version
186
- version: '13.0'
186
+ version: '3.10'
187
187
  - !ruby/object:Gem::Dependency
188
- name: rspec
188
+ name: rubocop
189
189
  requirement: !ruby/object:Gem::Requirement
190
190
  requirements:
191
191
  - - "~>"
192
192
  - !ruby/object:Gem::Version
193
- version: '3.10'
193
+ version: '1.3'
194
194
  type: :development
195
195
  prerelease: false
196
196
  version_requirements: !ruby/object:Gem::Requirement
197
197
  requirements:
198
198
  - - "~>"
199
199
  - !ruby/object:Gem::Version
200
- version: '3.10'
200
+ version: '1.3'
201
201
  - !ruby/object:Gem::Dependency
202
- name: rubocop
202
+ name: rubocop-performance
203
203
  requirement: !ruby/object:Gem::Requirement
204
204
  requirements:
205
205
  - - "~>"
206
206
  - !ruby/object:Gem::Version
207
- version: '1.3'
207
+ version: '1.8'
208
208
  type: :development
209
209
  prerelease: false
210
210
  version_requirements: !ruby/object:Gem::Requirement
211
211
  requirements:
212
212
  - - "~>"
213
213
  - !ruby/object:Gem::Version
214
- version: '1.3'
214
+ version: '1.8'
215
215
  - !ruby/object:Gem::Dependency
216
- name: rubocop-performance
216
+ name: yard
217
217
  requirement: !ruby/object:Gem::Requirement
218
218
  requirements:
219
219
  - - "~>"
220
220
  - !ruby/object:Gem::Version
221
- version: '1.8'
221
+ version: 0.9.25
222
222
  type: :development
223
223
  prerelease: false
224
224
  version_requirements: !ruby/object:Gem::Requirement
225
225
  requirements:
226
226
  - - "~>"
227
227
  - !ruby/object:Gem::Version
228
- version: '1.8'
228
+ version: 0.9.25
229
229
  description: Silkey SDK for Ruby.
230
230
  email:
231
231
  - dariusz@silkey.io
@@ -267,7 +267,7 @@ licenses:
267
267
  metadata:
268
268
  bug_tracker_uri: https://github.com/Silkey-Team/ruby-sdk/issues
269
269
  changelog_uri: https://github.com/Silkey-Team/ruby-sdk/blob/master/CHANGELOG.md
270
- documentation_uri: https://www.rubydoc.info/gems/silkey-sdk/0.0.3
270
+ documentation_uri: https://www.rubydoc.info/gems/silkey-sdk/0.0.4
271
271
  homepage_uri: https://silkey.io
272
272
  source_code_uri: https://github.com/Silkey-Team/ruby-sdk
273
273
  post_install_message: