tanker-core 2.4.3.alpha.2 → 2.5.0.beta.3

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: 1196caec52e1948459ccc62fabec7340fc56ac80c1e4a1bb01b9a72a95fb1a54
4
- data.tar.gz: 596c8c7116ee1ad6d49b7840e4d21fed2d460762ca4a81b8eedf3f26b27af2dc
3
+ metadata.gz: e4e01da60bbbc52c1c527a00344ce7cdac3d1acb7bfd46b679c0beeba60d8469
4
+ data.tar.gz: ed003885d88f8c720a9db493b7a7fc9bd702d59b53aa62d541639d83a3bd13f3
5
5
  SHA512:
6
- metadata.gz: 62385b3ee3847afd33d3907602226f7217ac9ca75d3349baec5164222180b4b7ba1828cf96bad11f293bbc78884ccfd128e7eda970c11f3e880da02c178441f5
7
- data.tar.gz: e473886423405bebdf0e8fca488bf17af311b25abd0f38a2e8588103f1953d889877c7e3f5f94a6577696452cde32f133949be8bf3b6ca5019396f142bdb28cb
6
+ metadata.gz: 805e93e430a5c42e5644018935cc021e0d51fe997e0dac9b70441317a73c9c4999364143a9a80337b37aea4a102186b1c34a03d423e4091c23f93a3d5cb893eb
7
+ data.tar.gz: 3f41642ebc8040864536939558602b9afba6013164400c718378a1d1a5d3a2476bc8ca2d8664d9ae4c91c54ce36c3cb74ea059078dbf9bbc8084a5fc1bd71a0a
@@ -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.0.beta.3'
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.0.beta.3
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-07-28 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