emp_json 1.4.0 → 1.5.0.pre.g5eec38832

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: df0eb71a3f413916a7ad5b68726feef4a55a88dafd7692bc449603007cb4f6a9
4
- data.tar.gz: 15904f53e40c7f53a003be6a6bdb6f74c175f2092203eac4f38d859661cb7820
3
+ metadata.gz: 42a7ee8f987922575b898af0f2166deb5f06645a8bb6dd7af1844384883f1de1
4
+ data.tar.gz: 00e02e32f02ea629ef7d70156d2d2e911ee4e67133ee6f3a9d65e00e46711eda
5
5
  SHA512:
6
- metadata.gz: f80fc514087f3b554fbd8d76bf85420e51c85f2284c8546008e36b9dc4684a5d9e6d91982d9c30b2f463faf975e677c7af941e22d7d5d30145036001ce817506
7
- data.tar.gz: f44a14332880591806436e5c3d7882a98858701801bda9854bf48c8c2beb54fde146882f716d94b09692b1b7a9408cd280ee657212b6701dfa8ab585a40f42d6
6
+ metadata.gz: 64db6485db89cac819e8bdbc31f01e925b301a23286de9df69d5335cc477c5812aae187785bc562d39c18933b911ee8886b926f83abacc85bd0845335f5d4896
7
+ data.tar.gz: d31b26826e6966a7162892f99153be3cdaaa1baf1aac5e699232487294c1d04f1b415f4a6088fd0a4bf07776ee34aea17f9d7cfbf1604b75018736fd556dcdf2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- emp_json (1.4.0)
4
+ emp_json (1.5.0.pre.g5eec38832)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -14,6 +14,7 @@ module Empathy
14
14
  EMP_TYPE_STRING = "s"
15
15
  EMP_TYPE_BOOL = "b"
16
16
  EMP_TYPE_INTEGER = "i"
17
+ EMP_TYPE_DOUBLE = "d"
17
18
  EMP_TYPE_LONG = "l"
18
19
  EMP_TYPE_PRIMITIVE = "p"
19
20
  EMP_TYPE_LANGSTRING = "ls"
@@ -28,6 +29,9 @@ module Empathy
28
29
  RDF_XSD_DATETIME = "#{RDF_XSD}dateTime"
29
30
  RDF_XSD_BOOLEAN = "#{RDF_XSD}boolean"
30
31
  RDF_XSD_INTEGER = "#{RDF_XSD}integer"
32
+ RDF_XSD_FLOAT = "#{RDF_XSD}float"
33
+ RDF_XSD_DOUBLE = "#{RDF_XSD}double"
34
+ RDF_XSD_DECIMAL = "#{RDF_XSD}decimal"
31
35
 
32
36
  def object_to_value(value)
33
37
  return primitive_to_value(value.iri) if value.respond_to?(:iri)
@@ -59,7 +63,9 @@ module Empathy
59
63
  shorthand(EMP_TYPE_BOOL, value.to_s)
60
64
  when Integer
61
65
  integer_to_value(value)
62
- when Float, Numeric
66
+ when Float
67
+ shorthand(EMP_TYPE_DOUBLE, value.to_s)
68
+ when Numeric
63
69
  use_rdf_rb_for_primitive(value)
64
70
  when RDF::Literal
65
71
  rdf_literal_to_value(value)
@@ -79,7 +85,7 @@ module Empathy
79
85
  end
80
86
  end
81
87
 
82
- def rdf_literal_to_value(value) # rubocop:disable Metrics/AbcSize
88
+ def rdf_literal_to_value(value) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
83
89
  case value.datatype.to_s
84
90
  when RDF_RDFV_LANGSTRING
