ja2r 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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