ludy 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,11 +1,15 @@
1
1
 
2
2
  ==============================
3
3
  ludy TODO
4
- Proc#bind
5
4
  multi
6
5
  chain travel
7
6
  method hook
8
7
 
8
+ ==============================
9
+ ludy 0.0.9, 2008.01.07
10
+
11
+ Proc#bind added, see test/tc_bind.rb
12
+
9
13
  ==============================
10
14
  ludy 0.0.8, 2007.12.06
11
15
 
data/lib/ludy/bind.rb ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Copyright (c) 2008, Lin Jen-Shin(a.k.a. godfat 真常)
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ class Proc
18
+ def bind *args
19
+ lambda{ |*new_args|
20
+ self[*(args.map{ |arg|
21
+ if (arg.kind_of? Symbol) && arg.to_s =~ /^_(\d+)$/
22
+ # is placeholder
23
+ new_args[$1.to_i-1]
24
+ else
25
+ # is not placeholder
26
+ arg
27
+ end
28
+ } + new_args).first(self.arity)]
29
+ }
30
+ end
31
+ end
data/ludy.gemspec CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
 
3
3
  # Copyright (c) 2007, Lin Jen-Shin(a.k.a. godfat 真常)
4
4
  #
@@ -17,8 +17,9 @@
17
17
  require 'rubygems'
18
18
 
19
19
  spec = Gem::Specification.new{|s|
20
+ s.rubyforge_project = 'ludy'
20
21
  s.name = 'ludy'
21
- s.version = '0.0.8'
22
+ s.version = '0.0.9'
22
23
  s.author = 'Lin Jen-Shin(a.k.a. godfat)'
23
24
  s.email = 'strip number: 135godfat7911@246godfat.890org'
24
25
  s.homepage = 'http://ludy.rubyforge.org/'
@@ -31,7 +32,6 @@ spec = Gem::Specification.new{|s|
31
32
  }
32
33
 
33
34
  s.require_path = 'lib'
34
- s.autorequire = 'ludy'
35
35
  s.test_file = 'test/ts_ludy.rb'
36
36
  s.has_rdoc = false
37
37
  # s.extra_rdoc_files = []
data/test/tc_bind.rb ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Copyright (c) 2008, Lin Jen-Shin(a.k.a. godfat 真常)
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require 'test/unit'
18
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'ludy')
19
+ require_ludy 'bind'
20
+
21
+ class TestCppBind < Test::Unit::TestCase
22
+ def test_basic
23
+ assert_equal [9,8,7], ([1,2,3].map &(lambda{|lhs, rhs| lhs-rhs}.bind 10, :_1))
24
+ assert_equal [3,2,1], (lambda{|a,b,c| [a,b,c]}.bind :_3, :_2, :_1)[1,2,3]
25
+ assert_equal [1,9,3], (lambda{|a,b,c| [a,b,c]}.bind :_1, 9, :_3)[1,2,3]
26
+ assert_equal [9,2,3], (lambda{|a,b,c| [a,b,c]}.bind 9)[2,3]
27
+ assert_equal [9,4,2], (lambda{|a,b,c| [a,b,c]}.bind 9, :_3)[2,3,4]
28
+ end
29
+ end
data/test/tc_ludy_ext.rb CHANGED
@@ -135,14 +135,14 @@ class TestLudyExt < Test::Unit::TestCase
135
135
  def test_unzip_and_untranspose
136
136
  a = [1,2,3]
137
137
  b = %w{a b c}
138
- assert_equal [a, b], a.zip(b).untranspose
138
+ assert_equal [a, b], a.zip(b).to_a.untranspose
139
139
  assert_equal [a, b], [a, b].transpose.untranspose
140
- assert_equal a, a.zip(b).unzip
140
+ assert_equal a, a.zip(b).to_a.unzip
141
141
 
142
142
  c = [nil, false, true]
143
- assert_equal [a, b, c], a.zip(b, c).untranspose
143
+ assert_equal [a, b, c], a.zip(b, c).to_a.untranspose
144
144
  assert_equal [a, b, c], [a, b, c].transpose.untranspose
145
- assert_equal a, a.zip(b, c).unzip
145
+ assert_equal a, a.zip(b, c).to_a.unzip
146
146
  end
147
147
 
148
148
  def test_id_and_m
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ludy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lin Jen-Shin(a.k.a. godfat)
8
- autorequire: ludy
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2007-12-06 00:00:00 +08:00
12
+ date: 2008-01-07 00:00:00 +08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -28,6 +28,7 @@ files:
28
28
  - lib/lib/smulti.rb
29
29
  - lib/ludy
30
30
  - lib/ludy/aspect.rb
31
+ - lib/ludy/bind.rb
31
32
  - lib/ludy/callstack.rb
32
33
  - lib/ludy/curry.rb
33
34
  - lib/ludy/dice.rb
@@ -47,6 +48,7 @@ files:
47
48
  - lib/puzzle_generator/misc.rb
48
49
  - lib/puzzle_generator/puzzle.rb
49
50
  - lib/puzzle_generator.rb
51
+ - test/tc_bind.rb
50
52
  - test/tc_callstack.rb
51
53
  - test/tc_curry.rb
52
54
  - test/tc_dice.rb
@@ -87,8 +89,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
87
89
  version:
88
90
  requirements: []
89
91
 
90
- rubyforge_project:
91
- rubygems_version: 0.9.5
92
+ rubyforge_project: ludy
93
+ rubygems_version: 1.0.1
92
94
  signing_key:
93
95
  specification_version: 2
94
96
  summary: Aims to extend Ruby standard library, providing some useful tools that's not existed in the standard library.