gorillib 0.0.4 → 0.0.5

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
1
+ 0.0.5
data/gorillib.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{gorillib}
8
- s.version = "0.0.4"
8
+ s.version = "0.0.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Infochimps"]
12
- s.date = %q{2011-04-18}
12
+ s.date = %q{2011-04-24}
13
13
  s.description = %q{Gorillib: infochimps lightweight subset of ruby convenience methods}
14
14
  s.email = %q{coders@infochimps.org}
15
15
  s.extra_rdoc_files = [
@@ -46,6 +46,7 @@ Gem::Specification.new do |s|
46
46
  "lib/gorillib/metaprogramming/mattr_accessor.rb",
47
47
  "lib/gorillib/metaprogramming/remove_method.rb",
48
48
  "lib/gorillib/metaprogramming/singleton_class.rb",
49
+ "lib/gorillib/numeric/clamp.rb",
49
50
  "lib/gorillib/object/blank.rb",
50
51
  "lib/gorillib/some.rb",
51
52
  "lib/gorillib/string/constantize.rb",
@@ -54,6 +55,7 @@ Gem::Specification.new do |s|
54
55
  "lib/gorillib/string/truncate.rb",
55
56
  "spec/blank_spec.rb",
56
57
  "spec/gorillib_spec.rb",
58
+ "spec/numeric_spec.rb",
57
59
  "spec/rcov.opts",
58
60
  "spec/spec.opts",
59
61
  "spec/spec_helper.rb",
@@ -92,6 +94,7 @@ Gem::Specification.new do |s|
92
94
  s.test_files = [
93
95
  "spec/blank_spec.rb",
94
96
  "spec/gorillib_spec.rb",
97
+ "spec/numeric_spec.rb",
95
98
  "spec/spec_helper.rb",
96
99
  "test/abstract_unit.rb",
97
100
  "test/array/compact_blank_test.rb",
@@ -0,0 +1,8 @@
1
+ Numeric.class_eval do
2
+ def clamp min=nil, max=nil
3
+ raise ArgumentError, "min must be <= max" if (min && max && (min > max))
4
+ return min if min && (self < min)
5
+ return max if max && (self > max)
6
+ self
7
+ end
8
+ end
data/spec/blank_spec.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'spec_helper'
2
- require 'extlib/blank'
2
+ require 'gorillib/object/blank'
3
3
 
4
4
  describe Object do
5
5
  it 'should provide blank?' do
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+ require 'gorillib/numeric/clamp'
3
+
4
+ describe Numeric do
5
+ describe 'clamp' do
6
+ it 'should return self if neither min nor max are given' do
7
+ 5.clamp().should == 5
8
+ end
9
+
10
+ it 'should return min if x < min' do
11
+ 5.clamp(6).should == 6
12
+ end
13
+
14
+ it 'should return self if x >= min' do
15
+ 5.clamp(4).should == 5
16
+ 5.clamp(5).should == 5
17
+ 5.clamp(nil).should == 5
18
+ end
19
+
20
+ it 'should return max if x > max' do
21
+ 5.clamp(nil, 4).should == 4
22
+ 5.clamp(4, 4).should == 4
23
+ end
24
+
25
+ it 'should return self if x <= max' do
26
+ 5.clamp(4, 6).should == 5
27
+ 5.clamp(5, 5).should == 5
28
+ 5.clamp(nil, 6).should == 5
29
+ 5.clamp(nil, 5).should == 5
30
+ end
31
+
32
+ it 'lets me mix floats and ints' do
33
+ (5.0).clamp(4, 6).should == 5.0
34
+ (5).clamp(4.0, 6.0).should == 5.0
35
+ (5.0).clamp(6.0, 7.0).should == 6.0
36
+ (5.0).clamp(4, 6).should be_a_kind_of(Float)
37
+ (5.0).clamp(6, 6).should be_a_kind_of(Integer)
38
+ end
39
+
40
+ it 'should raise if min > max' do
41
+ lambda{ 5.clamp(6, 3) }.should raise_error(ArgumentError)
42
+ end
43
+
44
+ it 'lets me set min == max' do
45
+ 5.clamp(6, 6).should == 6
46
+ end
47
+ end
48
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: gorillib
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.4
5
+ version: 0.0.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Infochimps
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-18 00:00:00 -05:00
13
+ date: 2011-04-24 00:00:00 -05:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -85,6 +85,7 @@ files:
85
85
  - lib/gorillib/metaprogramming/mattr_accessor.rb
86
86
  - lib/gorillib/metaprogramming/remove_method.rb
87
87
  - lib/gorillib/metaprogramming/singleton_class.rb
88
+ - lib/gorillib/numeric/clamp.rb
88
89
  - lib/gorillib/object/blank.rb
89
90
  - lib/gorillib/some.rb
90
91
  - lib/gorillib/string/constantize.rb
@@ -93,6 +94,7 @@ files:
93
94
  - lib/gorillib/string/truncate.rb
94
95
  - spec/blank_spec.rb
95
96
  - spec/gorillib_spec.rb
97
+ - spec/numeric_spec.rb
96
98
  - spec/rcov.opts
97
99
  - spec/spec.opts
98
100
  - spec/spec_helper.rb
@@ -153,6 +155,7 @@ summary: include only what you need. No dependencies, no creep
153
155
  test_files:
154
156
  - spec/blank_spec.rb
155
157
  - spec/gorillib_spec.rb
158
+ - spec/numeric_spec.rb
156
159
  - spec/spec_helper.rb
157
160
  - test/abstract_unit.rb
158
161
  - test/array/compact_blank_test.rb