totally_lazy 0.0.9 → 0.0.10

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: 01903b7c27ad47c879061f9c243f2d9584f677b4
4
- data.tar.gz: aedadff3f94da81d7360577b81a038bc2e59406e
3
+ metadata.gz: 6e34f37ae8c53dd9dce6023c6a3d478cf86df5d1
4
+ data.tar.gz: 2b8c465f1d922bc1fc84bd8dc10e4053d3317d1c
5
5
  SHA512:
6
- metadata.gz: 3cf69966f72d69ec77ad6fde9de8829b83e5fcd40a73c1daf055e4aff7721db506b6cfb85b966eed8eff1b4b04bce55686ea8f2d30c0989a16671c27567ad045
7
- data.tar.gz: e36f76e5bc0999828dd11b5dd622c4af0ce1e04c071df9b9e31eeadac35ccf3231cc298829532b2e82a05508b903cccdc424aa290ccb6f440141bfa1c971ad71
6
+ metadata.gz: 3488513a08f9ab7133e21ff34cc54ab25723c6f3fb1161e67b81a1df2214cb5c858cbbb401e995a3b5580c824c2f0eb4df32ed43f50da02947bc3707c83c051e
7
+ data.tar.gz: 68c0689495a08940649cf76a299d084293bd9afd313b12db06baa83b179a91cbed1e6abe9b5b8d59a124a8b1aa90002d95f5fde89f8eedd05ac02be7ce503d0f
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ # PLEASE NOTE - This project is not being actively maintained at the moment - I am taking a break - not sure when I will return.
2
+
1
3
  # Totally Lazy for Ruby
2
4
 
3
5
  This is a port of the java functional library [Totally Lazy](https://code.google.com/p/totallylazy/) to the ruby language. I've tried to get it as close as I can to the original concepts behind the java version of Totally Lazy but I'm still pretty far away from being happy with it.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.9
1
+ 0.0.10
data/lib/sequence.rb CHANGED
@@ -85,6 +85,25 @@ module Sequences
85
85
  self.entries <=> object.entries
86
86
  end
87
87
 
88
+ def flat_map(predicate=nil, &block)
89
+ if predicate
90
+ Sequence.new(self) { |yielder, val|
91
+ val.each {|x|
92
+ v = predicate.is_a?(WherePredicate) ? WhereProcessor.new(x).apply(predicate.predicates) : predicate.exec.call(x)
93
+ yielder << v unless v.nil?
94
+ }
95
+ }
96
+ else
97
+ Sequence.new(self) { |yielder, val|
98
+ ary = block.call(val)
99
+ ary.each { |x|
100
+ yielder << x
101
+ }
102
+ }
103
+ end
104
+ end
105
+ alias collect_concat flat_map
106
+
88
107
  def map(predicate=nil, &block)
89
108
  if predicate
90
109
  Sequence.new(self) { |yielder, val|
@@ -211,17 +230,6 @@ module Sequences
211
230
  }
212
231
  end
213
232
 
214
- def flat_map(&block)
215
- Sequence.new(self) { |yielder, val|
216
- ary = block.call(val)
217
- ary.each { |x|
218
- yielder << x
219
- }
220
- }
221
- end
222
-
223
- alias collect_concat flat_map
224
-
225
233
  def zip(*args, &block)
226
234
  enums = [self] + args
227
235
  Sequence.new(self) { |yielder, val|
@@ -14,6 +14,14 @@ describe 'Predicates' do
14
14
  expect { sequence(pair(1,2),pair(3,4)).filter(odd).entries }.to raise_error(UnsupportedTypeException)
15
15
  end
16
16
 
17
+ it 'should support map' do
18
+ expect(sequence(1,2).map(as_string)).to eq(sequence("1","2"))
19
+ end
20
+
21
+ it 'should support flat_map' do
22
+ expect(sequence(sequence(1, 2), sequence(3, 4)).flat_map(as_string).to_a).to eq(sequence("1", "2", "3", "4").to_a)
23
+ end
24
+
17
25
  it 'should return content as string' do
18
26
  expect(sequence(1,2).map(as_string)).to eq(sequence("1","2"))
19
27
  expect(sequence(pair(1,2),pair(3,4)).map(as_string).entries).to eq([{'1'=>'2'},{'3'=>'4'}])
data/totally_lazy.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: totally_lazy 0.0.7 ruby lib
5
+ # stub: totally_lazy 0.0.10 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "totally_lazy"
9
- s.version = "0.0.9"
9
+ s.version = "0.0.10"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Kingsley Hendrickse"]
14
- s.date = "2014-11-02"
14
+ s.date = "2015-10-29"
15
15
  s.description = "Port of java functional library totally lazy to ruby"
16
16
  s.email = "kingsleyhendrickse@me.com"
17
17
  s.extra_rdoc_files = [
@@ -59,7 +59,7 @@ Gem::Specification.new do |s|
59
59
  ]
60
60
  s.homepage = "http://github.com/kingsleyh/totally_lazy"
61
61
  s.licenses = ["MIT"]
62
- s.rubygems_version = "2.2.2"
62
+ s.rubygems_version = "2.4.6"
63
63
  s.summary = "Port of java functional library totally lazy to ruby"
64
64
 
65
65
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: totally_lazy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kingsley Hendrickse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-02 00:00:00.000000000 Z
11
+ date: 2015-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -201,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
201
  version: '0'
202
202
  requirements: []
203
203
  rubyforge_project:
204
- rubygems_version: 2.2.2
204
+ rubygems_version: 2.4.6
205
205
  signing_key:
206
206
  specification_version: 4
207
207
  summary: Port of java functional library totally lazy to ruby