pragmatic_context 0.1.1 → 0.1.2
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 172596b7b54c27b64dd8387556afab2ea83ed373
|
4
|
+
data.tar.gz: e55900a1261bdc44770b36325c73643dce742fd6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1933a9be02c54a3a9057aa253c8f3b2171b83a370b24d43245483b08097d87dadc51a9995bb07952e60ade4889b29f8fb9188a0b7e2793c325774e2bfe3b2692
|
7
|
+
data.tar.gz: 6081281c6c0cddaefc9f64f0ba317eb0a8c750c90c47fc0ac0f41933a4200fe45b4df02656accb3833b184c046fcf49e26362fcfa9e9d05078eb75d69f985a57
|
@@ -41,6 +41,14 @@ module PragmaticContext
|
|
41
41
|
value = self.send(term)
|
42
42
|
if (value.is_a? Contextualizable)
|
43
43
|
results[term] = self.send(term).as_jsonld
|
44
|
+
elsif (value.is_a? Array)
|
45
|
+
results[term] = self.send(term).each_with_index.map do |element, idx|
|
46
|
+
if (element.is_a? Contextualizable)
|
47
|
+
element.as_jsonld
|
48
|
+
else
|
49
|
+
json_results[term][idx]
|
50
|
+
end
|
51
|
+
end
|
44
52
|
elsif (value.is_a? Hash)
|
45
53
|
self.send(term).each do |key, value|
|
46
54
|
results["#{term}:#{key}"] = value
|
@@ -86,6 +86,47 @@ describe PragmaticContext::Contextualizable do
|
|
86
86
|
}
|
87
87
|
end
|
88
88
|
|
89
|
+
it 'should properly render literals within lists' do
|
90
|
+
@contextualizer.stub(:definitions_for_terms) do |terms|
|
91
|
+
{ 'bacon' => { "@id" => "http://bacon.yum" },
|
92
|
+
'ham' => { "@id" => "http://ham.yum" } }.slice(*terms)
|
93
|
+
end
|
94
|
+
subject.bacon = ['crispy', 'back', 'peameal']
|
95
|
+
subject.ham = ['honey', 'black forest', 'spiral']
|
96
|
+
subject.as_jsonld.should == {
|
97
|
+
"@context" => subject.jsonld_context,
|
98
|
+
"bacon" => ['crispy', 'back', 'peameal'],
|
99
|
+
"ham" => ['honey', 'black forest', 'spiral']
|
100
|
+
}
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'should recurse into Contextualizable subobjects within lists' do
|
104
|
+
@contextualizer.stub(:definitions_for_terms) do |terms|
|
105
|
+
{ 'bacon' => { "@id" => "http://bacon.yum" },
|
106
|
+
'ham' => { "@id" => "http://ham.yum" } }.slice(*terms)
|
107
|
+
end
|
108
|
+
subject.bacon = [Stub.new]
|
109
|
+
subject.ham = [Stub.new, 'honey', Stub.new]
|
110
|
+
subject.bacon[0].bacon = 'nested bacon'
|
111
|
+
subject.ham[0].ham = 'nested ham'
|
112
|
+
subject.ham[2].ham = 'nested ham 2'
|
113
|
+
subject.as_jsonld.should == {
|
114
|
+
"@context" => subject.jsonld_context,
|
115
|
+
"bacon" => [{ "@context" => subject.bacon[0].jsonld_context,
|
116
|
+
"bacon" => "nested bacon",
|
117
|
+
"ham" => nil
|
118
|
+
}],
|
119
|
+
"ham" => [{ "@context" => subject.ham[0].jsonld_context,
|
120
|
+
"bacon" => nil,
|
121
|
+
"ham" => "nested ham"},
|
122
|
+
'honey',
|
123
|
+
{ "@context" => subject.ham[2].jsonld_context,
|
124
|
+
"bacon" => nil,
|
125
|
+
"ham" => "nested ham 2"
|
126
|
+
}]
|
127
|
+
}
|
128
|
+
end
|
129
|
+
|
89
130
|
it 'should compact sub-hashes into namespaced properties on self' do
|
90
131
|
@contextualizer.stub(:definitions_for_terms) do |terms|
|
91
132
|
{ 'bacon' => { "@id" => "http://bacon.yum" },
|
@@ -121,4 +162,3 @@ describe PragmaticContext::Contextualizable do
|
|
121
162
|
end
|
122
163
|
end
|
123
164
|
end
|
124
|
-
|