activeyaml 1.2.0 → 1.2.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: 2d6f31a30be9442d2006d3a021c8c67e094cd85fe4836b64772126011e3c30dd
4
- data.tar.gz: 36e100c38e94324625d7497660710b008fd02425d23b482b027ebe544920766f
3
+ metadata.gz: 9c066487217e81c6a2c31748288416cb7119548bb6c309ace6447f178b6b4fcf
4
+ data.tar.gz: a539f959b3b447b962971a6906b252113753ff31b29cb8800bb7b49fc00642bc
5
5
  SHA512:
6
- metadata.gz: ec1821333bd0ea118fa3bd0c9e46316557513272c9f012b5ba878b91f8bcf27801eb31ec4dd731b8465e2280dff5856387c08d3df0af7974a1dd4b6fe94dee20
7
- data.tar.gz: 70b1d65e75e4f7ae1c3246e7dedd3ff098e5ba59daac803686d725448b2ad3d4c850934c0bd85838b524ca7f0fa60d29b570c8e714761df8625784749fcf25a0
6
+ metadata.gz: 58e3b1a95340185344f5d9b4525417356c15811804a0ac81158fbb14907729f38bf8af7dccf3e2fd9f63edffe005a4484d8bfabf7eea0d3fb25cc6e4ff06338e
7
+ data.tar.gz: 34fd61b532cb72001b64a2e4c464262733b022c8adb743aa3dbb3a57e9adcbfc0c0d81d7b9d7f8e2d3dcc762e17e59275b4c16d5cfb1c5dd2e97e2c4505b10d7
@@ -1,12 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'method_mapper'
3
+ require_relative 'method_mapping'
4
4
  require_relative 'parser'
5
5
 
6
6
  module ActiveYaml
7
- # no doc
7
+ # A module that allows you to use this gem,
8
+ # without creating instances of the class
8
9
  module ClassMethods
9
- include MethodMapper
10
+ include MethodMapping
10
11
 
11
12
  def yaml(file_path)
12
13
  define_singleton_method(:yaml_data) do
@@ -3,8 +3,9 @@
3
3
  require_relative 'yaml_hash'
4
4
 
5
5
  module ActiveYaml
6
- # no doc
7
- module MethodMapper
6
+ # A module containing methods that allow you to track method calls,
7
+ # and compare them with data from the YML file
8
+ module MethodMapping
8
9
  def method_missing(method, *args, &)
9
10
  value = yaml_data[method.to_s]
10
11
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveYaml
4
- VERSION = '1.2.0'
4
+ VERSION = '1.2.2'
5
5
  end
@@ -3,16 +3,21 @@
3
3
  module ActiveYaml
4
4
  # Class for creating hashes of similar objects
5
5
  class YamlHash
6
- attr_reader :hash
7
-
8
6
  def initialize(hash)
9
7
  @hash = hash || {}
10
8
  end
11
9
 
10
+ # The method is used to obtain a hash from an incomplete call chain.
11
+ # By default, if there is a value from a method of the same name, it will be returned.
12
+ # Otherwise the current hash will be returned
13
+ def hash
14
+ @hash['hash'] || @hash
15
+ end
16
+
12
17
  # The main logic of this class is implemented in this method.
13
18
  # Allows you to filter method calls and redirect them to a hash by key
14
19
  def method_missing(method, *args, &)
15
- value = hash[method.to_s]
20
+ value = @hash[method.to_s]
16
21
 
17
22
  if value
18
23
  return self.class.new(value) if value.is_a?(Hash)
@@ -24,15 +29,15 @@ module ActiveYaml
24
29
  end
25
30
 
26
31
  def respond_to_missing?(method, include_private = false)
27
- hash.key?(method.to_s) || super
32
+ @hash.key?(method.to_s) || super
28
33
  end
29
34
 
30
35
  def inspect
31
- hash
36
+ @hash
32
37
  end
33
38
 
34
39
  def to_s
35
- hash.to_s
40
+ @hash.to_s
36
41
  end
37
42
  end
38
43
  end
data/lib/active_yaml.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'active_yaml/parser'
4
- require_relative 'active_yaml/method_mapper'
4
+ require_relative 'active_yaml/method_mapping'
5
5
  require_relative 'active_yaml/factory_hash'
6
6
  require_relative 'active_yaml/class_methods'
7
7
 
@@ -11,7 +11,7 @@ module ActiveYaml
11
11
 
12
12
  # Base class to inherit from to create models
13
13
  class BaseModel
14
- include MethodMapper
14
+ include MethodMapping
15
15
 
16
16
  def self.yaml(file_path)
17
17
  define_method(:yaml_data) do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeyaml
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill Leonov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-03 00:00:00.000000000 Z
11
+ date: 2023-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: psych
@@ -33,7 +33,7 @@ files:
33
33
  - lib/active_yaml.rb
34
34
  - lib/active_yaml/class_methods.rb
35
35
  - lib/active_yaml/factory_hash.rb
36
- - lib/active_yaml/method_mapper.rb
36
+ - lib/active_yaml/method_mapping.rb
37
37
  - lib/active_yaml/parser.rb
38
38
  - lib/active_yaml/version.rb
39
39
  - lib/active_yaml/yaml_hash.rb