full_dup 0.0.1 → 0.0.2
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.
- checksums.yaml +4 -4
- data/README.md +28 -0
- data/full_dup.gemspec +2 -2
- data/irbt.rb +20 -0
- data/lib/full_dup/version.rb +1 -1
- data/rakefile.rb +5 -0
- metadata +18 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6016d05a101cc5acc8d46f46e2b3f3d64dece736
|
4
|
+
data.tar.gz: cd1ed57e57825607075f0913c83429c2379adee3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 602747e5742047dfd26232c8b17e434f2b8c77b02ab2f2c7d08b55a6fd4aa58c5086f332d7af93c849bca6753c237373c1cf678b3640f6c85825c1a9bbca9d9a
|
7
|
+
data.tar.gz: 7e45d7a4c1a7f0761b09fac8611fd9c69546a714310a7a4cda79eb1be435e25c1a8cfe8042137f2bda58ad56e4d7f9e23819d488a62af6a89d7f5b34e47a1f97
|
data/README.md
CHANGED
@@ -21,6 +21,27 @@ chains. To handle this, the code tracks object ID values and does not re-dup
|
|
21
21
|
data that has already been duped. Thus even nasty edge cases are handled
|
22
22
|
without any special effort on the part of the application programmer.
|
23
23
|
|
24
|
+
## Family Overview
|
25
|
+
|
26
|
+
This gem is a member of a family of four gems that all provide data copying
|
27
|
+
services in a safe, easy to use format. The following outlines the available
|
28
|
+
gems and how to chose from among them.
|
29
|
+
|
30
|
+
Depth / Action | Need to copy all. | Need to copy data only.
|
31
|
+
---------------|------------------------------|------------
|
32
|
+
Need a shallow copy | require 'safe\_clone' | require 'safe\_dup'
|
33
|
+
Need a full copy | require 'full\_clone' | require 'full\_dup'
|
34
|
+
|
35
|
+
<br>**Notes**
|
36
|
+
* Since none of these gems override the default clone and dup
|
37
|
+
methods, the default behaviors remain available. Further, if multiple,
|
38
|
+
differing requirements exists, more than one family member gem may be
|
39
|
+
employed in the same project without fear of conflict.
|
40
|
+
* If multiple family gems are employed, they will each need to be installed and
|
41
|
+
required into the application. See below for details.
|
42
|
+
* Meta-data attributes include the frozen status and singleton methods. However
|
43
|
+
the tainted status is always copied.
|
44
|
+
|
24
45
|
|
25
46
|
## Installation
|
26
47
|
|
@@ -38,6 +59,13 @@ Or install it yourself as:
|
|
38
59
|
|
39
60
|
$ gem install full_dup
|
40
61
|
|
62
|
+
The safe_dup gem is at: ( https://rubygems.org/gems/safe_dup )
|
63
|
+
<br>The safe_clone gem is at: ( https://rubygems.org/gems/safe_clone )
|
64
|
+
<br>The full_dup gem is at: ( https://rubygems.org/gems/full_dup )
|
65
|
+
<br>The full_clone gem is at: ( https://rubygems.org/gems/full_clone )
|
66
|
+
|
67
|
+
## Usage
|
68
|
+
|
41
69
|
require 'full_dup'
|
42
70
|
|
43
71
|
then, in those places where regular dup was problematic, use:
|
data/full_dup.gemspec
CHANGED
@@ -14,11 +14,11 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.homepage = "http://teuthida-technologies.com/"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test
|
18
|
-
spec.bindir = "exe"
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test)/}) }
|
19
18
|
spec.require_paths = ["lib"]
|
20
19
|
|
21
20
|
spec.add_development_dependency 'minitest_visible', ">= 0.1.0"
|
21
|
+
spec.add_development_dependency 'mini_readline', ">= 0.4.8"
|
22
22
|
spec.add_development_dependency "bundler", "~> 1.3"
|
23
23
|
spec.add_development_dependency "rake"
|
24
24
|
spec.add_development_dependency 'minitest', "~> 4.7.5"
|
data/irbt.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
# An IRB + full_dup test bed
|
3
|
+
|
4
|
+
require 'irb'
|
5
|
+
$force_alias_read_line_module = true
|
6
|
+
require 'mini_readline'
|
7
|
+
|
8
|
+
puts "Starting an IRB console with full_dup loaded."
|
9
|
+
|
10
|
+
if ARGV[0] == 'local'
|
11
|
+
require_relative 'lib/full_dup'
|
12
|
+
puts "full_dup loaded locally: #{FullDup::VERSION}"
|
13
|
+
|
14
|
+
ARGV.shift
|
15
|
+
else
|
16
|
+
require 'full_dup'
|
17
|
+
puts "full_dup loaded from gem: #{FullDup::VERSION}"
|
18
|
+
end
|
19
|
+
|
20
|
+
IRB.start
|
data/lib/full_dup/version.rb
CHANGED
data/rakefile.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: full_dup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Camilleri
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest_visible
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.1.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: mini_readline
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.4.8
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.4.8
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,6 +92,7 @@ files:
|
|
78
92
|
- LICENSE.txt
|
79
93
|
- README.md
|
80
94
|
- full_dup.gemspec
|
95
|
+
- irbt.rb
|
81
96
|
- lib/full_dup.rb
|
82
97
|
- lib/full_dup/array.rb
|
83
98
|
- lib/full_dup/hash.rb
|