safe_dup 0.0.2 → 0.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cf5c446b84f98473efdc4be779f14f01cbb39c54
4
- data.tar.gz: bcdeb89a7674518782642ed1a89c744bf7063782
3
+ metadata.gz: c853b9fa3c84641d0a931c20bb808415cabe1eae
4
+ data.tar.gz: 803608d0f50cc8002f5528001bb7d8bff0c10058
5
5
  SHA512:
6
- metadata.gz: 8ed82120fb15e78532bd33d0be142e0efe6a203d8142ad0b54ccd6e89fde735dd5fa29c58c298fc4d5fad9a38880b1a451628efe7f25f7a99ff76f9256e57127
7
- data.tar.gz: 091a6a95d5073f772ab074c9878d5047acb48573b84a069c1d391661b5baa46f4d3373633575812bd488731dc3c47705d9799abff47fddd0eca122c96f4fca3d
6
+ metadata.gz: cdf8de453fc428b4025592c6d8c3ace6aa5e439ae96e124abdc2072cd55d247e3dc1027213224ba8bbfeda584a5c7b34a1a901fb3aab4968da6dc787a396df35
7
+ data.tar.gz: e2d4a33e4e06e55c9b4c7a737c08103926626fe22ee4799b141e089bf91e10107b37c71c52b861b81002dd51883646284bbb480db4b8bc50759949920d9168d0
data/README.md CHANGED
@@ -19,6 +19,28 @@ Modifying such a crucial method was considered too risky. Instead, the
19
19
  safe_dup method is introduced. This is done to reduce the possibility of
20
20
  breaking existing code that often occurs when monkey patching goes too far.
21
21
 
22
+ ## Family Overview
23
+
24
+ This gem is a member of a family of four gems that all provide data copying
25
+ services in a safe, easy to use format. The following outlines the available
26
+ gems and how to chose from among them.
27
+
28
+ Depth / Action | Need to copy all. | Need to copy data only.
29
+ ---------------|------------------------------|------------
30
+ Need a shallow copy | require 'safe\_clone' | require 'safe\_dup'
31
+ Need a full copy | require 'full\_clone' | require 'full\_dup'
32
+
33
+ <br>**Notes**
34
+ * Since none of these gems override the default clone and dup
35
+ methods, the default behaviors remain available. Further, if multiple,
36
+ differing requirements exists, more than one family member gem may be
37
+ employed in the same project without fear of conflict.
38
+ * If multiple family gems are employed, they will each need to be installed and
39
+ required into the application. See below for details.
40
+ * Meta-data attributes include the frozen status and singleton methods. However
41
+ the tainted status is always copied.
42
+
43
+
22
44
  ## Installation
23
45
 
24
46
  Add this line to your application's Gemfile:
@@ -33,6 +55,11 @@ Or install it yourself as:
33
55
 
34
56
  $ gem install safe_dup
35
57
 
58
+ The safe_dup gem is at: ( https://rubygems.org/gems/safe_dup )
59
+ <br>The safe_clone gem is at: ( https://rubygems.org/gems/safe_clone )
60
+ <br>The full_dup gem is at: ( https://rubygems.org/gems/full_dup )
61
+ <br>The full_clone gem is at: ( https://rubygems.org/gems/full_clone )
62
+
36
63
  ## Usage
37
64
 
38
65
  require 'safe_dup'
@@ -52,6 +79,12 @@ instead of
52
79
  It is actually pretty easy to determine where safe_dup needs to be used. It's
53
80
  those places where the dup method is generating unwanted exceptions.
54
81
 
82
+ ## Demo
83
+
84
+ A test bed for experimenting with the safe_dup gem is available as a rake task:
85
+
86
+ $ rake console
87
+
55
88
  ## Performance
56
89
  A reasonable question to raise is "How does safe\_dup compare with just
57
90
  catching the exception and handling it?" The benchmark sets a a realistic
data/irbt.rb ADDED
@@ -0,0 +1,20 @@
1
+ # coding: utf-8
2
+ # An IRB + safe_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 safe_dup loaded."
9
+
10
+ if ARGV[0] == 'local'
11
+ require_relative 'lib/safe_dup'
12
+ puts "safe_dup loaded locally: #{SafeDup::VERSION}"
13
+
14
+ ARGV.shift
15
+ else
16
+ require 'safe_dup'
17
+ puts "safe_dup loaded from gem: #{SafeDup::VERSION}"
18
+ end
19
+
20
+ IRB.start
@@ -1,3 +1,3 @@
1
1
  module SafeDup
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -8,7 +8,12 @@ Rake::TestTask.new do |t|
8
8
  t.verbose = false
9
9
  end
10
10
 
11
- desc "What version of full_clone is this?"
11
+ desc "Fire up an IRB session with safe_dup preloaded."
12
+ task :console do
13
+ system "ruby irbt.rb local"
14
+ end
15
+
16
+ desc "What version of safe_dup is this?"
12
17
  task :vers do |t|
13
18
  puts
14
19
  puts "safe_dup version = #{SafeDup::VERSION}"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: safe_dup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Camilleri
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-06 00:00:00.000000000 Z
11
+ date: 2016-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest_visible
@@ -77,10 +77,11 @@ files:
77
77
  - Gemfile
78
78
  - LICENSE.txt
79
79
  - README.md
80
- - Rakefile
81
80
  - bench/bench.rb
81
+ - irbt.rb
82
82
  - lib/safe_dup.rb
83
83
  - lib/safe_dup/version.rb
84
+ - rakefile.rb
84
85
  - safe_dup.gemspec
85
86
  - test/safe_dup_tests.rb
86
87
  homepage: http://teuthida-technologies.com/