undoer 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: 2e3bff7c14d643c61fbf3876bb7c7b5a438492c27ad285e301e376fe2cdc88fe
4
- data.tar.gz: 75aedf6315011aa7947302fed1e9b40e4ddf1b7234671c3b90367932aaf0bbe0
3
+ metadata.gz: 6df0463fbc08a6db2b6f4fdeb5b0eae05e5e40dae84bc11afb5c432cf5817171
4
+ data.tar.gz: f39d9981cfe54813e2425ec61c1523aba1aad9065058b8b4a8f2daaa00eb0b98
5
5
  SHA512:
6
- metadata.gz: '07709a8bc1436be343bae5a1d35efc83e685d52c64d75d2ca89755ad346852dcf4bbbb603a889182f5879e5b8d174c20de07a40d863021b3135c42925dc76c93'
7
- data.tar.gz: 424230cda4d5eb90ef1feae373b302d99bb4571f745df012a5cb196cbe19af70680e6aab6cbe7ca2df8eb98f0d6513ad96ed5edd4b6cc1e80594504adf8ed05d
6
+ metadata.gz: cb6f03726ac699eb34a7c452bbda0ad675bde9e4eb5eec1a4bb7c293050fef3bc9cab9349a70a3b2666bf60db826d9eeff2167617ac2ca588ffa3195e8d4160a
7
+ data.tar.gz: 2b9040bcb8b9fb1beb8cd1c51d8aecacc97298a799f371a222936da0016a8d51d3543e4833a1d1d00b377006238f96d88648fae60c59b6e39bc83b3a388fd96f
data/lib/array.rb ADDED
@@ -0,0 +1,10 @@
1
+ class Array
2
+ def deep_copy!(from)
3
+ raise ArgumentError unless from.is_a? Array
4
+ self.each_with_index do |item, index|
5
+ item.deep_copy!(from[index]) if item.is_a? Array
6
+ self[index] = from[index]
7
+ end
8
+ end
9
+ end
10
+
data/lib/class.rb ADDED
@@ -0,0 +1,8 @@
1
+ class Class
2
+ def deep_copy!(from)
3
+ self.class_variables.each do |class_var|
4
+ from_class_val = from.class_variable_get(class_var)
5
+ self.class_variable_set(class_var, from_class_val)
6
+ end
7
+ end
8
+ end
data/lib/hash.rb ADDED
@@ -0,0 +1,9 @@
1
+ class Hash
2
+ def deep_copy!(from)
3
+ raise ArgumentError unless from.is_a? Hash
4
+ self.each do |h|
5
+ h[1].deep_copy!(from[h[0]]) if h[1].is_a? Hash
6
+ self[h[0]] = from[h[0]]
7
+ end
8
+ end
9
+ end
data/lib/object.rb ADDED
@@ -0,0 +1,14 @@
1
+ class Object
2
+ def deep_copy!(from)
3
+ self.instance_variables.each do |instance_var|
4
+ from_instance_var = from.instance_variable_get(instance_var)
5
+ self.instance_variable_set(instance_var, from_instance_var)
6
+ end
7
+ end
8
+
9
+ def is_any?(*klasses)
10
+ klasses.flatten.any? do |klass|
11
+ self.is_a?(klass)
12
+ end
13
+ end
14
+ end
data/lib/string.rb ADDED
@@ -0,0 +1,5 @@
1
+ class String
2
+ def deep_copy!(from)
3
+ self.gsub!(self, from)
4
+ end
5
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: undoer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oleg Saltykov
@@ -16,6 +16,11 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
+ - lib/array.rb
20
+ - lib/class.rb
21
+ - lib/hash.rb
22
+ - lib/object.rb
23
+ - lib/string.rb
19
24
  - lib/undoer.rb
20
25
  homepage: https://github.com/nucleom42/undoer
21
26
  licenses: []