ruby_peter_v 0.0.2 → 0.0.3
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.
- data/HISTORY.txt +4 -0
- data/README.md +8 -1
- data/lib/ruby_peter_v/max_with_nil.rb +15 -0
- data/lib/ruby_peter_v/version.rb +1 -1
- data/lib/ruby_peter_v.rb +3 -2
- data/spec/max_with_nil_spec.rb +29 -0
- data/spec/single_spec.rb +2 -2
- metadata +6 -3
data/HISTORY.txt
CHANGED
data/README.md
CHANGED
@@ -18,7 +18,7 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
*
|
21
|
+
* #single on enumerable (instead of unstable .first)
|
22
22
|
|
23
23
|
The background of this is that in many cases,
|
24
24
|
the developer knows there _should_ only be 1
|
@@ -27,6 +27,13 @@ Or install it yourself as:
|
|
27
27
|
will happily choose a random entry (certainly with
|
28
28
|
ActiveRecord first) which is a silent bug.
|
29
29
|
|
30
|
+
* #max_with_nil on Object
|
31
|
+
|
32
|
+
Finding the max of two arguments, but if one of them
|
33
|
+
is nil, take the other one, and both nil, return nil.
|
34
|
+
This is similar to the behavior ios nil would be considered
|
35
|
+
smaller than all other objects.
|
36
|
+
|
30
37
|
## Contributing
|
31
38
|
|
32
39
|
1. Fork it
|
data/lib/ruby_peter_v/version.rb
CHANGED
data/lib/ruby_peter_v.rb
CHANGED
@@ -1,2 +1,3 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'ruby_peter_v/version'
|
2
|
+
require 'ruby_peter_v/single'
|
3
|
+
require 'ruby_peter_v/max_with_nil'
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "max_with_nil" do
|
4
|
+
it "nil if a and b are nil" do
|
5
|
+
max_with_nil(nil, nil).should == nil
|
6
|
+
end
|
7
|
+
|
8
|
+
it "b if a is nil" do
|
9
|
+
max_with_nil(nil, 10).should == 10
|
10
|
+
end
|
11
|
+
|
12
|
+
it "a if b is nil" do
|
13
|
+
max_with_nil(10, nil).should == 10
|
14
|
+
end
|
15
|
+
|
16
|
+
it "a if a > b" do
|
17
|
+
max_with_nil(10, 5).should == 10
|
18
|
+
end
|
19
|
+
|
20
|
+
it "b if b > a" do
|
21
|
+
max_with_nil(5, 10).should == 10
|
22
|
+
end
|
23
|
+
|
24
|
+
it "a if a == b" do
|
25
|
+
a = "test"
|
26
|
+
b = "test"
|
27
|
+
max_with_nil(a, b).object_id.should == a.object_id
|
28
|
+
end
|
29
|
+
end
|
data/spec/single_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe "single" do
|
4
4
|
it "raises error on nil value (nil.first also raises error)" do
|
5
5
|
a = nil
|
6
|
-
lambda {a.single}.should raise_error
|
6
|
+
lambda { a.single } . should raise_error NoMethodError
|
7
7
|
end
|
8
8
|
|
9
9
|
it "nil for empty set" do
|
@@ -18,6 +18,6 @@ describe "single" do
|
|
18
18
|
|
19
19
|
it "exception for > 1 element in set" do
|
20
20
|
a = [:a, :b]
|
21
|
-
lambda{a.single}.should raise_exception
|
21
|
+
lambda { a.single } . should raise_exception RuntimeError
|
22
22
|
end
|
23
23
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_peter_v
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -42,9 +42,11 @@ files:
|
|
42
42
|
- README.md
|
43
43
|
- Rakefile
|
44
44
|
- lib/ruby_peter_v.rb
|
45
|
+
- lib/ruby_peter_v/max_with_nil.rb
|
45
46
|
- lib/ruby_peter_v/single.rb
|
46
47
|
- lib/ruby_peter_v/version.rb
|
47
48
|
- ruby_peter_v.gemspec
|
49
|
+
- spec/max_with_nil_spec.rb
|
48
50
|
- spec/single_spec.rb
|
49
51
|
- spec/spec_helper.rb
|
50
52
|
homepage: https://github.com/petervandenabeele/ruby_peter_v
|
@@ -67,10 +69,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
69
|
version: '0'
|
68
70
|
requirements: []
|
69
71
|
rubyforge_project:
|
70
|
-
rubygems_version: 1.8.
|
72
|
+
rubygems_version: 1.8.25
|
71
73
|
signing_key:
|
72
74
|
specification_version: 3
|
73
75
|
summary: Ruby helpers for @peter_v
|
74
76
|
test_files:
|
77
|
+
- spec/max_with_nil_spec.rb
|
75
78
|
- spec/single_spec.rb
|
76
79
|
- spec/spec_helper.rb
|