85
91
  {
@@ -95,10 +101,14 @@ module Empathy
95
101
  shorthand(EMP_TYPE_DATETIME, value.value)
96
102
  when RDF_XSD_BOOLEAN
97
103
  shorthand(EMP_TYPE_BOOL, value.value)
104
+ when RDF_XSD_DOUBLE
105
+ shorthand(EMP_TYPE_DOUBLE, value.value)
106
+ when RDF_XSD_DECIMAL, RDF_XSD_FLOAT
107
+ primitive(value.datatype.to_s, value.value)
98
108
  when RDF_XSD_INTEGER
99
109
  integer_to_value(value.to_i)
100
110
  else
101
- throw "unknown RDF::Literal"
111
+ throw "unknown RDF::Literal: #{value.datatype}"
102
112
  end
103
113
  end
104
114
 
@@ -46,7 +46,7 @@ module Empathy
46
46
 
47
47
  # Returns a record from a slice.
48
48
  def record_from_slice(slice, id, website_iri = nil)
49
- slice[absolutized_id(retrieve_id(id), website_iri)] || slice[retrieve_id(id)]
49
+ slice[absolutized_id(retrieve_id_string(id), website_iri)] || slice[retrieve_id_string(id)]
50
50
  end
51
51
 
52
52
  def field_from_record(record, field)
@@ -56,15 +56,19 @@ module Empathy
56
56
  end
57
57
 
58
58
  def retrieve_id(resource)
59
- return resource.to_s if resource.is_a?(URI) || resource.is_a?(RDF::URI) || resource.is_a?(RDF::Node)
59
+ return resource if resource.is_a?(URI) || resource.is_a?(RDF::URI) || resource.is_a?(RDF::Node)
60
60
 
61
61
  resource.try(:iri) || resource.try(:subject) || resource.try(:id) || resource
62
62
  end
63
63
 
64
+ def retrieve_id_string(resource)
65
+ retrieve_id(resource).to_s
66
+ end
67
+
64
68
  def absolutized_id(id, website_iri = nil)
65
- return id.to_s.delete_prefix(website_iri) if website_iri.present?
69
+ return id.delete_prefix(website_iri) if website_iri.present?
66
70
 
67
- id.to_s
71
+ id
68
72
  end
69
73
 
70
74
  def normalise_slice_values(values)
@@ -58,7 +58,7 @@ module Empathy
58
58
  end
59
59
 
60
60
  def value_for_attribute(attr, resource, serialization_params)
61
- return resource.try(attr.method) if attr.method.is_a?(Symbol)
61
+ return resource.try(attr.method) if attr.method.is_a?(Symbol) || attr.method.is_a?(String)
62
62
 
63
63
  FastJsonapi.call_proc(attr.method, resource, serialization_params)
64
64
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Empathy
4
4
  module EmpJson
5
- VERSION = "1.4.0"
5
+ VERSION = "1.5.0"
6
6
  end
7
7
  end
@@ -16,6 +16,8 @@ module Empathy
16
16
 
17
17
  EMP_TYPE_INTEGER: "i"
18
18
 
19
+ EMP_TYPE_DOUBLE: "d"
20
+
19
21
  EMP_TYPE_LONG: "l"
20
22
 
21
23
  EMP_TYPE_PRIMITIVE: "p"
@@ -42,6 +44,12 @@ module Empathy
42
44
 
43
45
  RDF_XSD_INTEGER: "http://www.w3.org/2001/XMLSchema#integer"
44
46
 
47
+ RDF_XSD_FLOAT: "http://www.w3.org/2001/XMLSchema#float"
48
+
49
+ RDF_XSD_DOUBLE: "http://www.w3.org/2001/XMLSchema#double"
50
+
51
+ RDF_XSD_DECIMAL: "http://www.w3.org/2001/XMLSchema#decimal"
52
+
45
53
  type shorthand = { type: string, v: string }
46
54
  type primitive = { type: string, dt: string, v: string }
47
55
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emp_json
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0.pre.g5eec38832
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thom van Kalkeren
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-15 00:00:00.000000000 Z
11
+ date: 2022-08-31 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Serializer for the EmpJson specification.
14
14
  email:
@@ -75,9 +75,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
75
75
  version: 2.7.0.preview1
76
76
  required_rubygems_version: !ruby/object:Gem::Requirement
77
77
  requirements:
78
- - - ">="
78
+ - - ">"
79
79
  - !ruby/object:Gem::Version
80
- version: '0'
80
+ version: 1.3.1
81
81
  requirements: []
82
82
  rubygems_version: 3.3.7
83
83
  signing_key: