rubyhacks 0.1.1 → 0.1.2
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 +1 -1
- data/lib/rubyhacks.rb +12 -5
- data/rubyhacks.gemspec +3 -3
- data/test/test_rubyhacks.rb +8 -3
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/rubyhacks.rb
CHANGED
@@ -492,6 +492,11 @@ class Array
|
|
492
492
|
def sum
|
493
493
|
return inject{|old, new| old + new}
|
494
494
|
end
|
495
|
+
|
496
|
+
def mean
|
497
|
+
return sum/size.to_f
|
498
|
+
end
|
499
|
+
|
495
500
|
def product
|
496
501
|
return inject{|old, new| old * new}
|
497
502
|
end
|
@@ -625,12 +630,12 @@ class FloatHash < Hash
|
|
625
630
|
end
|
626
631
|
aliold :pretty_inspect
|
627
632
|
def pretty_inspect
|
628
|
-
|
629
|
-
|
633
|
+
"FloatHash.from_hash(#{old_pretty_inspect})"
|
634
|
+
end
|
630
635
|
|
631
636
|
def []=(key, var)
|
632
637
|
# super(key.to_f, var)
|
633
|
-
|
638
|
+
raise TypeError unless key.kind_of? Numeric
|
634
639
|
old_key = self.find{|k, v| (k-key.to_f).abs < Float::EPSILON}
|
635
640
|
if old_key
|
636
641
|
super(old_key[0].to_f, var)
|
@@ -642,9 +647,11 @@ class FloatHash < Hash
|
|
642
647
|
def [](key)
|
643
648
|
# # # super(key.to_f)
|
644
649
|
# raise TypeError unless key.class == Float
|
645
|
-
old_key = self.find{|k, v| (k-key.to_f).abs < Float::EPSILON}
|
650
|
+
#old_key = self.find{|k, v| (k-key.to_f).abs < Float::EPSILON}
|
651
|
+
raise TypeError unless key.kind_of? Numeric
|
652
|
+
old_key = self.keys.inject{|o, n| ((o-key).abs < (n-key).abs) ? o : n }
|
646
653
|
if old_key
|
647
|
-
return super(old_key
|
654
|
+
return super(old_key)
|
648
655
|
else
|
649
656
|
return nil
|
650
657
|
end
|
data/rubyhacks.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "rubyhacks"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Edmund Highcock"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2013-08-15"
|
13
13
|
s.description = "A collection of handy little hacks to Ruby objects. Does not modify default behaviours."
|
14
14
|
s.email = "edmundhighcock@sourceforge.net"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -33,7 +33,7 @@ Gem::Specification.new do |s|
|
|
33
33
|
s.homepage = "http://github.com/edmundhighcock/rubyhacks"
|
34
34
|
s.licenses = ["MIT"]
|
35
35
|
s.require_paths = ["lib"]
|
36
|
-
s.rubygems_version = "1.8.
|
36
|
+
s.rubygems_version = "1.8.23"
|
37
37
|
s.summary = "A collection of handy little hacks to Ruby objects."
|
38
38
|
|
39
39
|
if s.respond_to? :specification_version then
|
data/test/test_rubyhacks.rb
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
3
|
class TestRubyhacks < Test::Unit::TestCase
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
def test_float_hash
|
5
|
+
fh = FloatHash.new
|
6
|
+
fh[0.4325] = 0.2342437
|
7
|
+
fh[0.4232432] = 0.232443
|
8
|
+
assert_equal(0.2342437, fh[0.433])
|
9
|
+
assert_equal(0.2342437, fh[5.0])
|
10
|
+
assert_raise(TypeError){fh['bb'] = 55}
|
11
|
+
end
|
7
12
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyhacks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
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:
|
12
|
+
date: 2013-08-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: shoulda
|
@@ -111,7 +111,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
111
|
version: '0'
|
112
112
|
segments:
|
113
113
|
- 0
|
114
|
-
hash:
|
114
|
+
hash: 2841264561825389949
|
115
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
120
|
version: '0'
|
121
121
|
requirements: []
|
122
122
|
rubyforge_project:
|
123
|
-
rubygems_version: 1.8.
|
123
|
+
rubygems_version: 1.8.23
|
124
124
|
signing_key:
|
125
125
|
specification_version: 3
|
126
126
|
summary: A collection of handy little hacks to Ruby objects.
|