rdf-rdfa 2.2.2 → 2.2.3
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 +4 -4
- data/VERSION +1 -1
- data/lib/rdf/rdfa.rb +2 -2
- data/lib/rdf/rdfa/context.rb +13 -13
- data/lib/rdf/rdfa/expansion.rb +3 -3
- data/lib/rdf/rdfa/patches/string_hacks.rb +1 -1
- data/lib/rdf/rdfa/reader.rb +56 -44
- data/lib/rdf/rdfa/reader/nokogiri.rb +7 -7
- data/lib/rdf/rdfa/reader/rexml.rb +8 -8
- data/lib/rdf/rdfa/writer.rb +4 -2
- data/lib/rdf/rdfa/writer/haml_templates.rb +4 -4
- metadata +3 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 584df353c1c28e5928ef57e6bec1702b9bc8cfb2
|
4
|
+
data.tar.gz: d0cf8f481a3656f58a6f33c9328e8573680248b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fcfa4f91f203b424b64c31fc7964fd91ddd9d3d47df45ae3ad73ef756a455ee38213a1b3bada828d06111035799c74bd188489a8db0e2000fa10a10dfeecfa48
|
7
|
+
data.tar.gz: 4658e9dd89b9cd349a067be9ffcae9ee7314df85894e4b489874785522d55e09d6821f4381bbab137eee0929f6da4926c2b19e6eb8f9656e637b08d2bf4c5c9a
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.2.
|
1
|
+
2.2.3
|
data/lib/rdf/rdfa.rb
CHANGED
@@ -31,9 +31,9 @@ module RDF
|
|
31
31
|
autoload :Reader, 'rdf/rdfa/reader'
|
32
32
|
autoload :Writer, 'rdf/rdfa/writer'
|
33
33
|
autoload :VERSION, 'rdf/rdfa/version'
|
34
|
-
|
34
|
+
|
35
35
|
HTML_RDFA_CONTEXT = "http://www.w3.org/2011/rdfa-context/html-rdfa-1.1"
|
36
36
|
XHTML_RDFA_CONTEXT = "http://www.w3.org/2011/rdfa-context/xhtml-rdfa-1.1"
|
37
37
|
XML_RDFA_CONTEXT = "http://www.w3.org/2011/rdfa-context/rdfa-1.1"
|
38
38
|
end
|
39
|
-
end
|
39
|
+
end
|
data/lib/rdf/rdfa/context.rb
CHANGED
@@ -19,7 +19,7 @@ module RDF::RDFa
|
|
19
19
|
# @!attribute [r] terms
|
20
20
|
# @return [Hash{Symbol => RDF::URI}]
|
21
21
|
attr_reader :terms
|
22
|
-
|
22
|
+
|
23
23
|
# Default URI defined for this vocabulary
|
24
24
|
# @!attribute [r] vocabulary
|
25
25
|
# @return [RDF::URI]
|
@@ -29,7 +29,7 @@ module RDF::RDFa
|
|
29
29
|
# @!attribute [r] uri
|
30
30
|
# @return [RDF::URI]
|
31
31
|
attr_reader :uri
|
32
|
-
|
32
|
+
|
33
33
|
##
|
34
34
|
# Initialize a new context from the given URI.
|
35
35
|
#
|
@@ -46,11 +46,11 @@ module RDF::RDFa
|
|
46
46
|
@terms = options.fetch(:terms, {})
|
47
47
|
@vocabulary = options[:vocabulary]
|
48
48
|
@options = options.dup
|
49
|
-
|
49
|
+
|
50
50
|
yield(self) if block_given?
|
51
51
|
self
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
##
|
55
55
|
# @return [RDF::Util::Cache]
|
56
56
|
# @private
|
@@ -67,7 +67,7 @@ module RDF::RDFa
|
|
67
67
|
def self.repository
|
68
68
|
@repository ||= RDF::Repository.new(title: "RDFa Contexts")
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
##
|
72
72
|
# Set repository used for saving contexts
|
73
73
|
# @param [RDF::Repository] repo
|
@@ -82,14 +82,14 @@ module RDF::RDFa
|
|
82
82
|
end
|
83
83
|
@repository = repo
|
84
84
|
end
|
85
|
-
|
85
|
+
|
86
86
|
# Return a context faulting through the cache
|
87
87
|
# @return [RDF::RDFa::Context]
|
88
88
|
def self.find(uri)
|
89
89
|
uri = RDF::URI.intern(uri)
|
90
|
-
|
90
|
+
|
91
91
|
return cache[uri] unless cache[uri].nil?
|
92
|
-
|
92
|
+
|
93
93
|
# Two part creation to prevent re-entrancy problems if p1 => p2 and p2 => p1
|
94
94
|
# Return something to make the caller happy if we're re-entered
|
95
95
|
cache[uri] = Struct.new(:prefixes, :terms, :vocabulary).new({}, {}, nil)
|
@@ -112,12 +112,12 @@ module RDF::RDFa
|
|
112
112
|
uri = RDF::URI.intern(uri)
|
113
113
|
repository.load(uri.to_s, base_uri: uri, graph_name: uri) unless repository.has_graph?(uri)
|
114
114
|
end
|
115
|
-
|
115
|
+
|
116
116
|
# @return [RDF::Repository]
|
117
117
|
def repository
|
118
118
|
Context.repository
|
119
119
|
end
|
120
|
-
|
120
|
+
|
121
121
|
##
|
122
122
|
# Defines the given named URI prefix for this context.
|
123
123
|
#
|
@@ -151,7 +151,7 @@ module RDF::RDFa
|
|
151
151
|
name = name.to_s.empty? ? nil : (name.respond_to?(:to_sym) ? name.to_sym : name.to_s.to_sym)
|
152
152
|
uri.nil? ? terms[name] : terms[name] = uri
|
153
153
|
end
|
154
|
-
|
154
|
+
|
155
155
|
##
|
156
156
|
# Extract vocabulary, prefix mappings and terms from a enumerable object into an instance
|
157
157
|
#
|
@@ -179,14 +179,14 @@ module RDF::RDFa
|
|
179
179
|
log_debug("process_context: uri=#{uri.inspect}, term=#{term.inspect}, prefix=#{prefix.inspect}, vocabulary=#{vocab.inspect}") if respond_to?(:log_debug)
|
180
180
|
|
181
181
|
@vocabulary = vocab if vocab
|
182
|
-
|
182
|
+
|
183
183
|
# For every extracted triple that is the common subject of an rdfa:prefix and an rdfa:uri
|
184
184
|
# predicate, create a mapping from the object literal of the rdfa:prefix predicate to the
|
185
185
|
# object literal of the rdfa:uri predicate. Add or update this mapping in the local list of
|
186
186
|
# URI mappings after transforming the 'prefix' component to lower-case.
|
187
187
|
# For every extracted
|
188
188
|
prefix(prefix.downcase, uri) if uri && prefix && prefix != "_"
|
189
|
-
|
189
|
+
|
190
190
|
# triple that is the common subject of an rdfa:term and an rdfa:uri predicate, create a
|
191
191
|
# mapping from the object literal of the rdfa:term predicate to the object literal of the
|
192
192
|
# rdfa:uri predicate. Add or update this mapping in the local term mappings.
|
data/lib/rdf/rdfa/expansion.rb
CHANGED
@@ -108,7 +108,7 @@ module RDF::RDFa
|
|
108
108
|
def consequent(subject, prediate, object)
|
109
109
|
consequents << RDF::Query::Pattern.new(subject, prediate, object)
|
110
110
|
end
|
111
|
-
|
111
|
+
|
112
112
|
##
|
113
113
|
# Execute the rule against queryable, yielding each consequent with bindings
|
114
114
|
#
|
@@ -227,7 +227,7 @@ module RDF::RDFa
|
|
227
227
|
to_add << statement
|
228
228
|
end
|
229
229
|
end
|
230
|
-
|
230
|
+
|
231
231
|
repository.insert(*to_add)
|
232
232
|
end
|
233
233
|
end
|
@@ -250,7 +250,7 @@ module RDF::RDFa
|
|
250
250
|
to_add << statement
|
251
251
|
end
|
252
252
|
end
|
253
|
-
|
253
|
+
|
254
254
|
repository.insert(*to_add)
|
255
255
|
end
|
256
256
|
|
data/lib/rdf/rdfa/reader.rb
CHANGED
@@ -31,7 +31,7 @@ module RDF::RDFa
|
|
31
31
|
include RDF::Util::Logger
|
32
32
|
|
33
33
|
XHTML = "http://www.w3.org/1999/xhtml"
|
34
|
-
|
34
|
+
|
35
35
|
# Content model for @about and @resource. In RDFa 1.0, this was URIorSafeCURIE
|
36
36
|
SafeCURIEorCURIEorIRI = {
|
37
37
|
:"rdfa1.0" => [:safe_curie, :uri, :bnode],
|
@@ -83,17 +83,17 @@ module RDF::RDFa
|
|
83
83
|
# @!attribute [r] host_language
|
84
84
|
# @return [:xml, :xhtml1, :xhtml5, :html4, :html5, :svg]
|
85
85
|
attr_reader :host_language
|
86
|
-
|
86
|
+
|
87
87
|
# Version
|
88
88
|
# @!attribute [r] version
|
89
89
|
# @return [:"rdfa1.0", :"rdfa1.1"]
|
90
90
|
attr_reader :version
|
91
|
-
|
91
|
+
|
92
92
|
# Repository used for collecting triples.
|
93
93
|
# @!attribute [r] repository
|
94
94
|
# @return [RDF::Repository]
|
95
95
|
attr_reader :repository
|
96
|
-
|
96
|
+
|
97
97
|
# Returns the XML implementation module for this reader instance.
|
98
98
|
#
|
99
99
|
# @!attribute [rw] implementation
|
@@ -124,7 +124,7 @@ module RDF::RDFa
|
|
124
124
|
# @!attribute [rw] parent_subject
|
125
125
|
# @return [RDF::URI]
|
126
126
|
attr_accessor :parent_subject
|
127
|
-
|
127
|
+
|
128
128
|
##
|
129
129
|
# The parent object.
|
130
130
|
#
|
@@ -138,14 +138,14 @@ module RDF::RDFa
|
|
138
138
|
# @!attribute [rw] parent_object
|
139
139
|
# @return [RDF::URI]
|
140
140
|
attr_accessor :parent_object
|
141
|
-
|
141
|
+
|
142
142
|
##
|
143
143
|
# A list of current, in-scope URI mappings.
|
144
144
|
#
|
145
145
|
# @!attribute [rw] uri_mappings
|
146
146
|
# @return [Hash{Symbol => String}]
|
147
147
|
attr_accessor :uri_mappings
|
148
|
-
|
148
|
+
|
149
149
|
##
|
150
150
|
# A list of current, in-scope Namespaces. This is the subset of uri_mappings
|
151
151
|
# which are defined using xmlns.
|
@@ -153,7 +153,7 @@ module RDF::RDFa
|
|
153
153
|
# @!attribute [rw] namespaces
|
154
154
|
# @return [Hash{String => Namespace}]
|
155
155
|
attr_accessor :namespaces
|
156
|
-
|
156
|
+
|
157
157
|
##
|
158
158
|
# A list of incomplete triples.
|
159
159
|
#
|
@@ -165,14 +165,14 @@ module RDF::RDFa
|
|
165
165
|
# @!attribute [rw] incomplete_triples
|
166
166
|
# @return [Array<Array<RDF::URI, RDF::Resource>>]
|
167
167
|
attr_accessor :incomplete_triples
|
168
|
-
|
168
|
+
|
169
169
|
##
|
170
170
|
# The language. Note that there is no default language.
|
171
171
|
#
|
172
172
|
# @!attribute [rw] language
|
173
173
|
# @return [Symbol]
|
174
174
|
attr_accessor :language
|
175
|
-
|
175
|
+
|
176
176
|
##
|
177
177
|
# The term mappings, a list of terms and their associated URIs.
|
178
178
|
#
|
@@ -183,7 +183,7 @@ module RDF::RDFa
|
|
183
183
|
# @!attribute [rw] term_mappings
|
184
184
|
# @return [Hash{Symbol => RDF::URI}]
|
185
185
|
attr_accessor :term_mappings
|
186
|
-
|
186
|
+
|
187
187
|
##
|
188
188
|
# The default vocabulary
|
189
189
|
#
|
@@ -230,7 +230,7 @@ module RDF::RDFa
|
|
230
230
|
@namespaces = from.namespaces.clone
|
231
231
|
@list_mapping = from.list_mapping # Don't clone
|
232
232
|
end
|
233
|
-
|
233
|
+
|
234
234
|
def inspect
|
235
235
|
v = ['base', 'parent_subject', 'parent_object', 'language', 'default_vocabulary'].map do |a|
|
236
236
|
"#{a}=#{o = self.send(a); o.respond_to?(:to_ntriples) ? o.to_ntriples : o.inspect}"
|
@@ -329,7 +329,19 @@ module RDF::RDFa
|
|
329
329
|
|
330
330
|
detect_host_language_version(input, options)
|
331
331
|
|
332
|
-
|
332
|
+
parse_lib = if @library == :nokogiri && @host_language == :html5
|
333
|
+
begin
|
334
|
+
require 'nokogumbo' unless defined?(::Nokogumbo)
|
335
|
+
:nokobumbo
|
336
|
+
rescue LoadError
|
337
|
+
:nokogiri
|
338
|
+
end
|
339
|
+
else
|
340
|
+
@library
|
341
|
+
end
|
342
|
+
|
343
|
+
parse_lib = @library == :nokogiri && defined?(::Nokogumbo) ? :nokogumbo : @library
|
344
|
+
add_info(@doc, "version = #{@version}, host_language = #{@host_language}, library = #{parse_lib}, rdfagraph = #{@options[:rdfagraph].inspect}, expand = #{@options[:vocab_expansion]}")
|
333
345
|
|
334
346
|
begin
|
335
347
|
initialize_xml(input, options)
|
@@ -419,7 +431,7 @@ module RDF::RDFa
|
|
419
431
|
add_debug(el, "=> no reader found")
|
420
432
|
end
|
421
433
|
end
|
422
|
-
|
434
|
+
|
423
435
|
# Look for Embedded RDF/XML
|
424
436
|
unless @root.xpath("//rdf:RDF", "rdf" => "http://www.w3.org/1999/02/22-rdf-syntax-ns#").empty?
|
425
437
|
extract_script(@root, @doc, "application/rdf+xml", @options) do |statement|
|
@@ -437,7 +449,7 @@ module RDF::RDFa
|
|
437
449
|
@repository << statement
|
438
450
|
end
|
439
451
|
end
|
440
|
-
|
452
|
+
|
441
453
|
# Look for Embedded microdata
|
442
454
|
unless @root.xpath("//@itemscope").empty?
|
443
455
|
begin
|
@@ -454,7 +466,7 @@ module RDF::RDFa
|
|
454
466
|
|
455
467
|
# Perform vocabulary expansion
|
456
468
|
expand(@repository) if @options[:vocab_expansion]
|
457
|
-
|
469
|
+
|
458
470
|
@processed = true
|
459
471
|
end
|
460
472
|
|
@@ -493,7 +505,7 @@ module RDF::RDFa
|
|
493
505
|
end
|
494
506
|
enum_for(:each_triple)
|
495
507
|
end
|
496
|
-
|
508
|
+
|
497
509
|
private
|
498
510
|
|
499
511
|
# Keep track of allocated BNodes
|
@@ -501,12 +513,12 @@ module RDF::RDFa
|
|
501
513
|
@bnode_cache ||= {}
|
502
514
|
@bnode_cache[value.to_s] ||= RDF::Node.new(value)
|
503
515
|
end
|
504
|
-
|
516
|
+
|
505
517
|
# Figure out the document path, if it is an Element or Attribute
|
506
518
|
def node_path(node)
|
507
519
|
"<#{base_uri}>#{node.respond_to?(:display_path) ? node.display_path : node}"
|
508
520
|
end
|
509
|
-
|
521
|
+
|
510
522
|
# Add debug event to debug array, if specified
|
511
523
|
#
|
512
524
|
# @param [#display_path, #to_s] node XML Node or string for showing context
|
@@ -519,15 +531,15 @@ module RDF::RDFa
|
|
519
531
|
def add_info(node, message, process_class = RDF::RDFA.Info, &block)
|
520
532
|
add_processor_message(node, message, process_class, &block)
|
521
533
|
end
|
522
|
-
|
534
|
+
|
523
535
|
def add_warning(node, message, process_class = RDF::RDFA.Warning)
|
524
536
|
add_processor_message(node, message, process_class)
|
525
537
|
end
|
526
|
-
|
538
|
+
|
527
539
|
def add_error(node, message, process_class = RDF::RDFA.Error)
|
528
540
|
add_processor_message(node, message, process_class)
|
529
541
|
end
|
530
|
-
|
542
|
+
|
531
543
|
def add_processor_message(node, message, process_class, &block)
|
532
544
|
case process_class
|
533
545
|
when RDF::RDFA.Error then log_error(node_path(node), message, &block)
|
@@ -552,7 +564,7 @@ module RDF::RDFa
|
|
552
564
|
RDF::Statement.new(nc, RDF::PTR.expression, node.path, graph_name: RDF::RDFA.ProcessorGraph)
|
553
565
|
]
|
554
566
|
end
|
555
|
-
|
567
|
+
|
556
568
|
@repository.insert(*processor_statements)
|
557
569
|
if cb = @options[:processor_callback]
|
558
570
|
processor_statements.each {|s| cb.call(s)}
|
@@ -591,7 +603,7 @@ module RDF::RDFa
|
|
591
603
|
|
592
604
|
# initialize the evaluation context with the appropriate base
|
593
605
|
evaluation_context = EvaluationContext.new(base, @host_defaults)
|
594
|
-
|
606
|
+
|
595
607
|
if @version != :"rdfa1.0"
|
596
608
|
# Process default vocabularies
|
597
609
|
load_initial_contexts(@host_defaults[:initial_contexts]) do |which, value|
|
@@ -603,11 +615,11 @@ module RDF::RDFa
|
|
603
615
|
end
|
604
616
|
end
|
605
617
|
end
|
606
|
-
|
618
|
+
|
607
619
|
traverse(root, evaluation_context)
|
608
620
|
add_debug("", "parse_whole_doc: traversal complete'")
|
609
621
|
end
|
610
|
-
|
622
|
+
|
611
623
|
# Parse and process URI mappings, Term mappings and a default vocabulary from @context
|
612
624
|
#
|
613
625
|
# Yields each mapping
|
@@ -725,7 +737,7 @@ module RDF::RDFa
|
|
725
737
|
add_error(element, "Can't parse nil element")
|
726
738
|
return nil
|
727
739
|
end
|
728
|
-
|
740
|
+
|
729
741
|
add_debug(element) { "ec: #{evaluation_context.inspect}" }
|
730
742
|
|
731
743
|
# local variables [7.5 Step 1]
|
@@ -807,12 +819,12 @@ module RDF::RDFa
|
|
807
819
|
"[Step 2] default_vocaulary: #{default_vocabulary.inspect}"
|
808
820
|
}
|
809
821
|
end
|
810
|
-
|
822
|
+
|
811
823
|
# Local term mappings [7.5 Step 3]
|
812
824
|
# Next, the current element is then examined for URI mapping s and these are added to the local list of URI mappings.
|
813
825
|
# Note that a URI mapping will simply overwrite any current mapping in the list that has the same name
|
814
826
|
extract_mappings(element, uri_mappings, namespaces)
|
815
|
-
|
827
|
+
|
816
828
|
# Language information [7.5 Step 4]
|
817
829
|
language = element.language || language
|
818
830
|
language = nil if language.to_s.empty?
|
@@ -844,14 +856,14 @@ module RDF::RDFa
|
|
844
856
|
term_mappings: term_mappings,
|
845
857
|
vocab: default_vocabulary,
|
846
858
|
restrictions: TERMorCURIEorAbsIRI.fetch(@version, []))
|
847
|
-
|
859
|
+
|
848
860
|
add_debug(element) do
|
849
861
|
"rels: #{rels.join(" ")}, revs: #{revs.join(" ")}"
|
850
862
|
end unless (rels + revs).empty?
|
851
863
|
|
852
864
|
if !(attrs[:rel] || attrs[:rev])
|
853
865
|
# Establishing a new subject if no rel/rev [7.5 Step 5]
|
854
|
-
|
866
|
+
|
855
867
|
if @version == :"rdfa1.0"
|
856
868
|
new_subject = if attrs[:about]
|
857
869
|
process_uri(element, attrs[:about], evaluation_context, base,
|
@@ -989,7 +1001,7 @@ module RDF::RDFa
|
|
989
1001
|
new_subject ||= process_uri(element, attrs[:src], evaluation_context, base,
|
990
1002
|
uri_mappings: uri_mappings,
|
991
1003
|
restrictions: [:uri]) if @version == :"rdfa1.0"
|
992
|
-
|
1004
|
+
|
993
1005
|
# if the @typeof attribute is present, set typed resource to new subject
|
994
1006
|
typed_resource = new_subject if attrs[:typeof]
|
995
1007
|
|
@@ -1008,7 +1020,7 @@ module RDF::RDFa
|
|
1008
1020
|
evaluation_context.parent_object
|
1009
1021
|
# no skip flag set this time
|
1010
1022
|
end
|
1011
|
-
|
1023
|
+
|
1012
1024
|
# Then the current object resource is set to the URI obtained from the first match from the following rules:
|
1013
1025
|
current_object_resource = process_uri(element, attrs[:resource], evaluation_context, base,
|
1014
1026
|
uri_mappings: uri_mappings,
|
@@ -1034,7 +1046,7 @@ module RDF::RDFa
|
|
1034
1046
|
"typed_resource: #{typed_resource.to_ntriples rescue 'nil'}, "
|
1035
1047
|
}
|
1036
1048
|
end
|
1037
|
-
|
1049
|
+
|
1038
1050
|
# [Step 7] If in any of the previous steps a typed resource was set to a non-null value, it is now used to provide a subject for type values;
|
1039
1051
|
if typed_resource
|
1040
1052
|
# Typeof is TERMorCURIEorAbsIRIs
|
@@ -1082,7 +1094,7 @@ module RDF::RDFa
|
|
1082
1094
|
add_triple(element, new_subject, r, current_object_resource)
|
1083
1095
|
end
|
1084
1096
|
end
|
1085
|
-
|
1097
|
+
|
1086
1098
|
revs.each do |r|
|
1087
1099
|
add_triple(element, current_object_resource, r, new_subject)
|
1088
1100
|
end
|
@@ -1090,7 +1102,7 @@ module RDF::RDFa
|
|
1090
1102
|
# Incomplete triples and bnode creation [Step 10]
|
1091
1103
|
add_debug(element) {"[Step 10] incompletes: rels: #{rels}, revs: #{revs}"}
|
1092
1104
|
current_object_resource = RDF::Node.new
|
1093
|
-
|
1105
|
+
|
1094
1106
|
# predicate: full IRI
|
1095
1107
|
# direction: forward/reverse
|
1096
1108
|
# lists: Save into list, don't generate triple
|
@@ -1108,12 +1120,12 @@ module RDF::RDFa
|
|
1108
1120
|
incomplete_triples << {predicate: r, direction: :forward}
|
1109
1121
|
end
|
1110
1122
|
end
|
1111
|
-
|
1123
|
+
|
1112
1124
|
revs.each do |r|
|
1113
1125
|
incomplete_triples << {predicate: r, direction: :reverse}
|
1114
1126
|
end
|
1115
1127
|
end
|
1116
|
-
|
1128
|
+
|
1117
1129
|
# Establish current object literal [Step 11]
|
1118
1130
|
#
|
1119
1131
|
# If the current element has a @inlist attribute, add the property to the
|
@@ -1267,11 +1279,11 @@ module RDF::RDFa
|
|
1267
1279
|
add_debug(element) {"[Step 11] add #{current_property_value.to_ntriples} to #{p.to_ntriples} #{list_mapping[p].inspect}"}
|
1268
1280
|
list_mapping[p] << current_property_value
|
1269
1281
|
elsif new_subject
|
1270
|
-
add_triple(element, new_subject, p, current_property_value)
|
1282
|
+
add_triple(element, new_subject, p, current_property_value)
|
1271
1283
|
end
|
1272
1284
|
end
|
1273
1285
|
end
|
1274
|
-
|
1286
|
+
|
1275
1287
|
if !skip and new_subject && !evaluation_context.incomplete_triples.empty?
|
1276
1288
|
# Complete the incomplete triples from the evaluation context [Step 12]
|
1277
1289
|
add_debug(element) do
|
@@ -1329,12 +1341,12 @@ module RDF::RDFa
|
|
1329
1341
|
new_ec.list_mapping = list_mapping
|
1330
1342
|
add_debug(element, "[Step 13] new ec")
|
1331
1343
|
end
|
1332
|
-
|
1344
|
+
|
1333
1345
|
element.children.each do |child|
|
1334
1346
|
# recurse only if it's an element
|
1335
1347
|
traverse(child, new_ec) if child.element?
|
1336
1348
|
end
|
1337
|
-
|
1349
|
+
|
1338
1350
|
# Step 14: after traversing through child elements, for each list associated with
|
1339
1351
|
# a property
|
1340
1352
|
(list_mapping || {}).each do |p, l|
|
@@ -1444,7 +1456,7 @@ module RDF::RDFa
|
|
1444
1456
|
add_warning(element, "Relative URI #{value}")
|
1445
1457
|
end
|
1446
1458
|
end
|
1447
|
-
|
1459
|
+
|
1448
1460
|
# [7.4.3] General Use of Terms in Attributes
|
1449
1461
|
def process_term(element, value, options)
|
1450
1462
|
if options[:vocab]
|
@@ -1453,7 +1465,7 @@ module RDF::RDFa
|
|
1453
1465
|
elsif options[:term_mappings].is_a?(Hash)
|
1454
1466
|
# If the term is in the local term mappings, use the associated URI (case sensitive).
|
1455
1467
|
return uri(options[:term_mappings][value.to_s.to_sym]) if options[:term_mappings].has_key?(value.to_s.to_sym)
|
1456
|
-
|
1468
|
+
|
1457
1469
|
# Otherwise, check for case-insensitive match
|
1458
1470
|
options[:term_mappings].each_pair do |term, uri|
|
1459
1471
|
return uri(uri) if term.to_s.downcase == value.to_s.downcase
|
@@ -82,7 +82,7 @@ module RDF::RDFa
|
|
82
82
|
def namespaces
|
83
83
|
@node.namespace_definitions.inject({}) {|memo, ns| memo[ns.prefix] = ns.href.to_s; memo }
|
84
84
|
end
|
85
|
-
|
85
|
+
|
86
86
|
##
|
87
87
|
# Children of this node
|
88
88
|
#
|
@@ -168,7 +168,7 @@ module RDF::RDFa
|
|
168
168
|
else
|
169
169
|
# Try to detect charset from input
|
170
170
|
options[:encoding] ||= input.charset if input.respond_to?(:charset)
|
171
|
-
|
171
|
+
|
172
172
|
# Otherwise, default is utf-8
|
173
173
|
options[:encoding] ||= 'utf-8'
|
174
174
|
options[:encoding] = options[:encoding].to_s if options[:encoding]
|
@@ -277,13 +277,13 @@ module RDF::RDFa
|
|
277
277
|
end
|
278
278
|
|
279
279
|
# Accessor methods to mask native elements & attributes
|
280
|
-
|
280
|
+
|
281
281
|
##
|
282
282
|
# Return proxy for document root
|
283
283
|
def root
|
284
284
|
@root ||= NodeProxy.new(@doc.root) if @doc && @doc.root
|
285
285
|
end
|
286
|
-
|
286
|
+
|
287
287
|
##
|
288
288
|
# Document errors
|
289
289
|
def doc_errors
|
@@ -295,7 +295,7 @@ module RDF::RDFa
|
|
295
295
|
@doc.errors.reject {|e| e.to_s =~ /(?:Tag \w+ invalid)|(?:Missing attribute name)/}
|
296
296
|
end
|
297
297
|
end
|
298
|
-
|
298
|
+
|
299
299
|
##
|
300
300
|
# Find value of document base
|
301
301
|
#
|
@@ -305,13 +305,13 @@ module RDF::RDFa
|
|
305
305
|
# find if the document has a base element
|
306
306
|
case @host_language
|
307
307
|
when :xhtml1, :xhtml5, :html4, :html5
|
308
|
-
base_el = @doc.at_css("html>head>base")
|
308
|
+
base_el = @doc.at_css("html>head>base")
|
309
309
|
base = base_el.attribute("href").to_s.split("#").first if base_el
|
310
310
|
else
|
311
311
|
xml_base = root.attribute_with_ns("base", RDF::XML.to_s) if root
|
312
312
|
base = xml_base if xml_base
|
313
313
|
end
|
314
|
-
|
314
|
+
|
315
315
|
base
|
316
316
|
end
|
317
317
|
end
|
@@ -85,7 +85,7 @@ module RDF::RDFa
|
|
85
85
|
end
|
86
86
|
ns_decls
|
87
87
|
end
|
88
|
-
|
88
|
+
|
89
89
|
##
|
90
90
|
# Children of this node
|
91
91
|
#
|
@@ -93,7 +93,7 @@ module RDF::RDFa
|
|
93
93
|
def children
|
94
94
|
NodeSetProxy.new(@node.children, self)
|
95
95
|
end
|
96
|
-
|
96
|
+
|
97
97
|
# Ancestors of this element, in order
|
98
98
|
def ancestors
|
99
99
|
@ancestors ||= parent ? parent.ancestors + [parent] : []
|
@@ -166,7 +166,7 @@ module RDF::RDFa
|
|
166
166
|
@node.send(method, *args)
|
167
167
|
end
|
168
168
|
end
|
169
|
-
|
169
|
+
|
170
170
|
##
|
171
171
|
# NodeSet proxy
|
172
172
|
class NodeSetProxy
|
@@ -214,7 +214,7 @@ module RDF::RDFa
|
|
214
214
|
else
|
215
215
|
# Try to detect charset from input
|
216
216
|
options[:encoding] ||= input.charset if input.respond_to?(:charset)
|
217
|
-
|
217
|
+
|
218
218
|
# Otherwise, default is utf-8
|
219
219
|
options[:encoding] ||= 'utf-8'
|
220
220
|
|
@@ -306,19 +306,19 @@ module RDF::RDFa
|
|
306
306
|
end
|
307
307
|
|
308
308
|
# Accessor methods to mask native elements & attributes
|
309
|
-
|
309
|
+
|
310
310
|
##
|
311
311
|
# Return proxy for document root
|
312
312
|
def root
|
313
313
|
@root ||= NodeProxy.new(@doc.root) if @doc && @doc.root
|
314
314
|
end
|
315
|
-
|
315
|
+
|
316
316
|
##
|
317
317
|
# Document errors
|
318
318
|
def doc_errors
|
319
319
|
[]
|
320
320
|
end
|
321
|
-
|
321
|
+
|
322
322
|
##
|
323
323
|
# Find value of document base
|
324
324
|
#
|
@@ -334,7 +334,7 @@ module RDF::RDFa
|
|
334
334
|
xml_base = root.attribute("base", RDF::XML.to_s) if root
|
335
335
|
base = xml_base if xml_base
|
336
336
|
end
|
337
|
-
|
337
|
+
|
338
338
|
base || @base_uri
|
339
339
|
end
|
340
340
|
end
|
data/lib/rdf/rdfa/writer.rb
CHANGED
@@ -63,7 +63,9 @@ module RDF::RDFa
|
|
63
63
|
# @return [Array<URI>]
|
64
64
|
attr :heading_predicates
|
65
65
|
|
66
|
-
HAML_OPTIONS = {
|
66
|
+
HAML_OPTIONS = {
|
67
|
+
format: :xhtml
|
68
|
+
}
|
67
69
|
|
68
70
|
# @return [Graph] Graph of statements serialized
|
69
71
|
attr_accessor :graph
|
@@ -629,7 +631,7 @@ module RDF::RDFa
|
|
629
631
|
end
|
630
632
|
end
|
631
633
|
|
632
|
-
# Haml rendering helper. Display value for object, may be humanized into a non-canonical form
|
634
|
+
# Haml rendering helper. Display value for object, may be humanized into a non-canonical form
|
633
635
|
#
|
634
636
|
# @param [RDF::Literal] literal
|
635
637
|
# @return [String]
|
@@ -3,7 +3,7 @@ module RDF::RDFa
|
|
3
3
|
class Writer
|
4
4
|
# The default set of HAML templates used for RDFa code generation
|
5
5
|
BASE_HAML = {
|
6
|
-
identifier: "base",
|
6
|
+
identifier: "base",
|
7
7
|
# Document
|
8
8
|
# Locals: language, title, prefix, base, subjects
|
9
9
|
# Yield: subjects.each
|
@@ -99,7 +99,7 @@ module RDF::RDFa
|
|
99
99
|
# This version does not perform recursive object generation and does not attempt
|
100
100
|
# to create human readable output.
|
101
101
|
MIN_HAML = {
|
102
|
-
identifier: "min",
|
102
|
+
identifier: "min",
|
103
103
|
# Document
|
104
104
|
# Locals: language, title, prefix, base, subjects
|
105
105
|
# Yield: subjects.each
|
@@ -149,7 +149,7 @@ module RDF::RDFa
|
|
149
149
|
}
|
150
150
|
|
151
151
|
DISTILLER_HAML = {
|
152
|
-
identifier: "distiller",
|
152
|
+
identifier: "distiller",
|
153
153
|
# Document
|
154
154
|
# Locals: language, title, prefix, base, subjects
|
155
155
|
# Yield: subjects.each
|
@@ -264,4 +264,4 @@ module RDF::RDFa
|
|
264
264
|
HAML_TEMPLATES = {base: BASE_HAML, min: MIN_HAML, distiller: DISTILLER_HAML}
|
265
265
|
DEFAULT_HAML = BASE_HAML
|
266
266
|
end
|
267
|
-
end
|
267
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf-rdfa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregg
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-07-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdf
|
@@ -81,26 +81,6 @@ dependencies:
|
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '4.3'
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: open-uri-cached
|
86
|
-
requirement: !ruby/object:Gem::Requirement
|
87
|
-
requirements:
|
88
|
-
- - "~>"
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: '0.0'
|
91
|
-
- - ">="
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: 0.0.5
|
94
|
-
type: :development
|
95
|
-
prerelease: false
|
96
|
-
version_requirements: !ruby/object:Gem::Requirement
|
97
|
-
requirements:
|
98
|
-
- - "~>"
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
version: '0.0'
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 0.0.5
|
104
84
|
- !ruby/object:Gem::Dependency
|
105
85
|
name: json-ld
|
106
86
|
requirement: !ruby/object:Gem::Requirement
|
@@ -301,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
301
281
|
version: '0'
|
302
282
|
requirements: []
|
303
283
|
rubyforge_project: rdf-rdfa
|
304
|
-
rubygems_version: 2.6.
|
284
|
+
rubygems_version: 2.6.12
|
305
285
|
signing_key:
|
306
286
|
specification_version: 4
|
307
287
|
summary: RDFa reader/writer for RDF.rb.
|