Module: JSON::LD::Utils
- Defined in:
- lib/json/ld/utils.rb
Instance Method Summary collapse
-
#as_resource(id, base = nil) ⇒ RDF::Resource
Represent an id as an IRI or Blank Node.
-
#blank_node?(value) ⇒ Boolean
Is value a blank node? Value is a blank node.
-
#index?(value) ⇒ Boolean
Is value annotated?.
-
#list?(value) ⇒ Boolean
Is value an expaned @list?.
-
#node?(value) ⇒ Boolean
Is value a node? A value is a node if * it is a Hash * it is not a @value, @set or @list * it has more than 1 key or any key is not @id.
-
#node_reference?(value) ⇒ Boolean
Is value a node reference?.
-
#value?(value) ⇒ Boolean
Is value literal?.
Instance Method Details
#as_resource(id, base = nil) ⇒ RDF::Resource
Represent an id as an IRI or Blank Node
70 71 72 73 74 75 76 77 78 79 |
# File 'lib/json/ld/utils.rb', line 70 def as_resource(id, base = nil) @nodes ||= {} # Re-use BNodes if id[0,2] == '_:' (@nodes[id] ||= RDF::Node.new(id[2..-1])) elsif base base.join(id) else RDF::URI(id) end end |
#blank_node?(value) ⇒ Boolean
Is value a blank node? Value is a blank node
29 30 31 32 33 34 35 36 |
# File 'lib/json/ld/utils.rb', line 29 def blank_node?(value) case value when nil then true when String then value[0,2] == '_:' else (node?(value) || node_reference?(value)) && value.fetch('@id', '_:')[0,2] == '_:' end end |
#index?(value) ⇒ Boolean
Is value annotated?
52 53 54 |
# File 'lib/json/ld/utils.rb', line 52 def index?(value) value.is_a?(Hash) && value.has_key?('@index') end |
#list?(value) ⇒ Boolean
Is value an expaned @list?
43 44 45 |
# File 'lib/json/ld/utils.rb', line 43 def list?(value) value.is_a?(Hash) && value.has_key?('@list') end |
#node?(value) ⇒ Boolean
Is value a node? A value is a node if
-
it is a Hash
-
it is not a @value, @set or @list
-
it has more than 1 key or any key is not @id
10 11 12 13 14 |
# File 'lib/json/ld/utils.rb', line 10 def node?(value) value.is_a?(Hash) && (value.keys & %w(@value @list @set)).empty? && !(value.keys - ['@id']).empty? end |
#node_reference?(value) ⇒ Boolean
Is value a node reference?
20 21 22 |
# File 'lib/json/ld/utils.rb', line 20 def node_reference?(value) value.is_a?(Hash) && value.keys == %w(@id) end |
#value?(value) ⇒ Boolean
Is value literal?
61 62 63 |
# File 'lib/json/ld/utils.rb', line 61 def value?(value) value.is_a?(Hash) && value.has_key?('@value') end |