Module: JSON::LD::Utils

Included in:
Compact, EvaluationContext, Expand, Flatten, Frame, FromTriples, Triples, Writer
Defined in:
lib/json/ld/utils.rb

Instance Method Summary collapse

Instance Method Details

#blank_node?(value) ⇒ Boolean

Is value a blank node? Value is a blank node

Parameters:

  • value (Object)

Returns:

  • (Boolean)


29
30
31
# File 'lib/json/ld/utils.rb', line 29

def blank_node?(value)
  (node?(value) || node_reference?(value)) && value.fetch('@id', '_:')[0,2] == '_:'
end

#list?(value) ⇒ Boolean

Is value an expaned @list?

Parameters:

  • value (Object)

Returns:

  • (Boolean)


38
39
40
# File 'lib/json/ld/utils.rb', line 38

def list?(value)
  value.is_a?(Hash) && value.keys == %w(@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

Parameters:

  • value (Object)

Returns:

  • (Boolean)


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?

Parameters:

  • value (Object)

Returns:

  • (Boolean)


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?

Parameters:

  • value (Object)

Returns:

  • (Boolean)


47
48
49
# File 'lib/json/ld/utils.rb', line 47

def value?(value)
  value.is_a?(Hash) && value.has_key?('@value')
end