Module: ActiveTriples

Extended by:
ActiveSupport::Autoload
Defined in:
lib/active_triples.rb,
lib/active_triples/list.rb,
lib/active_triples/schema.rb,
lib/active_triples/version.rb,
lib/active_triples/property.rb,
lib/active_triples/relation.rb,
lib/active_triples/resource.rb,
lib/active_triples/properties.rb,
lib/active_triples/rdf_source.rb,
lib/active_triples/reflection.rb,
lib/active_triples/node_config.rb,
lib/active_triples/persistable.rb,
lib/active_triples/configurable.rb,
lib/active_triples/repositories.rb,
lib/active_triples/configuration.rb,
lib/active_triples/property_builder.rb,
lib/active_triples/nested_attributes.rb,
lib/active_triples/configuration/item.rb,
lib/active_triples/extension_strategy.rb,
lib/active_triples/configuration/merge_item.rb,
lib/active_triples/undefined_property_error.rb,
lib/active_triples/util/buffered_transaction.rb,
lib/active_triples/configuration/item_factory.rb,
lib/active_triples/util/extended_bounded_description.rb,
lib/active_triples/persistence_strategies/parent_strategy.rb,
lib/active_triples/persistence_strategies/repository_strategy.rb,
lib/active_triples/persistence_strategies/persistence_strategy.rb

Overview

An ActiveModel compliant ObjectGraphMapper for RDF data.

Models graphs as ‘RDFSources` with property/attribute configuration, accessors, and other methods to support Linked Data in a Ruby enviornment.

Examples:

modeling a simple resource

class Thing
  include  ActiveTriples::RDFSource
  configure :type => RDF::OWL.Thing, :base_uri => 'http://example.org/things#'
  property :title, :predicate => RDF::DC.title
  property :description, :predicate => RDF::DC.description
end

obj = Thing.new('123')
obj.title = 'Resource'
obj.description = 'A resource.'
obj.dump :ntriples 
 # => "<http://example.org/things#123> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Thing> .\n<http://example.org/things#123> <http://purl.org/dc/terms/title> \"Resource\" .\n<http://example.org/things#123> <http://purl.org/dc/terms/description> \"A resource.\" .\n"

See Also:

Defined Under Namespace

Modules: Configurable, Identifiable, NestedAttributes, Persistable, PersistenceStrategy, Properties, RDFSource, Reflection, Repositories Classes: BufferedTransaction, Configuration, ExtendedBoundedDescription, ExtensionStrategy, List, NodeConfig, ParentStrategy, Property, PropertyBuilder, Relation, RepositoryNotFoundError, RepositoryStrategy, Resource, Schema, UndefinedPropertyError

Constant Summary collapse

VERSION =
'1.1.0'.freeze

Class Method Summary collapse

Class Method Details

.ActiveTripelsObject

A simplified, Belgian version of this software



104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/active_triples.rb', line 104

def self.ActiveTripels
  puts <<-eos

      ###########
      ******o****
       **o******
        *******
         \\***/
          | |
          ( )
          / \\
      ,---------.

eos
"Yum"
end

.class_from_string(class_name, container_class = Kernel) ⇒ Class

Converts a string for a class or module into a a constant. This will find classes in or above a given container class.

Examples:

finding a class in Kernal

ActiveTriples.class_from_string('MyClass') # => MyClass

finding a class in a module

ActiveTriples.class_from_string('MyClass', MyModule) 
# => MyModule::MyClass

when a class exists above the module, but not in it

ActiveTriples.class_from_string('Object', MyModule) 
# => Object

Parameters:

  • class_name (String)
  • container_class (defaults to: Kernel)

Returns:

  • (Class)


86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/active_triples.rb', line 86

def self.class_from_string(class_name, container_class=Kernel)
  container_class = container_class.name if container_class.is_a? Module
  container_parts = container_class.split('::')
  (container_parts + class_name.split('::'))
    .flatten.inject(Kernel) do |mod, class_name|
    if mod == Kernel
      Object.const_get(class_name)
    elsif mod.const_defined? class_name.to_sym
      mod.const_get(class_name)
    else
      container_parts.pop
      class_from_string(class_name, container_parts.join('::'))
    end
  end
end