node_mutation 1.6.1 → 1.6.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
  SHA256:
3
- metadata.gz: 1a919cd77334f1c935135667972c64670f1513a31c63dde2a71405dcb165077f
4
- data.tar.gz: ce7faaade885a41905b1371b04cb2c94962cd044404f754a6bd1d0537b6c871a
3
+ metadata.gz: 7b2edcdadf3b7283b4446c8b0da41cb72daa4da3c180042b9e896973a8132cba
4
+ data.tar.gz: 3fc7cfe62f0e7ea6699b1d3bb9a918f14d1d451bd045b5d82cf09237db3a5c5e
5
5
  SHA512:
6
- metadata.gz: ee3c31054d31ba1b997e366f3c2ac0fd4d6b3587f9f49e59d12d72a23cb8b8d4b1f12dcfb7f5d72440cbd867b4ed5ef01e19cfcdfbaa11a9c3d4b7db53c047e6
7
- data.tar.gz: 2295e27670dbaa6be22ef320cd3e13cbb69e86fcf2f8824f8be4ada1607deb98fa7d6d1891bb3a4360debd37abf5876f155276ddd7bf45b0aac6667df67920af
6
+ metadata.gz: 7d04f31b6f9983e66555cfa640c52af13546cb066468b657db99f6dffcff5d1513a26a6f3bcb58c433b6a700e8db544e638807e9e3ccd30578a979fec0cc58e4
7
+ data.tar.gz: a35fb59ca28655346782ea46410b34784c965f06b00f66ba6b70a5647695a20e5cfcdf4010a32cf7f4fbf9c44ca3d1e4a37db1860a46f16db1ee8149994bb05c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # NodeMutation
2
2
 
3
+ ## 1.6.2 (2022-10-25)
4
+
5
+ * Mark same position as conflict action
6
+
3
7
  ## 1.6.1 (2022-10-24)
4
8
 
5
9
  * Better error message when node does not respond to a key
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- node_mutation (1.6.1)
4
+ node_mutation (1.6.2)
5
5
  activesupport (< 7.0.0)
6
6
  erubis
7
7
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class NodeMutation
4
- VERSION = "1.6.1"
4
+ VERSION = "1.6.2"
5
5
  end
data/lib/node_mutation.rb CHANGED
@@ -262,13 +262,19 @@ class NodeMutation
262
262
  conflict_actions = []
263
263
  return [] if i < 0
264
264
 
265
- start = @actions[i].start
265
+ begin_pos = @actions[i].start
266
+ end_pos = @actions[i].end
266
267
  while j > -1
267
- if start < @actions[j].end
268
+ # if we have two insert actions at same position.
269
+ same_position = begin_pos == @actions[j].start && begin_pos == end_pos && @actions[j].start == @actions[j].end
270
+ # if we have two actions with overlapped range.
271
+ overlapped_position = begin_pos < @actions[j].end
272
+ if same_position || overlapped_position
268
273
  conflict_actions << @actions.delete_at(j)
269
274
  else
270
275
  i = j
271
- start = @actions[i].start
276
+ begin_pos = @actions[i].start
277
+ end_pos = @actions[i].end
272
278
  end
273
279
  j -= 1
274
280
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: node_mutation
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-23 00:00:00.000000000 Z
11
+ date: 2022-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport