ifuture 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
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=