ifuture 0.0.8 → 0.0.9

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.
Files changed (4) hide show
  1. data/lib/ifuture/version.rb +1 -1
  2. data/lib/ifuture.rb +13 -10
  3. metadata +15 -5
  4. checksums.yaml +0 -15
@@ -1,3 +1,3 @@
1
1
  class IFuture
2
- VERSION = '0.0.8'
2
+ VERSION = '0.0.9'
3
3
  end
data/lib/ifuture.rb CHANGED
@@ -4,20 +4,23 @@ require 'ifuture/version'
4
4
  class IFuture
5
5
  def initialize serializer = Marshal
6
6
  @channel = IChannel.new serializer
7
- pid = fork do
8
- @channel.put yield
9
- end
10
- @thread = Process.detach pid
7
+ @thread = Process.detach fork { @channel.put yield }
11
8
  end
12
9
 
13
10
  def ready?
14
- defined?(@value) ? true : @channel.readable?
11
+ if defined? @value
12
+ true
13
+ else
14
+ @channel.readable?
15
+ end
15
16
  end
16
17
 
17
18
  def value
18
- return @value if defined?(@value)
19
-
20
- @thread.join
21
- @value = @channel.get
19
+ if defined? @value
20
+ @value
21
+ else
22
+ @thread.join
23
+ @value = @channel.get
24
+ end
22
25
  end
23
- end
26
+ end
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ifuture
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Shannon Skipper
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2012-12-15 00:00:00.000000000 Z
12
+ date: 2013-01-17 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: ichannel
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: minitest
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ! '>='
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ! '>='
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rake
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ! '>='
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
@@ -55,6 +62,7 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: ichannel
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ! '>='
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :runtime
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - ! '>='
67
76
  - !ruby/object:Gem::Version
@@ -86,26 +95,27 @@ files:
86
95
  - test/ifuture_test.rb
87
96
  homepage: https://github.com/Havenwood
88
97
  licenses: []
89
- metadata: {}
90
98
  post_install_message:
91
99
  rdoc_options: []
92
100
  require_paths:
93
101
  - lib
94
102
  required_ruby_version: !ruby/object:Gem::Requirement
103
+ none: false
95
104
  requirements:
96
105
  - - ! '>='
97
106
  - !ruby/object:Gem::Version
98
107
  version: '0'
99
108
  required_rubygems_version: !ruby/object:Gem::Requirement
109
+ none: false
100
110
  requirements:
101
111
  - - ! '>='
102
112
  - !ruby/object:Gem::Version
103
113
  version: '0'
104
114
  requirements: []
105
115
  rubyforge_project:
106
- rubygems_version: 2.0.0.preview2.1
116
+ rubygems_version: 1.8.24
107
117
  signing_key:
108
- specification_version: 4
118
+ specification_version: 3
109
119
  summary: Futures implemented on top of IChannel for easy Forking.
110
120
  test_files: []
111
121
  has_rdoc:
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MmY1MTQ2ZDg1OWYzNzY5ZmIwYTNkMTM3ZjRlNmNlMTk1MjExNzRmZA==
5
- data.tar.gz: !binary |-
6
- YTNiOWY3NWNhN2MwYjhkZjJkOWQ1ZjE0ODUzYjAyOTY0ZDQ0NWYxYQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- M2EyMzY1ZWQ2Mzk5ZDViZjY1NDdmYmJkZDdhYzM2NWY3NWM4YTdhNzY1MzNk
10
- ZGRkNGI1ZTNjN2RhNjYyZTJhZGM1YjQ3MjllZDY5M2QwZTkzMjYyNWQxM2E5
11
- MjM1OGU0MzA0ZGNiM2M4NTQwZDVkNjMwZTU1ZDZhMWZjMmZkMTM=
12
- data.tar.gz: !binary |-
13
- NTM0Mjg3MGE1MGM2MGQ0ZmE2NDM3NTMzNDhkNzJmMWIzMzVjNTBlMjk4OTU4
14
- OGIwYjVjZGM1NjE4YmUzMDhmYTE2MGRjYTQzNDA5NmY4MzA5YjEyZTdiZTdj
15
- OWYxYWE4OWMyZTgwMmNkYzAyZTUzMWI3ZTljZGUwNGNjMWZmZmE=