Module: ActiveTriples::Persistable Abstract

Extended by:
ActiveSupport::Concern
Includes:
RDF::Enumerable, RDF::Mutable
Included in:
RDFSource
Defined in:
lib/active_triples/persistable.rb

Overview

This module is abstract.

implement #graph as a reference to an ‘RDF::Graph` or similar.

Bundles the core interfaces used by ActiveTriples persistence strategies to treat a graph as persistable. Specificially:

- RDF::Enumerable
- RDF::Mutable

Instance Method Summary collapse

Instance Method Details

#delete_statement(*args) ⇒ Object

See Also:

  • RDF::Writable.delete_statement


37
38
39
# File 'lib/active_triples/persistable.rb', line 37

def delete_statement(*args)
  graph.send(:delete_statement, *args)
end

#destroyBoolean Also known as: destroy!

Removes the statements in this RDFSource’s graph from the persisted graph

Returns:

  • (Boolean)


61
62
63
# File 'lib/active_triples/persistable.rb', line 61

def destroy
  persistence_strategy.destroy
end

#destroyed?Boolean

Returns true if this item is destroyed.

Returns:

  • (Boolean)

    true if this item is destroyed



68
69
70
# File 'lib/active_triples/persistable.rb', line 68

def destroyed?
  persistence_strategy.destroyed?
end

#graphRDF::Graph

This gives the RDF::Graph which represents the current state of this resource.

Returns:

  • (RDF::Graph)

    the underlying graph representation of the ‘RDFSource`.

See Also:



26
27
28
# File 'lib/active_triples/persistable.rb', line 26

def graph
  persistence_strategy.graph
end

#insert_statement(*args) ⇒ Object

See Also:

  • RDF::Writable.insert_statement


31
32
33
# File 'lib/active_triples/persistable.rb', line 31

def insert_statement(*args)
  graph.send(:insert_statement, *args)
end

#persist!(opts = {}) ⇒ Boolean

Sends a persistence message to the ‘persistence_startegy`, saving the `Persistable`.

Returns:

  • (Boolean)


77
78
79
80
81
82
83
84
# File 'lib/active_triples/persistable.rb', line 77

def persist!(opts={})
  result = false
  return result if opts[:validate] && !valid?
  run_callbacks :persist do
    result = persistence_strategy.persist!
  end
  result
end

#persisted?Boolean

Indicates if the resource is persisted.

Returns:

  • (Boolean)

See Also:

  • #persist


91
92
93
# File 'lib/active_triples/persistable.rb', line 91

def persisted?
  persistence_strategy.persisted?
end

#persistence_strategyObject

Returns the persistence strategy object that handles this object’s persistence



44
45
46
# File 'lib/active_triples/persistable.rb', line 44

def persistence_strategy
  @persistence_strategy || set_persistence_strategy(RepositoryStrategy)
end

#reloadBoolean

Repopulates the graph according to the persistence strategy

Returns:

  • (Boolean)


99
100
101
102
# File 'lib/active_triples/persistable.rb', line 99

def reload
  @term_cache ||= {}
  persistence_strategy.reload
end

#set_persistence_strategy(klass) ⇒ Object

Sets a persistence strategy

Parameters:

  • klass (Class)

    A class implementing the persistence strategy interface



53
54
55
# File 'lib/active_triples/persistable.rb', line 53

def set_persistence_strategy(klass)
  @persistence_strategy = klass.new(self)
end