ncore 2.2.1 → 2.3.2

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: 07c75405575122b5d5f7fa72b1c18529154fd5bec8ac5d7498018524ddee61cd
4
- data.tar.gz: a1dc08e6302d6476572ee2aad22ab00cb08659539693a2447b2e45bc4755f67a
3
+ metadata.gz: 7794c341283c6e1ff3f7014e9f706d882c168b4eca9b8573caae51d88ce6fcf3
4
+ data.tar.gz: d12dcc65c24b2774ec2f23d769b1f1b0e6caecf477f88d059f671b4ef4f4c8bc
5
5
  SHA512:
6
- metadata.gz: 6f77bd18f1c6d8fe05d5d396d1af31c002a0348d3813383e95e745fb5f78db58553b297319330047a2b14fd668b588e929dbd37875cdc88a4a5c3c9b6431b7c8
7
- data.tar.gz: b82e397145c197f5b8655f63d24f7912ee3b41099d00342dcbdd3368e86106eeb72ebdf9c69b26c4a0aede02c15f34b4c82c1a65ffefff4e8617147ac234aedf
6
+ metadata.gz: 179fafbde6fd33667de8935e14594b950d8183e597d7612eead1cc6582407070f22529aa66c1df47fd8dd2427ec6a229021dcb739f9bd111a24038875b6aa935
7
+ data.tar.gz: d8d1c0f29e207a057eaa6ff93bdd3b532c6888ed5c19c7057f8fb3c27ee0548f6e411cea0d1dfa728456a0aa562ffadc278466443dc5ab05da2d76bb2ea0147a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ #### 2.3.2
2
+
3
+ - Allow ActiveSupport 7.0
4
+
5
+ #### 2.3.1
6
+
7
+ - Allow ActiveSupport 6.1
8
+
9
+ #### 2.3.0
10
+
11
+ - Use system's CA certificate store by default (backport from v3.2.0)
12
+ To use bundled CAs instead:
13
+ SomeAppName::Api.ssl_cert_bundle = :bundled
14
+ On failure reading specified bundle, raises exception instead of warning
15
+
16
+ #### 2.2.2
17
+
18
+ - Update certs
19
+
1
20
  #### 2.2.1
2
21
 
3
22
  - Fix decimal attributes on Ruby <= 2.5.x
data/lib/ncore/client.rb CHANGED
@@ -200,7 +200,7 @@ module NCore
200
200
  rescue Excon::Errors::SocketError => e
201
201
  case e.message
202
202
  when /Unable to verify certificate/
203
- raise parent::ConnectionError, "Unable to verify certificate for #{host_for_error rest_opts[:url]} : verify URL or disable SSL certificate verification (insecure)."
203
+ raise parent::ConnectionError, "Unable to verify certificate for #{host_for_error rest_opts[:url]} : verify URL, set ssl_cert_bundle=, or disable SSL certificate verification (insecure)."
204
204
  when /Name or service not known/, /No address associated with hostname/
205
205
  raise parent::ConnectionError, "DNS error for #{host_for_error rest_opts[:url]} : check network and DNS or visit #{status_page}."
206
206
  when /Errno::ECONNREFUSED/
@@ -295,17 +295,16 @@ module NCore
295
295
 
296
296
  def verify_ssl_cert?
297
297
  return @verify_ssl_cert unless @verify_ssl_cert.nil?
298
- bundle_readable = File.readable?(ssl_cert_bundle)
299
- if verify_ssl && bundle_readable
298
+ if verify_ssl
299
+ if ssl_cert_bundle
300
+ bundle_readable = File.readable?(ssl_cert_bundle) rescue false
301
+ unless bundle_readable
302
+ raise parent::CertificateError, "Unable to read SSL cert bundle #{ssl_cert_bundle}."
303
+ end
304
+ end
300
305
  @verify_ssl_cert = true
301
306
  else
