spruz 0.1.3 → 0.1.5

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 CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.5
@@ -20,4 +20,5 @@ module Spruz
20
20
  require 'spruz/to_proc'
21
21
  require 'spruz/uniq_by'
22
22
  require 'spruz/write'
23
+ require 'spruz/deep_dup'
23
24
  end
@@ -0,0 +1,9 @@
1
+ module Spruz
2
+ module DeepDup
3
+ def deep_dup
4
+ Marshal.load(Marshal.dump(self))
5
+ rescue TypeError
6
+ return self
7
+ end
8
+ end
9
+ end
@@ -1,6 +1,6 @@
1
1
  module Spruz
2
2
  # Spruz version
3
- VERSION = '0.1.3'
3
+ VERSION = '0.1.5'
4
4
  VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
@@ -1,4 +1,5 @@
1
1
  require 'spruz'
2
+
2
3
  module Spruz
3
4
  require 'spruz/xt/blank'
4
5
  require 'spruz/xt/count_by'
@@ -13,4 +14,5 @@ module Spruz
13
14
  require 'spruz/xt/p'
14
15
  require 'spruz/xt/symbol_to_proc'
15
16
  require 'spruz/xt/write'
17
+ require 'spruz/xt/deep_dup'
16
18
  end
@@ -0,0 +1,7 @@
1
+ require 'spruz/deep_dup'
2
+
3
+ module Spruz
4
+ class ::Object
5
+ include Spruz::DeepDup
6
+ end
7
+ end
@@ -432,4 +432,23 @@ module Spruz
432
432
  assert_equal 3, "foo".full?(:size)
433
433
  end
434
434
  end
435
+
436
+
437
+ class BlankFullTest < Test::Unit::TestCase
438
+ require 'spruz/xt/deep_dup'
439
+
440
+ def test_deep_dup
441
+ a = [1,2,3]
442
+ assert_equal a, a.deep_dup
443
+ assert_not_same a, a.deep_dup
444
+ end
445
+
446
+ def test_deep_dup_proc
447
+ f = lambda { |x| 2 * x }
448
+ g = f.deep_dup
449
+ assert_equal f[3], g[3]
450
+ assert_equal f, g
451
+ assert_same f, g
452
+ end
453
+ end
435
454
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spruz
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 17
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 1
8
- - 3
9
- version: 0.1.3
9
+ - 5
10
+ version: 0.1.5
10
11
  platform: ruby
11
12
  authors:
12
13
  - Florian Frank
@@ -14,7 +15,7 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-06-14 00:00:00 +02:00
18
+ date: 2010-09-16 00:00:00 +02:00
18
19
  default_executable:
19
20
  dependencies: []
20
21
 
@@ -28,49 +29,51 @@ extra_rdoc_files:
28
29
  - README
29
30
  files:
30
31
  - bin/enum
31
- - VERSION
32
- - README
33
- - Rakefile
32
+ - install.rb
33
+ - lib/spruz/bijection.rb
34
+ - lib/spruz/count_by.rb
35
+ - lib/spruz/deep_dup.rb
36
+ - lib/spruz/generator.rb
37
+ - lib/spruz/go.rb
38
+ - lib/spruz/hash_union.rb
34
39
  - lib/spruz/limited.rb
40
+ - lib/spruz/memoize.rb
41
+ - lib/spruz/minimize.rb
42
+ - lib/spruz/module_group.rb
35
43
  - lib/spruz/null.rb
36
- - lib/spruz/time_dummy.rb
44
+ - lib/spruz/once.rb
45
+ - lib/spruz/p.rb
46
+ - lib/spruz/partial_application.rb
47
+ - lib/spruz/round.rb
37
48
  - lib/spruz/shuffle.rb
38
- - lib/spruz/to_proc.rb
39
- - lib/spruz/minimize.rb
40
49
  - lib/spruz/subhash.rb
41
- - lib/spruz/count_by.rb
42
- - lib/spruz/round.rb
43
- - lib/spruz/partial_application.rb
50
+ - lib/spruz/time_dummy.rb
51
+ - lib/spruz/to_proc.rb
44
52
  - lib/spruz/uniq_by.rb
45
- - lib/spruz/p.rb
46
- - lib/spruz/bijection.rb
47
- - lib/spruz/module_group.rb
48
- - lib/spruz/memoize.rb
49
- - lib/spruz/write.rb
50
- - lib/spruz/generator.rb
51
- - lib/spruz/hash_union.rb
52
53
  - lib/spruz/version.rb
53
- - lib/spruz/go.rb
54
+ - lib/spruz/write.rb
55
+ - lib/spruz/xt/blank.rb
56
+ - lib/spruz/xt/count_by.rb
57
+ - lib/spruz/xt/deep_dup.rb
58
+ - lib/spruz/xt/full.rb
59
+ - lib/spruz/xt/hash_union.rb
60
+ - lib/spruz/xt/irb.rb
54
61
  - lib/spruz/xt/null.rb
55
- - lib/spruz/xt/time_dummy.rb
62
+ - lib/spruz/xt/p.rb
63
+ - lib/spruz/xt/partial_application.rb
64
+ - lib/spruz/xt/round.rb
56
65
  - lib/spruz/xt/shuffle.rb
57
66
  - lib/spruz/xt/subhash.rb
58
- - lib/spruz/xt/count_by.rb
59
- - lib/spruz/xt/round.rb
60
- - lib/spruz/xt/partial_application.rb
61
- - lib/spruz/xt/uniq_by.rb
62
- - lib/spruz/xt/p.rb
63
- - lib/spruz/xt/blank.rb
64
67
  - lib/spruz/xt/symbol_to_proc.rb
68
+ - lib/spruz/xt/time_dummy.rb
69
+ - lib/spruz/xt/uniq_by.rb
65
70
  - lib/spruz/xt/write.rb
66
- - lib/spruz/xt/hash_union.rb
67
- - lib/spruz/xt/full.rb
68
- - lib/spruz/xt/irb.rb
69
- - lib/spruz/once.rb
70
71
  - lib/spruz/xt.rb
71
72
  - lib/spruz.rb
73
+ - Rakefile
74
+ - README
72
75
  - tests/test_spruz.rb
73
- - install.rb
76
+ - VERSION
74
77
  has_rdoc: true
75
78
  homepage: http://flori.github.com/spruz
76
79
  licenses: []
@@ -84,23 +87,27 @@ rdoc_options:
84
87
  require_paths:
85
88
  - lib
86
89
  required_ruby_version: !ruby/object:Gem::Requirement
90
+ none: false
87
91
  requirements:
88
92
  - - ">="
89
93
  - !ruby/object:Gem::Version
94
+ hash: 3
90
95
  segments:
91
96
  - 0
92
97
  version: "0"
93
98
  required_rubygems_version: !ruby/object:Gem::Requirement
99
+ none: false
94
100
  requirements:
95
101
  - - ">="
96
102
  - !ruby/object:Gem::Version
103
+ hash: 3
97
104
  segments:
98
105
  - 0
99
106
  version: "0"
100
107
  requirements: []
101
108
 
102
109
  rubyforge_project:
103
- rubygems_version: 1.3.6
110
+ rubygems_version: 1.3.7
104
111
  signing_key:
105
112
  specification_version: 3
106
113
  summary: Useful stuff.