tanker-core 2.4.3.alpha.2 → 2.5.1.alpha.1

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: 1196caec52e1948459ccc62fabec7340fc56ac80c1e4a1bb01b9a72a95fb1a54
4
- data.tar.gz: 596c8c7116ee1ad6d49b7840e4d21fed2d460762ca4a81b8eedf3f26b27af2dc
3
+ metadata.gz: 6d58bceba5fc0e94701d291ef528a412a028ba62834b161a7003a1d5fd3f050f
4
+ data.tar.gz: 3bc89e9ff714b83f5cec547f1d01da08b137f28a9ed2b7a93f7296da3833b7ad
5
5
  SHA512:
6
- metadata.gz: 62385b3ee3847afd33d3907602226f7217ac9ca75d3349baec5164222180b4b7ba1828cf96bad11f293bbc78884ccfd128e7eda970c11f3e880da02c178441f5
7
- data.tar.gz: e473886423405bebdf0e8fca488bf17af311b25abd0f38a2e8588103f1953d889877c7e3f5f94a6577696452cde32f133949be8bf3b6ca5019396f142bdb28cb
6
+ metadata.gz: 58ed905a314aaee2bc812224b02b3ea97b0168e405722ba4f204f5e2dcb9e69b5e3ecb59bae645f69153a11b9be31476ea94d8c46de29713b87dc663099db43d
7
+ data.tar.gz: f60275afded30655f59d5cd37c4a59ce5608be593ec22d136824cd32235e621d405ebaf3acc508508285dd5cc3c9912d91bcf92f2e2c45f6ca8696b34689267c
@@ -8,8 +8,11 @@ module Tanker
8
8
  def initialize(options)
9
9
  @revoke_event_handlers = Set.new
10
10
  @ctanker = CTanker.tanker_create(options).get
11
+ @freed = false
11
12
  ctanker_addr = @ctanker.address
12
13
  ObjectSpace.define_finalizer(@ctanker) do |_|
14
+ next if @freed
15
+
13
16
  CTanker.tanker_destroy(FFI::Pointer.new(:void, ctanker_addr)).get
14
17
  end
15
18
 
@@ -19,6 +22,18 @@ module Tanker
19
22
  CTanker.tanker_event_connect(@ctanker, CTanker::CTankerEvent::DEVICE_REVOKED, @device_revoked_handler, nil).get
20
23
  end
21
24
 
25
+ def free
26
+ @freed = true
27
+ CTanker.tanker_destroy(@ctanker).get
28
+ @ctanker = nil
29
+
30
+ public_methods(false).each do |method|
31
+ send(:define_singleton_method, method) do |*_|
32
+ raise "using Tanker::Core##{method} after free"
33
+ end
34
+ end
35
+ end
36
+
22
37
  def self.set_log_handler(&block) # rubocop:disable Naming/AccessorMethodName
23
38
  @log_handler = lambda do |clog|
24
39
  block.call LogRecord.new clog[:category], clog[:level], clog[:file], clog[:line], clog[:message]
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Tanker
4
4
  class Core
5
- VERSION = '2.4.3.alpha.2'
5
+ VERSION = '2.5.1.alpha.1'
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.4.3.alpha.2
4
+ version: 2.5.1.alpha.1
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-07-23 00:00:00.000000000 Z
11
+ date: 2020-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -188,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
188
  - !ruby/object:Gem::Version
189
189
  version: 1.3.1
190
190
  requirements: []
191
- rubygems_version: 3.1.2
191
+ rubygems_version: 3.0.3
192
192
  signing_key:
193
193
  specification_version: 4
194
194
  summary: Ruby SDK for Tanker