rpromise 0.1.2 → 0.2.0

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: 6a717f4226d359019498c9ce4aa6f47bffb97d89
4
- data.tar.gz: df6fbd05f8e20065d2f9a1ff17110810b8e34cfc
3
+ metadata.gz: 16f6311980e55c27386c4edf93b2c58864a395b8
4
+ data.tar.gz: ac7642a6d38a79bce94f358d8e29dacd5948b66e
5
5
  SHA512:
6
- metadata.gz: 2d8305e2ecae4c6aa80150b6294ac93b38ab1b836ab4114c821b2d731f072a2fd3ecc13f30e2f32a91ac92979789f7dde06b3a1f7a370be3ef2a0a5c684a7eff
7
- data.tar.gz: 4852082d68d72be33c8897e31192da03ca4354ed22fa86974925da93838d40c9ae55e37e21cb154e87960ef16f682ea39e6f4d9e279963dfaf0e8221c40b8c80
6
+ metadata.gz: 4dba3ecadeb7047e5c4de046c5fea66023f37cbf77ebc74a211f9ca374a6a7720ff31bc4fed452a590cbd5aedb00efacc1881d7e5bbbc2a14125135d17fc1bc9
7
+ data.tar.gz: 23f7214a55a31d6427a3f37425f61f341ba299a1593cac98d65737993599a1ce506de8acd6039112542f9a0f9ce7c0f51bd5642772283eb72915c8bcaa158237
data/README.md CHANGED
@@ -149,6 +149,16 @@ promise.then(lambda do |value|
149
149
  end)
150
150
  ```
151
151
 
152
+ or you can convert a method to a promise
153
+
154
+ ```ruby
155
+ promise = 100.method(:to_s).to_rpromise
156
+
157
+ promise.then(lambda do |value|
158
+ value[0...2] # => "10"
159
+ end)
160
+ ```
161
+
152
162
  ## Contributing
153
163
 
154
164
  1. Fork it
data/lib/method.rb ADDED
@@ -0,0 +1,7 @@
1
+ class Method
2
+ def to_rpromise(*args, &block)
3
+ Rpromise.new do |resolve, reject|
4
+ resolve.call(self.call(*args, &block))
5
+ end
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  class Rpromise
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/rpromise.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'rpromise/version'
2
+ require 'method'
2
3
 
3
4
  class Rpromise
4
5
  module State
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe Method do
4
+ MyObject = Struct.new(:store) do
5
+ def method_with_args(*args)
6
+ return args
7
+ end
8
+ def method_with_block
9
+ yield
10
+ end
11
+ end
12
+
13
+ let(:obj) { MyObject.new('Hello World') }
14
+
15
+ describe '#to_rpromise' do
16
+ it 'converts method object to a promise' do
17
+ lambda_value = nil
18
+ lock = true
19
+ p = obj.method(:store).to_rpromise
20
+ p.then(lambda do |value|
21
+ lambda_value = value
22
+ lock = false
23
+ end)
24
+ loop { break unless lock }
25
+ expect(lambda_value).to eq 'Hello World'
26
+ end
27
+ end
28
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rpromise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Molinari
@@ -109,9 +109,11 @@ files:
109
109
  - LICENSE.txt
110
110
  - README.md
111
111
  - Rakefile
112
+ - lib/method.rb
112
113
  - lib/rpromise.rb
113
114
  - lib/rpromise/version.rb
114
115
  - rpromise.gemspec
116
+ - spec/lib/method_spec.rb
115
117
  - spec/lib/rpromise_spec.rb
116
118
  - spec/spec_helper.rb
117
119
  homepage: ''
@@ -139,5 +141,6 @@ signing_key:
139
141
  specification_version: 4
140
142
  summary: Handle async method easily
141
143
  test_files:
144
+ - spec/lib/method_spec.rb
142
145
  - spec/lib/rpromise_spec.rb
143
146
  - spec/spec_helper.rb