spruz 0.1.3 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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.