302
- m = 'WARNNG: SSL cert verification is disabled.'
303
- unless verify_ssl
304
- m += " Enable verification with: #{parent}::Api.verify_ssl = true."
305
- end
306
- unless bundle_readable
307
- m += " Unable to read CA bundle #{ssl_cert_bundle}."
308
- end
307
+ m = "WARNNG: SSL cert verification is disabled. Enable verification with: #{parent}::Api.verify_ssl = true."
309
308
  $stderr.puts m
310
309
  @verify_ssl_cert = false
311
310
  end
@@ -45,13 +45,34 @@ module NCore
45
45
  mattr_accessor :verify_ssl
46
46
  self.verify_ssl = true
47
47
 
48
- mattr_accessor :ssl_cert_bundle
49
- self.ssl_cert_bundle = File.dirname(__FILE__)+'/ssl/ca-certificates.crt'
48
+ mattr_reader :ssl_cert_bundle
49
+ class_eval <<-MTH
50
+ def self.ssl_cert_bundle=(v)
51
+ v = find_excon_bundle if v==:bundled
52
+ @@ssl_cert_bundle = v
53
+ end
54
+ def ssl_cert_bundle=(v)
55
+ v = find_excon_bundle if v==:bundled
56
+ @@ssl_cert_bundle = v
57
+ end
58
+ MTH
50
59
 
51
60
  mattr_accessor :logger
52
61
  self.logger = Logger.new(STDOUT)
53
62
  end
54
63
 
64
+
65
+ private
66
+
67
+ def find_excon_bundle
68
+ b = Gem.find_files_from_load_path('../data/cacert.pem').select{|p| p=~/excon/}.first
69
+ if b
70
+ b.freeze
71
+ else
72
+ raise parent::CertificateError, 'Failed to locate CA cert bundle from excon. Specify a full path instead.'
73
+ end
74
+ end
75
+
55
76
  end
56
77
 
57
78
  end
@@ -9,6 +9,7 @@ module NCore
9
9
  class AccessDenied < Error ; end
10
10
  class AccountInactive < Error ; end
11
11
  class AuthenticationFailed < Error ; end
12
+ class CertificateError < Error ; end
12
13
  class ConnectionError < Error ; end
13
14
  class RateLimited < Error ; end
14
15
  class RecordNotFound < Error ; end
data/lib/ncore/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module NCore
2
- VERSION = '2.2.1'
2
+ VERSION = '2.3.2'
3
3
  end
data/ncore.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency 'activesupport', '>= 3.2', '< 6.1'
21
+ spec.add_dependency 'activesupport', '>= 3.2', '< 7.1'
22
22
  spec.add_dependency 'excon', '~> 0.32'
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.3"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ncore
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Notioneer Team
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-11 00:00:00.000000000 Z
11
+ date: 2021-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.1'
22
+ version: '7.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.1'
32
+ version: '7.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: excon
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -117,7 +117,6 @@ files:
117
117
  - lib/ncore/rails/log_subscriber.rb
118
118
  - lib/ncore/rails/module_fix.rb
119
119
  - lib/ncore/singleton_base.rb
120
- - lib/ncore/ssl/ca-certificates.crt
121
120
  - lib/ncore/util.rb
122
121
  - lib/ncore/version.rb
123
122
  - ncore.gemspec
@@ -125,7 +124,7 @@ homepage: https://notioneer.com/
125
124
  licenses:
126
125
  - MIT
127
126
  metadata: {}
128
- post_install_message:
127
+ post_install_message:
129
128
  rdoc_options: []
130
129
  require_paths:
131
130
  - lib
@@ -140,8 +139,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
139
  - !ruby/object:Gem::Version
141
140
  version: '0'
142
141
  requirements: []
143
- rubygems_version: 3.0.3
144
- signing_key:
142
+ rubygems_version: 3.2.15
143
+ signing_key:
145
144
  specification_version: 4
146
145
  summary: NCore - Gem for building REST API clients
147
146
  test_files: []