fiber_recycling 0.0.0 → 0.0.1

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
  SHA1:
3
- metadata.gz: 13919e9d5f85666b880cebaca25b077824034b18
4
- data.tar.gz: cf2cde3a386850c9177d0c04a5d2860d92840205
3
+ metadata.gz: 746dc55b0a096b0ae4cf0b155fd499ef0fd1ca5e
4
+ data.tar.gz: 1846000c858ba6daa221bd38dd71249a6403fea3
5
5
  SHA512:
6
- metadata.gz: 19c3d05d76143172cb73db33dba29d04a64de0fef51d87c5327fd0d775c9689555da0c77289267ad3a014fc580ff4895cd50a5674891d074078e885bab57b2f6
7
- data.tar.gz: 0f0b0289cff08d84e3d306ad4f6547107b3eceb3a5cfdf450ea56d543326e2ce54545f762e545e2ba0ce7ced48bc13416866d9d1172587e678c5cd6623cedf94
6
+ metadata.gz: ad2b976c652a19ab8ae5965f321b070fe5d4d47f6f2241532bc07bd84a4de37e22500707673ac7d2c7cb7e4411025f576e3506cacec5e75098a0b2c2ddb6d187
7
+ data.tar.gz: 7ce95f737843b39d461b028b62b29d961ae7aabe1661c09497ee5464844cb28e836bdcb57aa673ee2fe021fd393f9c8f093d8b6a26df57651ac55f79f861dbcf
@@ -2,11 +2,11 @@ module FiberRecycling
2
2
  class RecycledFiber
3
3
 
4
4
  def self.yield(*args)
5
- NativeFiber.yield(*args)
5
+ ::Fiber.yield(*args)
6
6
  end
7
7
 
8
8
  def initialize
9
- @native_fiber = NativeFiber.new { execution_loop }
9
+ @native_fiber = ::Fiber.new { execution_loop }
10
10
  @state = :initialized
11
11
  start
12
12
  end
@@ -29,12 +29,12 @@ module FiberRecycling
29
29
  last_reutrn_value = nil
30
30
  loop do
31
31
  @state = :waiting_for_instruction
32
- instruction = NativeFiber.yield(last_reutrn_value)
32
+ instruction = ::Fiber.yield(last_reutrn_value)
33
33
  case instruction
34
34
  when :run
35
35
  @state = :executing_block
36
- args = NativeFiber.yield
37
- proc = NativeFiber.yield
36
+ args = ::Fiber.yield
37
+ proc = ::Fiber.yield
38
38
  last_reutrn_value = proc.call(*args)
39
39
  when :close
40
40
  @state = :closed
@@ -6,15 +6,15 @@ module FiberRecycling
6
6
  end
7
7
 
8
8
  def alive?
9
- NativeFiber.root.alive?
9
+ ::Fiber.root.alive?
10
10
  end
11
11
 
12
12
  def inspect
13
- NativeFiber.root.inspect
13
+ ::Fiber.root.inspect
14
14
  end
15
15
 
16
16
  def resume(*args)
17
- NativeFiber.root.resume(*args)
17
+ ::Fiber.root.resume(*args)
18
18
  end
19
19
 
20
20
  def to_s
@@ -22,7 +22,7 @@ module FiberRecycling
22
22
  end
23
23
 
24
24
  def transfer(*args)
25
- NativeFiber.root.transfer(*args)
25
+ ::Fiber.root.transfer(*args)
26
26
  end
27
27
 
28
28
  end
@@ -13,7 +13,4 @@ require 'fiber_recycling/recycled_fiber_pool'
13
13
  require 'fiber_recycling/root_fiber_backend'
14
14
 
15
15
  module FiberRecycling
16
-
17
- NativeFiber = ::Fiber
18
-
19
16
  end
@@ -0,0 +1,42 @@
1
+ require 'fiber_recycling'
2
+
3
+ RSpec.describe FiberRecycling::DuckTypes do
4
+
5
+ describe FiberRecycling::Fiber do
6
+
7
+ context "when creating a Fiber" do
8
+ it "should create a FiberRecycling::Fiber" do
9
+ module A
10
+ include FiberRecycling::DuckTypes
11
+
12
+ def self.a
13
+ Fiber.new {}
14
+ end
15
+
16
+ end
17
+
18
+ expect(A.a).to be_a(FiberRecycling::Fiber)
19
+ end
20
+ end
21
+
22
+ end
23
+
24
+ describe FiberRecycling::FiberError do
25
+
26
+ context "when FiberError is raised" do
27
+ it "should raise FiberRecycling::FiberError" do
28
+ module A
29
+ include FiberRecycling::DuckTypes
30
+
31
+ def self.a
32
+ fiber = Fiber.new {}
33
+ fiber.resume
34
+ expect{ fiber.resume }.to raise_error FiberError
35
+ end
36
+
37
+ end
38
+ end
39
+ end
40
+
41
+ end
42
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fiber_recycling
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Fors
@@ -43,6 +43,7 @@ files:
43
43
  - lib/fiber_recycling/recycled_fiber.rb
44
44
  - lib/fiber_recycling/recycled_fiber_pool.rb
45
45
  - lib/fiber_recycling/root_fiber_backend.rb
46
+ - spec/duck_types_spec.rb
46
47
  - spec/fiber_spec.rb
47
48
  - spec/spec_helper.rb
48
49
  homepage: https://github.com/robfors/fiber_recycling