totally_lazy 0.0.1 → 0.0.2

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: b2a0d97dd8aedb8afc89adef7c596aa2a547a24d
4
- data.tar.gz: 7a6b85c74b930787327b38eea1557ca615f397f5
3
+ metadata.gz: d2bd08beb128d57daef7cb8259b9dd391d77d3f6
4
+ data.tar.gz: 0436a18ccd3dc6f192af42e80fbfd8467e0c068b
5
5
  SHA512:
6
- metadata.gz: 97d6df56b8e0a9f295117f7e3f52e6f5bdf11c280c8df69b7fffb49c02fca403ce36e76a0875b5bb9d71ff20dc63bdc510b1ede0782ac02780f2defc2afb8251
7
- data.tar.gz: f2e0cb93b2217ae84954a03d876a77a29b17f11e36b7e1624a1262abdd19e57a9e9f1bf09b112983ea3d67dc61b69632b08b8ac371ee25e05e780f1fa905a2cd
6
+ metadata.gz: 562656c8ed06737fedb4dd348d788e484786873855c0ecd5fb951c651ed2383a90a738c2cd64f444155589b07df9c08881964e0fafbaeebdffd11d4200d47bce
7
+ data.tar.gz: 3c77e9a13c67a68b76797583a83179259ffca73e5a754902b31e99c51c8c2874711d07a3943836669dea4e7025d2147090e0f69672dc3f46d8589850f339ad4b
data/README.md CHANGED
@@ -13,13 +13,13 @@ This is a port of the java functional library [Totally Lazy](https://code.google
13
13
  In your bundler Gemfile
14
14
 
15
15
  ```ruby
16
- gem totally_lazy, '~>0.0.1'
16
+ gem totally_lazy, '~>0.0.2'
17
17
  ```
18
18
 
19
19
  Or with rubygems
20
20
 
21
21
  ```
22
- gem install totall_lazy
22
+ gem install totally_lazy
23
23
  ```
24
24
 
25
25
  ### Examples
@@ -33,6 +33,8 @@ sequence(1,2,3).take(2) # lazily returns 1,2
33
33
  sequence(1,2,3).drop(2) # lazily returns 3
34
34
  sequence(1,2,3).tail # lazily returns 2,3
35
35
  sequence(1,2,3).head # eagerly returns 1
36
+ sequence(1,2,3).head_option # eagerly returns an option
37
+ some(sequence(1,2,3)).get_or_else(empty) # eagerly returns value or else empty sequence
36
38
  ```
37
39
 
38
40
  Naturally you can combine these operations together:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
data/lib/option.rb CHANGED
@@ -46,11 +46,11 @@ module Option
46
46
  end
47
47
 
48
48
  def get_or_nil
49
- @content
49
+ blank? ? nil : @content
50
50
  end
51
51
 
52
52
  def get_or_throw(exception)
53
- blank? ? @content : exception.call
53
+ blank? ? raise(exception) : @content
54
54
  end
55
55
 
56
56
  def to_seq
@@ -79,7 +79,7 @@ module Option
79
79
  private
80
80
 
81
81
  def blank?
82
- @content.nil? || @content.empty?
82
+ @content.respond_to?(:empty?) ? empty? : !self
83
83
  end
84
84
 
85
85
  end
data/spec/option_spec.rb CHANGED
@@ -18,11 +18,11 @@ describe 'Option' do
18
18
  end
19
19
 
20
20
  it 'should support join' do
21
- expect(option(1).join(sequence(2,3))).to eq(sequence(1,2,3))
21
+ expect(option(1).join(sequence(2, 3))).to eq(sequence(1, 2, 3))
22
22
  end
23
23
 
24
24
  it 'should get value of some' do
25
-
25
+ expect(option(1).get).to eq(1)
26
26
  end
27
27
 
28
28
  it 'should not get value of none' do
@@ -30,15 +30,18 @@ describe 'Option' do
30
30
  end
31
31
 
32
32
  it 'should get or else' do
33
-
33
+ expect(option(1).get_or_else(2)).to eq(1)
34
+ expect(option(empty).get_or_else(2)).to eq(2)
34
35
  end
35
36
 
36
37
  it 'should get or nil' do
37
-
38
+ expect(option(1).get_or_nil).to eq(1)
39
+ expect(option(empty).get_or_nil).to eq(nil)
38
40
  end
39
41
 
40
42
  it 'should get or raise exception' do
41
-
43
+ expect(option(1).get_or_throw(Exception)).to eq(1)
44
+ expect { option(empty).get_or_throw(Exception) }.to raise_error(Exception)
42
45
  end
43
46
 
44
47
 
@@ -0,0 +1,69 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: totally_lazy 0.0.2 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "totally_lazy"
9
+ s.version = "0.0.2"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
13
+ s.authors = ["Kingsley Hendrickse"]
14
+ s.date = "2014-08-15"
15
+ s.description = "Port of java functional library totally lazy to ruby"
16
+ s.email = "kingsleyhendrickse@me.com"
17
+ s.extra_rdoc_files = [
18
+ "LICENSE.txt",
19
+ "README.md"
20
+ ]
21
+ s.files = [
22
+ ".document",
23
+ ".rspec",
24
+ "Gemfile",
25
+ "LICENSE.txt",
26
+ "README.md",
27
+ "Rakefile",
28
+ "VERSION",
29
+ "lib/option.rb",
30
+ "lib/pair.rb",
31
+ "lib/sequence.rb",
32
+ "lib/totally_lazy.rb",
33
+ "lib/tuple.rb",
34
+ "spec/option_spec.rb",
35
+ "spec/pair_spec.rb",
36
+ "spec/sequence_spec.rb",
37
+ "spec/tuple_spec.rb",
38
+ "totally_lazy.gemspec"
39
+ ]
40
+ s.homepage = "http://github.com/kingsleyh/totally_lazy"
41
+ s.licenses = ["MIT"]
42
+ s.rubygems_version = "2.2.2"
43
+ s.summary = "Port of java functional library totally lazy to ruby"
44
+
45
+ if s.respond_to? :specification_version then
46
+ s.specification_version = 4
47
+
48
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
+ s.add_development_dependency(%q<rspec>, ["~> 3.0.0"])
50
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
51
+ s.add_development_dependency(%q<bundler>, ["~> 1.0"])
52
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
53
+ s.add_development_dependency(%q<rspec_html_formatter>, ["~> 0.3.0"])
54
+ else
55
+ s.add_dependency(%q<rspec>, ["~> 3.0.0"])
56
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
57
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
58
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
59
+ s.add_dependency(%q<rspec_html_formatter>, ["~> 0.3.0"])
60
+ end
61
+ else
62
+ s.add_dependency(%q<rspec>, ["~> 3.0.0"])
63
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
64
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
65
+ s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
66
+ s.add_dependency(%q<rspec_html_formatter>, ["~> 0.3.0"])
67
+ end
68
+ end
69
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: totally_lazy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kingsley Hendrickse
@@ -104,6 +104,7 @@ files:
104
104
  - spec/pair_spec.rb
105
105
  - spec/sequence_spec.rb
106
106
  - spec/tuple_spec.rb
107
+ - totally_lazy.gemspec
107
108
  homepage: http://github.com/kingsleyh/totally_lazy
108
109
  licenses:
109
110
  - MIT