json-ld 2.1.6 → 2.1.7

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
  SHA1:
3
- metadata.gz: cbadebe1b0aed85dc5f64bf4981c8d54cf9b2ccb
4
- data.tar.gz: 316d476a0f0be056a49c571f22cff6dd13feb6dc
3
+ metadata.gz: e6faa8c0a2b65b20cfeaa22ac3cba60cf98ae835
4
+ data.tar.gz: 9e116d70b8081c39e5b725e9053a7b40b1ecfd57
5
5
  SHA512:
6
- metadata.gz: b3f8ca774aff5ad98f71269f76c4a4a2bc8c2700c739cba09167185b58ae2a5d57ebdbcf412917c0c453d799d5cd2fd0510e745e87044e0c506f0648034556dc
7
- data.tar.gz: cc5c07b85f8c3f77f8e6f0d07cd0a4e6d5478da02a7e2cccf62ef31bf9e47f9ad0b0a484f7e216efebef100ce8e452aa79526155700d1f42d953ad98419edea7
6
+ metadata.gz: 4990f799a5dd3898ce3ea7b746a96f2bf84baab2fd7b90c7f08b360cd72bb8a7863bd31e56048ddfd68ca53b4a4c7510e090c9ce49aa637d4f11298020488881
7
+ data.tar.gz: 6c551095ca9137161f52c8f978c650a144cae1c070df62501a5dbb0323b3ffda0f13a00221cd257babbc09bd00a0c21d99056eece1895d955c64326b6ea935a5
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.6
1
+ 2.1.7
@@ -113,6 +113,7 @@ module JSON::LD
113
113
  def container_mapping=(mapping)
114
114
  mapping = Array(mapping)
115
115
  if @as_set = mapping.include?('@set')
116
+ mapping = mapping.dup
116
117
  mapping.delete('@set')
117
118
  end
118
119
  @container_mapping = mapping.first
@@ -1616,7 +1617,7 @@ module JSON::LD
1616
1617
  "'@container' on term #{term.inspect} must be a string: #{container.inspect}"
1617
1618
  end
1618
1619
 
1619
- val = Array(container)
1620
+ val = Array(container).dup
1620
1621
  val.delete('@set') if has_set = val.include?('@set')
1621
1622
 
1622
1623
  raise JsonLdError::InvalidContainerMapping,
@@ -32,7 +32,11 @@ module JSON::LD
32
32
  raise JsonLdError::ListOfLists,
33
33
  "A list may not contain another list" if
34
34
  is_list && (v.is_a?(Array) || list?(v))
35
- memo << v unless v.nil?
35
+ case v
36
+ when nil then nil
37
+ when Array then memo.concat(v)
38
+ else memo << v
39
+ end
36
40
  end
37
41
 
38
42
  value
@@ -637,6 +637,29 @@ describe JSON::LD::API do
637
637
  "http://example.com/foo" => []
638
638
  }]
639
639
  },
640
+ "Free-floating values in sets" => {
641
+ input: %({
642
+ "@context": {"property": "http://example.com/property"},
643
+ "@graph": [{
644
+ "@set": [
645
+ "free-floating strings in set objects are removed",
646
+ {"@id": "http://example.com/free-floating-node"},
647
+ {
648
+ "@id": "http://example.com/node",
649
+ "property": "nodes with properties are not removed"
650
+ }
651
+ ]
652
+ }]
653
+ }),
654
+ output: %([{
655
+ "@id": "http://example.com/node",
656
+ "http://example.com/property": [
657
+ {
658
+ "@value": "nodes with properties are not removed"
659
+ }
660
+ ]
661
+ }])
662
+ }
640
663
  }.each do |title, params|
641
664
  it(title) {run_expand params}
642
665
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json-ld
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.6
4
+ version: 2.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregg Kellogg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-27 00:00:00.000000000 Z
11
+ date: 2017-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdf