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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 968d1897a00350db31375552a70066d04d14c4edd7e52406ed2188e4951bb3e2
4
- data.tar.gz: e45f29b9f4c56114fb8c5d546cc25d91f37c785575c1331879c774523b9ed8f6
3
+ metadata.gz: 0d23b18e7844fe59fd4e63d9031a8664748974e4701177a55d1fe130fcf6230e
4
+ data.tar.gz: 45ec40c52375b01174e55fa3a06774de919617e19a48580bed1b07b3029f075b
5
5
  SHA512:
6
- metadata.gz: 3a667a39333140b85e9710f5d8a87e89b3e951fe634065e2f464ddc7e4d7beb23fbfac0096acd72bf01aeaa28a0a322221dca11d1174fbc88728a0f59703a735
7
- data.tar.gz: a1415e35e038896b2205d5fa409483aceedefee8566d43a636471b23c89bb423b1ca7b4c3c650a0f23d5af8d05ea8a9c39865443baa0aeecc12cf9771eca2880
6
+ metadata.gz: a685cdb2af04bea727585f6ee62dff5cb2df9fdc7f2071bb8232bbc765c459a4a42ed00cfe9f17bea4909d6d58098b0ff0b966c878efc59a39f40b91fe3a9a3b
7
+ data.tar.gz: dbf70802c820a5a381788d7242c5fd8156dade79e2ca1e9b5c1a2be37e7de1bf729d5ff5bd7898a1b1af54000295fa7877a52a4cc92236756a7f4a62003b2d49
@@ -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
@@ -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 NodeList then result.search(rest_keys)
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
- scalar_index = find_scalar_index(key)
33
- return unless scalar_index
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 find_scalar_index(key)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yamlook
4
- VERSION = '0.0.1'
4
+ VERSION = '0.0.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yamlook
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
  - Viacheslav Mefodin