node_mutation 1.8.0 → 1.8.1

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: ff377f6938abd45d3c9de294e7f2aa495733ff48f95a36939bf38bae63f84e90
4
- data.tar.gz: a4981d65f8b36882e5b9cf105a89798f14bf591716bb66cc0b8a2e0d029f9339
3
+ metadata.gz: e468a837b5ab1417a0675f92ae5848b87b66cfe9605a3ce56142f58859ba7036
4
+ data.tar.gz: 898a9e080a406c84027b3ea84bf76826c8deb2ea36c406a767774c7610809dea
5
5
  SHA512:
6
- metadata.gz: 1987c04293979252253faa150cef7309f31fe3b66abb6f2c17274f9eb1b486025f2be36867dfa6fc665a90ac84555b8234318be44165f798388f6b88e4d8c952
7
- data.tar.gz: 30c8ac0e01b00390a959728ff82e6a4d3d263b1e46b56c111e600a40ebaab883b09652ff74f60636fecd6371d5dab6d31e32bdff335c353339c469c72fd67618
6
+ metadata.gz: 40498dd85e42e77268ed72851692c906221e2ea167765867155a30c0e992b6e4a8c4e89cfee7295743dd94f6d3405dcaeabeb845be3a3dc1a7cb473983ba6bf2
7
+ data.tar.gz: f99ba22c58428b002285e9dd6e959b993725216265457d2df8a4b7fd934537861ca04ce6955bedc8dea0fb29efb0174e44a53a7ae6e07c9aad2e68daa2dab154
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # NodeMutation
2
2
 
3
+ ## 1.8.1 (2022-12-26)
4
+
5
+ * `child_node_by_name` index starts from `0`
6
+
3
7
  ## 1.8.0 (2022-12-26)
4
8
 
5
9
  * `child_node_range` index starts from `0`
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- node_mutation (1.8.0)
4
+ node_mutation (1.8.1)
5
5
  activesupport (< 7.0.0)
6
6
  erubis
7
7
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ INDEX_REGEXP = /\A-?\d+\z/
4
+
3
5
  class NodeMutation::ParserAdapter < NodeMutation::Adapter
4
6
  def get_source(node)
5
7
  if node.is_a?(Array)
@@ -60,7 +62,7 @@ class NodeMutation::ParserAdapter < NodeMutation::Adapter
60
62
  direct_child_name, nested_child_name = child_name.to_s.split('.', 2)
61
63
 
62
64
  if node.is_a?(Array)
63
- if direct_child_name =~ /\A-?\d+\z/
65
+ if direct_child_name =~ INDEX_REGEXP
64
66
  child_node = node[direct_child_name.to_i]
65
67
  raise NodeMutation::MethodNotSupported, "#{direct_child_name} is not supported for #{get_source(node)}" unless child_node
66
68
  return child_node_range(child_node, nested_child_name) if nested_child_name
@@ -163,8 +165,8 @@ class NodeMutation::ParserAdapter < NodeMutation::Adapter
163
165
  direct_child_name, nested_child_name = child_name.to_s.split('.', 2)
164
166
 
165
167
  if node.is_a?(Array)
166
- if direct_child_name =~ /\A\d+\z/
167
- child_node = node[direct_child_name.to_i - 1]
168
+ if direct_child_name =~ INDEX_REGEXP
169
+ child_node = node[direct_child_name.to_i]
168
170
  raise NodeMutation::MethodNotSupported, "#{direct_child_name} is not supported for #{get_source(node)}" unless child_node
169
171
  return child_node_by_name(child_node, nested_child_name) if nested_child_name
170
172
  return child_node
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class NodeMutation
4
- VERSION = "1.8.0"
4
+ VERSION = "1.8.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: node_mutation
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang