spruz 0.2.8 → 0.2.9
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/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.
|