ja2r 0.3.0 → 0.4.0
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/ja2r/element.rb +29 -16
- data/lib/ja2r/parser.rb +5 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f7568684405d5bab705339641fe01bfbe4d47cad7582d5f8e18ac4c3550fa76
|
4
|
+
data.tar.gz: 2a14276b05862e05c70acc866a9ab7a8ebe03755e6c08e311e042466218872e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b887325ba80130513d408d3249b0eb1e3441420d94339bece47c91432a07e41c0fda950023d0774dfa74abedd36fe811390db4a4e076ce5ff95795ffd16e9cf
|
7
|
+
data.tar.gz: aeb13188ee1fc4ae6779bc0297ea91eb457745b452d650ae832afb994d65b3d71f08bfffd950dcb86d4a8f81470ef357cce424b3cbb794f29c053d4d8b1570f5
|
data/lib/ja2r/element.rb
CHANGED
@@ -1,40 +1,53 @@
|
|
1
1
|
module JA2R
|
2
2
|
class Element
|
3
|
-
def initialize(
|
4
|
-
@
|
5
|
-
@
|
6
|
-
@attributes = (payload['attributes'] || {}).with_indifferent_access
|
7
|
-
@meta = (payload['meta'] || {}).with_indifferent_access
|
8
|
-
@links = (payload['links'] || {}).with_indifferent_access
|
9
|
-
@relationships = payload['relationships'] ? convert_relationship(payload['relationships']) : {}
|
3
|
+
def initialize(origin_data)
|
4
|
+
@origin_data = origin_data.with_indifferent_access
|
5
|
+
@relationships = origin_data['relationships'] ? convert_relationship(origin_data['relationships']) : {}
|
10
6
|
end
|
11
7
|
|
12
|
-
attr_reader :
|
8
|
+
attr_reader :origin_data, :relationships
|
13
9
|
|
14
10
|
def attribute(key)
|
15
|
-
|
11
|
+
origin_data.dig 'attributes', key
|
12
|
+
end
|
13
|
+
|
14
|
+
def attributes
|
15
|
+
origin_data['attributes']
|
16
|
+
end
|
17
|
+
|
18
|
+
def id
|
19
|
+
origin_data['id']
|
16
20
|
end
|
17
21
|
|
18
22
|
def link(key)
|
19
|
-
|
23
|
+
origin_data.dig 'links', key
|
20
24
|
end
|
21
25
|
|
22
26
|
def meta(key)
|
23
|
-
|
27
|
+
origin_data.dig 'meta', key
|
28
|
+
end
|
29
|
+
|
30
|
+
# Support serializers
|
31
|
+
alias read_attribute_for_serialization public_send
|
32
|
+
|
33
|
+
alias serializable_hash origin_data
|
34
|
+
|
35
|
+
def type
|
36
|
+
origin_data['type']
|
24
37
|
end
|
25
38
|
|
26
39
|
private
|
27
40
|
|
28
|
-
def method_missing(
|
29
|
-
return attributes[
|
30
|
-
return relationships[
|
41
|
+
def method_missing(symbol, *args)
|
42
|
+
return attributes[symbol] if attributes&.key? symbol
|
43
|
+
return relationships[symbol] if relationships&.key? symbol
|
31
44
|
|
32
45
|
super
|
33
46
|
end
|
34
47
|
|
35
48
|
def respond_to_missing?(symbol, include_all = false)
|
36
|
-
return true if attributes&.key?(symbol
|
37
|
-
return true if relationships&.key?(symbol
|
49
|
+
return true if attributes&.key?(symbol)
|
50
|
+
return true if relationships&.key?(symbol)
|
38
51
|
|
39
52
|
super
|
40
53
|
end
|
data/lib/ja2r/parser.rb
CHANGED
@@ -19,7 +19,11 @@ module JA2R
|
|
19
19
|
attr_reader :hash, :object_space
|
20
20
|
|
21
21
|
def parse_data
|
22
|
-
hash['data'].is_a?(Array)
|
22
|
+
if hash['data'].is_a?(Array)
|
23
|
+
parse_list
|
24
|
+
elsif hash['data'].is_a?(Hash)
|
25
|
+
parse_single
|
26
|
+
end
|
23
27
|
end
|
24
28
|
|
25
29
|
def parse_single
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ja2r
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mkon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -50,28 +50,28 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - '='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0.
|
53
|
+
version: 0.63.1
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - '='
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 0.
|
60
|
+
version: 0.63.1
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: rubocop-rspec
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
65
|
- - '='
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: 1.
|
67
|
+
version: 1.32.0
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - '='
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: 1.
|
74
|
+
version: 1.32.0
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: simplecov
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|