memist 2.0.1 → 2.0.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: 84de3c6c331c88780477146d8b16c76a692590b8f737e5500654170bbf64011d
4
- data.tar.gz: 5628c558f0e0bbef06e3a8d6f26c206c746c99277f09f9ce22d9023adc5c0b07
3
+ metadata.gz: 8598567f17d0d1529feec01f833d363504f0f5d2a6779b02be1981358d5c9bda
4
+ data.tar.gz: 6133b314f773eacc680c23cd9892b7dbfd90c67d4022da4a730154f27a8d949d
5
5
  SHA512:
6
- metadata.gz: 3eb1ea75188ba3c703d9c92ad8b19adbaee32de8085b0dad3823506e22b2370f92757df3c2136cdc8bb06b96d3b317f7d7428c9209c0db5db17b8ec3f7b168d1
7
- data.tar.gz: ccf327df4e81b7bc905383446207f2c2fa09a6e7327081a4ba69b9c2868a7177fea8332fade6b42c138a59ad32236b9c3c4a5d423ab79307bb950d3a1928e02f
6
+ metadata.gz: b3fe4a42e21a828bbc0cf4296c724c417c35a604757b65f88652c295fe70623fe6fbebbdb35b4a8e03cdc5ffa81f137057f69b661487778e9fecd38f9c2423a9
7
+ data.tar.gz: 0ac546190aa46665630906ddfeafa08d3aca45d059097499d1049422c6498eea8a4af8dd38986873dff28367c344c5aaa91e3ad637e67a736c604b74dbddff46
@@ -1,2 +1,2 @@
1
- g�B�O�.Ԥ��Q4��O�������\�tV%�]KY�$]+�tOF���c����9bRO������x��!,ڴ�!�c�``�vP�V�G�I��V
2
- $ �w��OC}ö'G����l/&�O���
1
+ *ܰ�^E0!Y�Ϫ.C �⣣:D��U���b����x�&n�`�A��O�~�i���'�����Ra"��d'la"�$1.5���M���y��-���D
2
+ h
data.tar.gz.sig CHANGED
Binary file
@@ -13,12 +13,16 @@ module Memist
13
13
  end
14
14
 
15
15
  define_method "#{method}_with_memoization" do |arg = nil|
16
- @memoized_values ||= Hash.new { |hash, key| hash[key] = {} }
17
- if @memoized_values.key?(method) && @memoized_values[method].key?(arg)
18
- @memoized_values[method][arg]
16
+ if memoize?
17
+ @memoized_values ||= Hash.new { |hash, key| hash[key] = {} }
18
+ if @memoized_values.key?(method) && @memoized_values[method].key?(arg)
19
+ @memoized_values[method][arg]
20
+ else
21
+ value = send("#{method}_without_memoization", *arg)
22
+ @memoized_values[method][arg] = value
23
+ end
19
24
  else
20
- value = send("#{method}_without_memoization", *arg)
21
- @memoized_values[method][arg] = value
25
+ send("#{method}_without_memoization", *arg)
22
26
  end
23
27
  end
24
28
 
@@ -27,5 +27,18 @@ module Memist
27
27
  def memoized?(method)
28
28
  !!(@memoized_values && @memoized_values.include?(method.to_sym))
29
29
  end
30
+
31
+ def without_memoization
32
+ Thread.current[:without_memoization] ||= 0
33
+ Thread.current[:without_memoization] += 1
34
+ yield
35
+ ensure
36
+ Thread.current[:without_memoization] -= 1
37
+ end
38
+
39
+ def memoize?
40
+ Thread.current[:without_memoization].nil? ||
41
+ Thread.current[:without_memoization] <= 0
42
+ end
30
43
  end
31
44
  end
@@ -1,3 +1,3 @@
1
1
  module Memist
2
- VERSION = '2.0.1'.freeze
2
+ VERSION = '2.0.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memist
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Cooke
@@ -30,7 +30,7 @@ cert_chain:
30
30
  3wUJNGnT5XYq+qvTqmjkTSTfdGvZCM63C6bGdN5CAyMokGOOatGqyCMAONolWnfC
31
31
  gm3t2GWWrxY=
32
32
  -----END CERTIFICATE-----
33
- date: 2019-10-18 00:00:00.000000000 Z
33
+ date: 2019-12-02 00:00:00.000000000 Z
34
34
  dependencies: []
35
35
  description: A Ruby Memoization Helper
36
36
  email:
metadata.gz.sig CHANGED
Binary file