lalka 0.7.0 → 1.0.0
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 +4 -4
- data/README.md +8 -32
- data/lib/lalka.rb +3 -8
- data/lib/lalka/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 542e2e1eb9c6cb8c0c06caf00441fe62725d1481
|
4
|
+
data.tar.gz: 54388187231a1df55b04fdf3a23210e87d5562f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 815108b4f5a393ae43483c34e45b9f205e431a22d44b7b6cc9ed5e44712a1140ce55c0c5fdbe558aa8af9ef881e4eb8afc1a158f1fc015e605890aae5ea8533d
|
7
|
+
data.tar.gz: 6b85ca6700e1af2d992b32883d25085acda77c3f8869af30823d09222a97523d1f962c27bdcc50a902acde41e5fd778cece3f6c6ab547921f8443e1c5459efd2
|
data/README.md
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
# Lalka
|
2
2
|
[](https://travis-ci.org/v-shmyhlo/lalka)
|
3
3
|
|
4
|
-
|
4
|
+
Lalka is a ruby implementation of a Task monad (aka Continuation monad) - usefull abstraction for managing parallel and concurrent code.
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
# Usage
|
6
|
+
## Usage
|
9
7
|
|
10
8
|
### Create:
|
11
9
|
```ruby
|
@@ -45,17 +43,9 @@ TODO: Delete this and the text above, and describe your gem
|
|
45
43
|
### fork_wait:
|
46
44
|
```ruby
|
47
45
|
# executes computation, fork_wait blocks and returns Either from "dry-monads" gem
|
48
|
-
task = Lalka::Task.resolve(
|
49
|
-
|
50
|
-
result = task.fork_wait do |t|
|
51
|
-
t.on_success do |value|
|
52
|
-
value + 1
|
53
|
-
end
|
46
|
+
task = Lalka::Task.resolve(100)
|
54
47
|
|
55
|
-
|
56
|
-
# ...
|
57
|
-
end
|
58
|
-
end
|
48
|
+
result = task.fork_wait
|
59
49
|
|
60
50
|
result # Right(100)
|
61
51
|
```
|
@@ -63,17 +53,9 @@ TODO: Delete this and the text above, and describe your gem
|
|
63
53
|
```ruby
|
64
54
|
task = Lalka::Task.reject('error')
|
65
55
|
|
66
|
-
result = task.fork_wait
|
67
|
-
t.on_success do |value|
|
68
|
-
# ...
|
69
|
-
end
|
70
|
-
|
71
|
-
t.on_error do |error|
|
72
|
-
"Error: " + error
|
73
|
-
end
|
74
|
-
end
|
56
|
+
result = task.fork_wait
|
75
57
|
|
76
|
-
result # Left("
|
58
|
+
result # Left("error")
|
77
59
|
```
|
78
60
|
|
79
61
|
### map:
|
@@ -137,22 +119,16 @@ Or install it yourself as:
|
|
137
119
|
|
138
120
|
$ gem install lalka
|
139
121
|
|
140
|
-
## Usage
|
141
|
-
|
142
|
-
TODO: Write usage instructions here
|
143
|
-
|
144
122
|
## Development
|
145
123
|
|
146
124
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
147
125
|
|
148
|
-
To install this gem onto your local machine, run `bundle exec rake install`.
|
126
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
149
127
|
|
150
128
|
## Contributing
|
151
129
|
|
152
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
153
|
-
|
130
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/v-shmyhlo/lalka. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
154
131
|
|
155
132
|
## License
|
156
133
|
|
157
134
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
158
|
-
|
data/lib/lalka.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'dry-monads'
|
3
|
-
|
4
3
|
require 'lalka/version'
|
5
4
|
|
6
5
|
module Lalka
|
@@ -38,12 +37,8 @@ module Lalka
|
|
38
37
|
queue = Queue.new
|
39
38
|
internal = Internal.new(queue)
|
40
39
|
|
41
|
-
|
42
|
-
|
43
|
-
else
|
44
|
-
internal.on_success { |v| v }
|
45
|
-
internal.on_error { |e| e }
|
46
|
-
end
|
40
|
+
internal.on_success { |v| v }
|
41
|
+
internal.on_error { |e| e }
|
47
42
|
|
48
43
|
internal.call(&@computation)
|
49
44
|
queue.pop
|
@@ -163,7 +158,7 @@ module Lalka
|
|
163
158
|
|
164
159
|
def function_from_arguments(*args, &block)
|
165
160
|
if block_given?
|
166
|
-
raise ArgumentError, 'both block and function provided'
|
161
|
+
raise ArgumentError, 'both block and function provided' unless args.empty?
|
167
162
|
block
|
168
163
|
else
|
169
164
|
raise ArgumentError, 'no block or function provided' if args.length != 1
|
data/lib/lalka/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lalka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vlad Shmyhlo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-monads
|
@@ -134,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
134
|
version: '0'
|
135
135
|
requirements: []
|
136
136
|
rubyforge_project:
|
137
|
-
rubygems_version: 2.6.
|
137
|
+
rubygems_version: 2.6.11
|
138
138
|
signing_key:
|
139
139
|
specification_version: 4
|
140
140
|
summary: Task monad
|