yamlook 0.0.1 → 0.0.2
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 +4 -4
- data/lib/yamlook/node.rb +7 -7
- data/lib/yamlook/node_list.rb +8 -10
- data/lib/yamlook/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d23b18e7844fe59fd4e63d9031a8664748974e4701177a55d1fe130fcf6230e
|
4
|
+
data.tar.gz: 45ec40c52375b01174e55fa3a06774de919617e19a48580bed1b07b3029f075b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a685cdb2af04bea727585f6ee62dff5cb2df9fdc7f2071bb8232bbc765c459a4a42ed00cfe9f17bea4909d6d58098b0ff0b966c878efc59a39f40b91fe3a9a3b
|
7
|
+
data.tar.gz: dbf70802c820a5a381788d7242c5fd8156dade79e2ca1e9b5c1a2be37e7de1bf729d5ff5bd7898a1b1af54000295fa7877a52a4cc92236756a7f4a62003b2d49
|
data/lib/yamlook/node.rb
CHANGED
@@ -6,13 +6,6 @@ module Yamlook
|
|
6
6
|
attr_reader :value, :line, :column
|
7
7
|
attr_accessor :filename
|
8
8
|
|
9
|
-
def initialize(value:, line:, column:, filename: nil)
|
10
|
-
@value = value
|
11
|
-
@line = line
|
12
|
-
@column = column
|
13
|
-
@filename = filename
|
14
|
-
end
|
15
|
-
|
16
9
|
def self.from_scalar(scalar)
|
17
10
|
return unless scalar
|
18
11
|
|
@@ -23,6 +16,13 @@ module Yamlook
|
|
23
16
|
)
|
24
17
|
end
|
25
18
|
|
19
|
+
def initialize(value:, line:, column:, filename: nil)
|
20
|
+
@value = value
|
21
|
+
@line = line
|
22
|
+
@column = column
|
23
|
+
@filename = filename
|
24
|
+
end
|
25
|
+
|
26
26
|
def to_s
|
27
27
|
"#{filename}:#{line}:#{column}\n#{value}"
|
28
28
|
end
|
data/lib/yamlook/node_list.rb
CHANGED
@@ -8,6 +8,10 @@ module Yamlook
|
|
8
8
|
class NodeList
|
9
9
|
attr_reader :nodes
|
10
10
|
|
11
|
+
def self.from_mapping(mapping)
|
12
|
+
new(mapping.children)
|
13
|
+
end
|
14
|
+
|
11
15
|
def initialize(nodes)
|
12
16
|
@nodes = nodes
|
13
17
|
end
|
@@ -16,11 +20,10 @@ module Yamlook
|
|
16
20
|
keys.map.with_index do |_, index|
|
17
21
|
key = keys[0..index].join('.')
|
18
22
|
rest_keys = keys[index + 1..-1]
|
19
|
-
|
20
23
|
result = find(key)
|
21
24
|
|
22
25
|
case result
|
23
|
-
when
|
26
|
+
when Mapping then NodeList.from_mapping(result).search(rest_keys)
|
24
27
|
when Scalar then Node.from_scalar(result)
|
25
28
|
end
|
26
29
|
end
|
@@ -29,16 +32,11 @@ module Yamlook
|
|
29
32
|
private
|
30
33
|
|
31
34
|
def find(key)
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
result = nodes[scalar_index + 1]
|
36
|
-
return NodeList.new(result.children) if result.is_a?(Mapping)
|
37
|
-
|
38
|
-
result
|
35
|
+
key_node_index = find_key_node_index(key)
|
36
|
+
nodes[key_node_index + 1] if key_node_index
|
39
37
|
end
|
40
38
|
|
41
|
-
def
|
39
|
+
def find_key_node_index(key)
|
42
40
|
nodes.find_index { |node| node.is_a?(Scalar) && node.value == key }
|
43
41
|
end
|
44
42
|
end
|
data/lib/yamlook/version.rb
CHANGED