diffable_array 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6a49bfa81326b864fbe178d2dee4fe10ad355355
4
- data.tar.gz: 68300ffb39d6119d5461ad33550caba7cf87918f
3
+ metadata.gz: 1aed92199321b16e3de305f3b2c2f4de4330616a
4
+ data.tar.gz: 3dfa8aca72bc8c3e482df372042e25fdcd782661
5
5
  SHA512:
6
- metadata.gz: 1f229c36d18dedaf02868d2ad4317bc6224850928e8ace1c7f2f4ded5c7893b08dec054f041416136bb05e3c92aa708e4dece46d97ab602689b1eac1caacbdd5
7
- data.tar.gz: 4f233f8ff27f18b891fa998b45a6a7632e471207ce5c22ead5880998eb690461b48879e15905306ac29116ac687bdbea6b7c0a0adb235af53f6d9be8da62392a
6
+ metadata.gz: 3c387e04553bbd0af37b7a835d2faff23c6dbebcac57828087d6d5a43453db8f7ff18d0683fac2654c8ca8c58fa8fbcc001688fcb117540864480b6dee5fb1e3
7
+ data.tar.gz: 0861bbb4e5e5537e50d4cae993fa534068427e6f4afa4c32d9ab96ef39ad1c977a9cd0c2c5a453b78effe94ba67f674f0f9097b74e9ae86069ee5a1434e5791a
@@ -0,0 +1,26 @@
1
+ class DiffableArray < Array
2
+ def diff_merge(array)
3
+ me = self.dup
4
+ other = array.dup
5
+ new_array = DiffableArray.new
6
+
7
+ until me.length == 0 && other.length == 0
8
+ new_array |= me + other if me.empty? || other.empty?
9
+ break if other.empty? || me.empty?
10
+
11
+ element = if other[1..-1].include?(me.first) && !me[1..-1].include?(other.first)
12
+ other.slice!(0)
13
+ else
14
+ me.slice!(0)
15
+ end
16
+
17
+ new_array << element
18
+ end
19
+
20
+ new_array.uniq
21
+ end
22
+
23
+ def diff_merge!(array)
24
+ self.replace(diff_merge(array))
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  class DiffableArray < Array
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: diffable_array
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Barber
@@ -66,6 +66,7 @@ files:
66
66
  - README.md
67
67
  - Rakefile
68
68
  - diffable_array.gemspec
69
+ - diffable_array.rb
69
70
  - lib/diffable_array.rb
70
71
  - lib/diffable_array/version.rb
71
72
  - spec/diffable_array_spec.rb