upfluence-utils 0.5.0 → 0.5.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
  SHA1:
3
- metadata.gz: c148d5d8756d1d0eefd36e85cba488b5df5e846d
4
- data.tar.gz: f6b03fef67c6c7735670556db8a3f09e6759f54f
3
+ metadata.gz: a61bc40a56614b16ca62ec6eeeac95a157d9e1b9
4
+ data.tar.gz: 7f732111b80c7bec627ab96a2a49449b66adc2c8
5
5
  SHA512:
6
- metadata.gz: 18b5549fd9a5069213fe0c1276f75a17e46d5a8b6e416d2abf25b1779d3b6cca79c8088f8d8b4f841e662797431071f6d771dd620d0220b1c323ddba121b4ca3
7
- data.tar.gz: 1af342090c2066769a63e774518b66cdd498196012c404e3bb8077ea38df407a8a4d0fc6ea71d0059678081015aec0d90ef0a5ab968c23a4978117d24a4b38ba
6
+ metadata.gz: a176fde5bd46b36baa492dbfa9f17a461e34d57bf9d3573c546242eafbe2fa5d9b620cc06b046b72f467e346d79aaa68eea247f0b9cd3a1aefa93ce8327fb596
7
+ data.tar.gz: 19df2c5d964303de32bdc5919707246020edf8ddb71634463cecd662f1e540325cdf663fca6c7a6e1efb19086d9dbec7c8dbccd7a22a6cc37e61115d0359e342
@@ -23,18 +23,15 @@ module Upfluence
23
23
 
24
24
  def discard(obj)
25
25
  @mutex.synchronize do
26
- raise UnknownResource unless @redeemed.include? obj
27
-
28
- @redeemed.reject! { |e| e == obj }
26
+ remove_from_redeemed obj
29
27
  @resource.broadcast
30
28
  end
31
29
  end
32
30
 
33
31
  def push(obj)
34
32
  @mutex.synchronize do
35
- raise UnknownResource unless @redeemed.include? obj
33
+ remove_from_redeemed obj
36
34
 
37
- @redeemed.reject! { |e| e == obj }
38
35
  @que.push obj
39
36
  @resource.broadcast
40
37
  end
@@ -46,7 +43,11 @@ module Upfluence
46
43
 
47
44
  @mutex.synchronize do
48
45
  loop do
49
- return @que.pop unless @que.empty?
46
+ unless @que.empty?
47
+ object = @que.pop
48
+ @redeemed << object
49
+ object
50
+ end
50
51
 
51
52
  connection = try_create(options)
52
53
  return connection if connection
@@ -68,12 +69,20 @@ module Upfluence
68
69
 
69
70
  private
70
71
 
71
- def try_create(_options = nil)
72
- unless @redeemed.length >= @max
73
- object = @create_block.call
74
- @redeemed << object
75
- object
72
+ def remove_from_redeemed(obj)
73
+ unless @redeemed.map(&:object_id).include? obj.object_id
74
+ raise UnknownResource
76
75
  end
76
+
77
+ @redeemed.reject! { |e| e.object_id == obj.object_id }
78
+ end
79
+
80
+ def try_create(_options = nil)
81
+ ureturn if @redeemed.length >= @max
82
+
83
+ object = @create_block.call
84
+ @redeemed << object
85
+ object
77
86
  end
78
87
  end
79
88
  end
@@ -1,5 +1,5 @@
1
1
  module Upfluence
2
2
  module Utils
3
- VERSION = '0.5.0'.freeze
3
+ VERSION = '0.5.1'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upfluence-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Upfluence