tanker-core 2.6.0 → 2.6.2.beta.2

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: 0bf5e1708a4c1a3b4b8eb50c8b32870f202775290350d9884dcf808185696efd
4
- data.tar.gz: e2bd2781071152545de3dfc8b1785101e158be15589a4050457bd7e8a9e5414d
3
+ metadata.gz: 69f962904a2700e1eff1d3f7d44a5a7f29be26c0048a89ffffc3ad5e5a856f82
4
+ data.tar.gz: 040e523c8912592aadec416c027cb925d0c6e2936e0d1364c6e6cd75cae9164c
5
5
  SHA512:
6
- metadata.gz: b6521fe710eb1b2dd038a2e75ff7cdfd58eb60f0cce79759dc76b5c36e125e2e31eec9adf9552c66c8b85ae3e1ca481193b0a13d014af7a9a1062554a6213916
7
- data.tar.gz: ae73de47a49159eb9a282081ad0d6b42c8b386810df8e75849cc7266dea26f0ff6aa6eea2da8a403df1f57c791c5eea3232030c99778a6604c5a4f0dbbd09f41
6
+ metadata.gz: e515de3523845ec392141a9ed06baf9c936a863cb0d905384398232c705cf182377c97cf12efedebf83055b09df8ea6d8d02dabe6620b251489790cc22a54520
7
+ data.tar.gz: a60601421d1c3402ebf73d4e35cdc6127c367769523697b7495635ae0a56d2d84c8acba65e5e126f4de4164f2fddb0eede58a88acc45646b7fdcaa28baeb2f10
@@ -3,9 +3,34 @@
3
3
  module Tanker
4
4
  # Main entry point for the Tanker SDK. Can open a Tanker session.
5
5
  class Core
6
- CTanker.tanker_init
6
+ @log_handler_lock = Mutex.new
7
+ @log_handler_set = 0
8
+
9
+ def self.test_and_set_log_handler
10
+ @log_handler_lock.synchronize do
11
+ is_set = @log_handler_set
12
+ @log_handler_set = 1
13
+ return is_set
14
+ end
15
+ end
16
+
17
+ def self.set_log_handler(&block) # rubocop:disable Naming/AccessorMethodName
18
+ @log_handler_set = 1
19
+ @log_handler = lambda do |clog|
20
+ block.call LogRecord.new clog[:category], clog[:level], clog[:file], clog[:line], clog[:message]
21
+ end
22
+ CTanker.tanker_set_log_handler @log_handler
23
+ end
7
24
 
8
25
  def initialize(options)
26
+ # tanker_init is not called globally to avoid potential logs at global scope
27
+ # some frameworks like to pre-execute statements at global scope and then fork, this fork can
28
+ # interact badly with the threads used in the log handler, so never call Tanker at global scope
29
+ CTanker.tanker_init
30
+
31
+ # Do not spam the console of our users.
32
+ self.class.set_log_handler { |_| } unless self.class.test_and_set_log_handler == 1
33
+
9
34
  @revoke_event_handlers = Set.new
10
35
  @ctanker = CTanker.tanker_create(options).get
11
36
  @freed = false
@@ -34,16 +59,6 @@ module Tanker
34
59
  end
35
60
  end
36
61
 
37
- def self.set_log_handler(&block) # rubocop:disable Naming/AccessorMethodName
38
- @log_handler = lambda do |clog|
39
- block.call LogRecord.new clog[:category], clog[:level], clog[:file], clog[:line], clog[:message]
40
- end
41
- CTanker.tanker_set_log_handler @log_handler
42
- end
43
-
44
- # Do not spam the console of our users
45
- set_log_handler { |_| }
46
-
47
62
  def connect_device_revoked_handler(&block)
48
63
  @revoke_event_handlers.add block
49
64
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Tanker
4
4
  class Core
5
- VERSION = '2.6.0'
5
+ VERSION = '2.6.2.beta.2'
6
6
 
7
7
  def self.native_version
8
8
  CTanker.tanker_version_string
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tanker-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.6.2.beta.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanker team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-11 00:00:00.000000000 Z
11
+ date: 2020-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -184,9 +184,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
184
184
  version: 2.6.0
185
185
  required_rubygems_version: !ruby/object:Gem::Requirement
186
186
  requirements:
187
- - - ">="
187
+ - - ">"
188
188
  - !ruby/object:Gem::Version
189
- version: '0'
189
+ version: 1.3.1
190
190
  requirements: []
191
191
  rubygems_version: 3.0.3
192
192
  signing_key: