activeyaml 1.0.1 → 1.1.1
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/active_yaml/version.rb +1 -1
- data/lib/active_yaml/yaml_hash.rb +6 -4
- data/lib/active_yaml.rb +18 -4
- metadata +1 -2
- data/lib/active_yaml/method_redirection.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f597f7a0892113b9d7c602f9cb76cc61da3d3a4b25650fa117088b58831202e5
|
4
|
+
data.tar.gz: d2dc072ff789b4916c944b55886efa32caaf3d0c533d28d1738fdf57c374a368
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc6db90a8cfcd36a4861470b87d3d8f67c8753e7c5c1b2bdf931690838094ff07ebc476342e9409b74c5bf5bf669f08e0759e6ac9c672f6650fbff88587fc26c
|
7
|
+
data.tar.gz: a6dba19bcef8563aa8677914d6a8a96aab6cc8b5f9df4b7749d08d78fa75e95cbe0df76f27bb8a9326e9f40430949f21a4cdd01336407b991fc3eec1bb30cdae
|
data/lib/active_yaml/version.rb
CHANGED
@@ -9,6 +9,8 @@ module ActiveYaml
|
|
9
9
|
@hash = hash || {}
|
10
10
|
end
|
11
11
|
|
12
|
+
# The main logic of this class is implemented in this method.
|
13
|
+
# Allows you to filter method calls and redirect them to a hash by key
|
12
14
|
def method_missing(method, *args, &)
|
13
15
|
value = hash[method.to_s]
|
14
16
|
|
@@ -21,6 +23,10 @@ module ActiveYaml
|
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
26
|
+
def respond_to_missing?(method, include_private = false)
|
27
|
+
hash.key?(method.to_s) || super
|
28
|
+
end
|
29
|
+
|
24
30
|
def inspect
|
25
31
|
hash
|
26
32
|
end
|
@@ -28,9 +34,5 @@ module ActiveYaml
|
|
28
34
|
def to_s
|
29
35
|
hash.to_s
|
30
36
|
end
|
31
|
-
|
32
|
-
def respond_to_missing?(method, include_private = false)
|
33
|
-
hash.key?(method.to_s) || super
|
34
|
-
end
|
35
37
|
end
|
36
38
|
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/
|
4
|
+
require_relative 'active_yaml/yaml_hash'
|
5
5
|
require_relative 'active_yaml/factory_hash'
|
6
6
|
|
7
7
|
# The main module from which work with gem begins
|
@@ -9,13 +9,27 @@ module ActiveYaml
|
|
9
9
|
extend FactoryHash
|
10
10
|
|
11
11
|
# Base class to inherit from to create models
|
12
|
-
class
|
13
|
-
include MethodRedirection
|
14
|
-
|
12
|
+
class BaseModel
|
15
13
|
def self.yaml(file_path)
|
16
14
|
define_method(:yaml_data) do
|
17
15
|
@yaml_data = Parser.parse(file_path)
|
18
16
|
end
|
19
17
|
end
|
18
|
+
|
19
|
+
def method_missing(method, *args, &)
|
20
|
+
value = yaml_data[method.to_s]
|
21
|
+
|
22
|
+
if value
|
23
|
+
return value unless value.is_a?(Hash)
|
24
|
+
|
25
|
+
YamlHash.new(value)
|
26
|
+
else
|
27
|
+
super
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def respond_to_missing?(method, include_private = false)
|
32
|
+
yaml_data[method.to_s] || super
|
33
|
+
end
|
20
34
|
end
|
21
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activeyaml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kirill Leonov
|
@@ -32,7 +32,6 @@ extra_rdoc_files: []
|
|
32
32
|
files:
|
33
33
|
- lib/active_yaml.rb
|
34
34
|
- lib/active_yaml/factory_hash.rb
|
35
|
-
- lib/active_yaml/method_redirection.rb
|
36
35
|
- lib/active_yaml/parser.rb
|
37
36
|
- lib/active_yaml/version.rb
|
38
37
|
- lib/active_yaml/yaml_hash.rb
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'yaml_hash'
|
4
|
-
|
5
|
-
module ActiveYaml
|
6
|
-
# A module with methods for implementing tracking methods.
|
7
|
-
# In the model in order to proxy them into a hash with YML data
|
8
|
-
module MethodRedirection
|
9
|
-
def method_missing(method, *args, &)
|
10
|
-
value = yaml_data[method.to_s]
|
11
|
-
|
12
|
-
if value
|
13
|
-
return value unless value.is_a?(Hash)
|
14
|
-
|
15
|
-
YamlHash.new(value)
|
16
|
-
else
|
17
|
-
super
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def respond_to_missing?(method, include_private = false)
|
22
|
-
yaml_data[method.to_s] || super
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|