map_by_method 0.1.0 → 0.4.0

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.
@@ -1,7 +1,7 @@
1
1
  module MapByMethod #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 1
4
+ MINOR = 4
5
5
  TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
data/lib/map_by_method.rb CHANGED
@@ -8,9 +8,9 @@ module MapByMethod
8
8
  rescue NoMethodError
9
9
  error = $!
10
10
  begin
11
- re = /(map|collect|select|each|reject)_([\\w\\_]+\\??)/
11
+ re = /(map|collect|select|each|reject)(_by)?_([\\w\\_]+\\??)/
12
12
  if (match = method.to_s.match(re))
13
- iterator, callmethod = match[1..2]
13
+ iterator, callmethod = match[1], match[3]
14
14
  return self.send(iterator) {|item| item.send callmethod}
15
15
  end
16
16
  return self.map {|item| item.send method.to_s.singularize.to_sym}
@@ -0,0 +1,31 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class MapByMethodTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ end
7
+
8
+ def test_map
9
+ assert_equal ['1','2','3'], [1,2,3].map_to_s
10
+ assert_equal ['1','2','3'], [1,2,3].map_by_to_s
11
+ assert_equal ['1','2','3'], [1,2,3].to_ss
12
+ end
13
+
14
+ def test_collect
15
+ assert_equal ['1','2','3'], [1,2,3].collect_to_s
16
+ assert_equal ['1','2','3'], [1,2,3].collect_by_to_s
17
+ end
18
+
19
+ def test_reject
20
+ assert_equal [1,3], [1,nil,3].reject_nil?
21
+ assert_equal [1,3], [1,nil,3].reject_by_nil?
22
+ assert_equal [1,3], [1,0,3].reject_zero?
23
+ assert_equal [1,3], [1,0,3].reject_by_zero?
24
+ end
25
+
26
+ def test_select
27
+ assert_equal [nil], [1,nil,3].select_nil?
28
+ assert_equal ['1','3'], ['1','','3'].select_any?
29
+ assert_equal ['1','3'], ['1','','3'].select_by_any?
30
+ end
31
+ end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: map_by_method
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.0
7
- date: 2006-10-10 00:00:00 +02:00
6
+ version: 0.4.0
7
+ date: 2006-10-11 00:00:00 +02:00
8
8
  summary: description of gem
9
9
  require_paths:
10
10
  - lib
@@ -33,6 +33,7 @@ files:
33
33
  - Rakefile
34
34
  - test/all_tests.rb
35
35
  - test/test_helper.rb
36
+ - test/map_by_method_test.rb
36
37
  - lib/map_by_method.rb
37
38
  - lib/map_by_method
38
39
  - lib/map_by_method/version.rb