spruz 0.2.8 → 0.2.9
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +4 -2
- data/VERSION +1 -1
- data/lib/spruz/version.rb +1 -1
- data/lib/spruz/xt.rb +1 -0
- data/lib/spruz/xt/named.rb +33 -0
- data/spruz.gemspec +10 -10
- data/tests/test_spruz.rb +29 -0
- metadata +6 -5
data/Rakefile
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
+
# vim: set filetype=ruby et sw=2 ts=2:
|
2
|
+
|
1
3
|
begin
|
2
|
-
require '
|
4
|
+
require 'rubygems/package_task'
|
3
5
|
rescue LoadError
|
4
6
|
end
|
5
7
|
require 'rake/clean'
|
@@ -61,7 +63,7 @@ if defined? Gem
|
|
61
63
|
end
|
62
64
|
end
|
63
65
|
|
64
|
-
|
66
|
+
Gem::PackageTask.new(spec) do |pkg|
|
65
67
|
pkg.need_tar = true
|
66
68
|
pkg.package_files += PKG_FILES
|
67
69
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.9
|
data/lib/spruz/version.rb
CHANGED
data/lib/spruz/xt.rb
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
class Object
|
2
|
+
if RUBY_VERSION >= '1.9'
|
3
|
+
def named(name, method, *args, &named_block)
|
4
|
+
extend Module.new {
|
5
|
+
define_method(name) do |*rest, &block|
|
6
|
+
block = named_block if named_block
|
7
|
+
__send__(method, *(args + rest), &block)
|
8
|
+
end
|
9
|
+
}
|
10
|
+
end
|
11
|
+
else
|
12
|
+
def named(name, method, *args, &block)
|
13
|
+
extend Module.new { define_method(name) { |*rest| __send__(method, *(args + rest), &block) } }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
class Module
|
19
|
+
if RUBY_VERSION >= '1.9'
|
20
|
+
def named(name, method, *args, &named_block)
|
21
|
+
include Module.new {
|
22
|
+
define_method(name) do |*rest, &block|
|
23
|
+
block = named_block if named_block
|
24
|
+
__send__(method, *(args + rest), &block)
|
25
|
+
end
|
26
|
+
}
|
27
|
+
end
|
28
|
+
else
|
29
|
+
def named(name, method, *args, &block)
|
30
|
+
include Module.new { define_method(name) { |*rest| __send__(method, *(args + rest), &block) } }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/spruz.gemspec
CHANGED
@@ -2,22 +2,22 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{spruz}
|
5
|
-
s.version = "0.2.
|
5
|
+
s.version = "0.2.9"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = [
|
9
|
-
s.date = %q{2011-05
|
8
|
+
s.authors = [%q{Florian Frank}]
|
9
|
+
s.date = %q{2011-07-05}
|
10
10
|
s.description = %q{All the stuff that isn't good/big enough for a real library.}
|
11
11
|
s.email = %q{flori@ping.de}
|
12
|
-
s.executables = [
|
13
|
-
s.extra_rdoc_files = [
|
14
|
-
s.files = [
|
12
|
+
s.executables = [%q{enum}]
|
13
|
+
s.extra_rdoc_files = [%q{README}]
|
14
|
+
s.files = [%q{tests}, %q{tests/test_spruz_memoize.rb}, %q{tests/test_spruz.rb}, %q{LICENSE}, %q{Rakefile}, %q{spruz.gemspec}, %q{lib}, %q{lib/spruz.rb}, %q{lib/spruz}, %q{lib/spruz/hash_symbolize_keys_recursive.rb}, %q{lib/spruz/hash_union.rb}, %q{lib/spruz/write.rb}, %q{lib/spruz/version.rb}, %q{lib/spruz/round.rb}, %q{lib/spruz/go.rb}, %q{lib/spruz/generator.rb}, %q{lib/spruz/shuffle.rb}, %q{lib/spruz/deep_dup.rb}, %q{lib/spruz/memoize.rb}, %q{lib/spruz/subhash.rb}, %q{lib/spruz/bijection.rb}, %q{lib/spruz/limited.rb}, %q{lib/spruz/attempt.rb}, %q{lib/spruz/to_proc.rb}, %q{lib/spruz/module_group.rb}, %q{lib/spruz/null.rb}, %q{lib/spruz/xt.rb}, %q{lib/spruz/once.rb}, %q{lib/spruz/xt}, %q{lib/spruz/xt/named.rb}, %q{lib/spruz/xt/hash_symbolize_keys_recursive.rb}, %q{lib/spruz/xt/hash_union.rb}, %q{lib/spruz/xt/write.rb}, %q{lib/spruz/xt/irb.rb}, %q{lib/spruz/xt/round.rb}, %q{lib/spruz/xt/shuffle.rb}, %q{lib/spruz/xt/deep_dup.rb}, %q{lib/spruz/xt/symbol_to_proc.rb}, %q{lib/spruz/xt/subhash.rb}, %q{lib/spruz/xt/attempt.rb}, %q{lib/spruz/xt/null.rb}, %q{lib/spruz/xt/p.rb}, %q{lib/spruz/xt/partial_application.rb}, %q{lib/spruz/xt/time_dummy.rb}, %q{lib/spruz/xt/full.rb}, %q{lib/spruz/xt/range_plus.rb}, %q{lib/spruz/xt/count_by.rb}, %q{lib/spruz/xt/blank.rb}, %q{lib/spruz/xt/uniq_by.rb}, %q{lib/spruz/p.rb}, %q{lib/spruz/minimize.rb}, %q{lib/spruz/partial_application.rb}, %q{lib/spruz/time_dummy.rb}, %q{lib/spruz/range_plus.rb}, %q{lib/spruz/count_by.rb}, %q{lib/spruz/uniq_by.rb}, %q{bin}, %q{bin/enum}, %q{README}, %q{VERSION}, %q{install.rb}]
|
15
15
|
s.homepage = %q{http://flori.github.com/spruz}
|
16
|
-
s.rdoc_options = [
|
17
|
-
s.require_paths = [
|
18
|
-
s.rubygems_version = %q{1.
|
16
|
+
s.rdoc_options = [%q{--title}, %q{Spruz}, %q{--main}, %q{README}]
|
17
|
+
s.require_paths = [%q{lib}]
|
18
|
+
s.rubygems_version = %q{1.8.5}
|
19
19
|
s.summary = %q{Useful stuff.}
|
20
|
-
s.test_files = [
|
20
|
+
s.test_files = [%q{tests/test_spruz_memoize.rb}, %q{tests/test_spruz.rb}]
|
21
21
|
|
22
22
|
if s.respond_to? :specification_version then
|
23
23
|
s.specification_version = 3
|
data/tests/test_spruz.rb
CHANGED
@@ -544,4 +544,33 @@ module Spruz
|
|
544
544
|
assert_equal((1..5).to_a, (1...3) + (3..5))
|
545
545
|
end
|
546
546
|
end
|
547
|
+
|
548
|
+
class NamedTest < Test::Unit::TestCase
|
549
|
+
require 'spruz/xt/named'
|
550
|
+
|
551
|
+
def test_named_simple
|
552
|
+
a = [ 1, 2, 3 ]
|
553
|
+
a.named(:plus1, :map) { |x| x + 1 }
|
554
|
+
assert_equal [ 2, 3, 4 ], a.plus1
|
555
|
+
Array.named(:odd, :select) { |x| x % 2 == 1 }
|
556
|
+
assert_equal [ 3 ], a.plus1.odd
|
557
|
+
end
|
558
|
+
|
559
|
+
if RUBY_VERSION >= '1.9'
|
560
|
+
def foo(x, y, &block)
|
561
|
+
block.call x * y
|
562
|
+
end
|
563
|
+
|
564
|
+
def test_more_complex
|
565
|
+
Object.named(:foo_with_block, :foo) do |z|
|
566
|
+
z ** 2
|
567
|
+
end
|
568
|
+
assert_equal foo(2, 3) { |z| z ** 2 }, foo_with_block(2, 3)
|
569
|
+
Object.named(:foo_23, :foo, 2, 3)
|
570
|
+
assert_equal foo(2, 3) { |z| z ** 2 }, foo_23 { |z| z ** 2 }
|
571
|
+
Object.named(:foo_2, :foo, 2)
|
572
|
+
assert_equal foo(2, 3) { |z| z ** 2 }, foo_2(3) { |z| z ** 2 }
|
573
|
+
end
|
574
|
+
end
|
575
|
+
end
|
547
576
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spruz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 9
|
10
|
+
version: 0.2.9
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Florian Frank
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-07-05 00:00:00 Z
|
19
19
|
dependencies: []
|
20
20
|
|
21
21
|
description: All the stuff that isn't good/big enough for a real library.
|
@@ -52,6 +52,7 @@ files:
|
|
52
52
|
- lib/spruz/null.rb
|
53
53
|
- lib/spruz/xt.rb
|
54
54
|
- lib/spruz/once.rb
|
55
|
+
- lib/spruz/xt/named.rb
|
55
56
|
- lib/spruz/xt/hash_symbolize_keys_recursive.rb
|
56
57
|
- lib/spruz/xt/hash_union.rb
|
57
58
|
- lib/spruz/xt/write.rb
|
@@ -114,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
115
|
requirements: []
|
115
116
|
|
116
117
|
rubyforge_project:
|
117
|
-
rubygems_version: 1.8.
|
118
|
+
rubygems_version: 1.8.5
|
118
119
|
signing_key:
|
119
120
|
specification_version: 3
|
120
121
|
summary: Useful stuff.
|