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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7fedcdb8edcc2c0d37f4460af7ce1df736407f47b8bbfdb04100920ffb123ae2
4
- data.tar.gz: a7a49e5eb7a9dcccda448f4f73f8b9f074e1584fe070a81a7e00b197a1214de9
3
+ metadata.gz: 1f7568684405d5bab705339641fe01bfbe4d47cad7582d5f8e18ac4c3550fa76
4
+ data.tar.gz: 2a14276b05862e05c70acc866a9ab7a8ebe03755e6c08e311e042466218872e2
5
5
  SHA512:
6
- metadata.gz: a8ea13ed0bc862659dbc7e1a1dd90bca6ae98f583255c38396a68b8f279d3b0e8b5aee695edd0a33a40354e56c8b32d06ed3607c851f37ef14813154ce11cc6c
7
- data.tar.gz: d135e29276bcb7cb13ca977114580bfc765ac70bec3707fe98ceb13f390c70cb3be23f41408fb9e4d0a46604c2760898f8f945a2f92c2b49ba462769aea3884d
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(payload)
4
- @id = payload['id']
5
- @type = payload['type']
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 :id, :type, :attributes, :relationships
8
+ attr_reader :origin_data, :relationships
13
9
 
14
10
  def attribute(key)
15
- @attributes[key]
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
- @links[key]
23
+ origin_data.dig 'links', key
20
24
  end
21
25
 
22
26
  def meta(key)
23
- @meta[key]
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(method, *args)
29
- return attributes[method] if attributes&.key? method
30
- return relationships[method] if relationships&.key? method
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.to_s)
37
- return true if relationships&.key?(symbol.to_s)
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) ? parse_list : parse_single
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.3.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-01-25 00:00:00.000000000 Z
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.62.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.62.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.31.0
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.31.0
74
+ version: 1.32.0
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: simplecov
77
77
  requirement: !ruby/object:Gem::Requirement