Module: DataMapper

Extended by:
Assertions
Defined in:
lib/dm-core.rb,
lib/dm-core.rb,
lib/dm-core/model.rb,
lib/dm-core/query.rb,
lib/dm-core/version.rb,
lib/dm-core/adapters.rb,
lib/dm-core/model/is.rb,
lib/dm-core/property.rb,
lib/dm-core/resource.rb,
lib/dm-core/backwards.rb,
lib/dm-core/collection.rb,
lib/dm-core/model/hook.rb,
lib/dm-core/query/path.rb,
lib/dm-core/query/sort.rb,
lib/dm-core/repository.rb,
lib/dm-core/spec/setup.rb,
lib/dm-core/model/scope.rb,
lib/dm-core/identity_map.rb,
lib/dm-core/property_set.rb,
lib/dm-core/support/hook.rb,
lib/dm-core/support/mash.rb,
lib/dm-core/property/date.rb,
lib/dm-core/property/text.rb,
lib/dm-core/property/time.rb,
lib/dm-core/model/property.rb,
lib/dm-core/property/class.rb,
lib/dm-core/property/float.rb,
lib/dm-core/query/operator.rb,
lib/dm-core/support/logger.rb,
lib/dm-core/property/binary.rb,
lib/dm-core/property/lookup.rb,
lib/dm-core/property/object.rb,
lib/dm-core/property/serial.rb,
lib/dm-core/property/string.rb,
lib/dm-core/query/direction.rb,
lib/dm-core/support/subject.rb,
lib/dm-core/property/boolean.rb,
lib/dm-core/property/decimal.rb,
lib/dm-core/property/integer.rb,
lib/dm-core/property/numeric.rb,
lib/dm-core/relationship_set.rb,
lib/dm-core/support/ext/hash.rb,
lib/dm-core/support/chainable.rb,
lib/dm-core/support/deprecate.rb,
lib/dm-core/support/equalizer.rb,
lib/dm-core/support/ext/array.rb,
lib/dm-core/support/ext/blank.rb,
lib/dm-core/model/relationship.rb,
lib/dm-core/property/date_time.rb,
lib/dm-core/support/assertions.rb,
lib/dm-core/support/ext/module.rb,
lib/dm-core/support/ext/object.rb,
lib/dm-core/support/ext/string.rb,
lib/dm-core/support/ext/try_dup.rb,
lib/dm-core/support/inflections.rb,
lib/dm-core/support/ordered_set.rb,
lib/dm-core/support/subject_set.rb,
lib/dm-core/spec/lib/spec_helper.rb,
lib/dm-core/property/discriminator.rb,
lib/dm-core/property/typecast/time.rb,
lib/dm-core/support/descendant_set.rb,
lib/dm-core/associations/one_to_one.rb,
lib/dm-core/associations/many_to_one.rb,
lib/dm-core/associations/one_to_many.rb,
lib/dm-core/spec/lib/adapter_helpers.rb,
lib/dm-core/spec/lib/pending_helpers.rb,
lib/dm-core/adapters/abstract_adapter.rb,
lib/dm-core/associations/many_to_many.rb,
lib/dm-core/associations/relationship.rb,
lib/dm-core/property/typecast/numeric.rb,
lib/dm-core/support/inflector/methods.rb,
lib/dm-core/adapters/in_memory_adapter.rb,
lib/dm-core/query/conditions/operation.rb,
lib/dm-core/resource/persistence_state.rb,
lib/dm-core/support/local_object_space.rb,
lib/dm-core/support/naming_conventions.rb,
lib/dm-core/query/conditions/comparison.rb,
lib/dm-core/spec/lib/collection_helpers.rb,
lib/dm-core/property/invalid_value_error.rb,
lib/dm-core/support/inflector/inflections.rb,
lib/dm-core/resource/persistence_state/clean.rb,
lib/dm-core/resource/persistence_state/dirty.rb,
lib/dm-core/resource/persistence_state/deleted.rb,
lib/dm-core/resource/persistence_state/immutable.rb,
lib/dm-core/resource/persistence_state/persisted.rb,
lib/dm-core/resource/persistence_state/transient.rb

Overview

TODO: move argument and option validation into the class

Defined Under Namespace

Modules: Adapters, Assertions, Associations, Chainable, Deprecate, Equalizer, Ext, Hook, Inflector, LocalObjectSpace, Model, NamingConventions, Resource, Spec, Subject, Undefined Classes: Collection, DescendantSet, IdentityMap, ImmutableDeletedError, ImmutableError, IncompleteModelError, Logger, Mash, ObjectNotFoundError, OrderedSet, PersistenceError, PluginNotFoundError, Property, PropertySet, Query, RelationshipSet, Repository, RepositoryNotSetupError, SaveFailureError, SubjectSet, UnknownRelationshipError, UnsavedParentError, UpdateConflictError

Constant Summary collapse

VERSION =
'1.3.0'.freeze

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from Assertions

assert_kind_of

Class Attribute Details

.loggerObject

Returns the value of attribute logger.



36
37
38
# File 'lib/dm-core/support/logger.rb', line 36

def logger
  @logger
end

Class Method Details

.finalizeself

Perform necessary steps to finalize DataMapper for the current repository

This method should be called after loading all models and plugins.

It ensures foreign key properties and anonymous join models are created. These are otherwise lazily declared, which can lead to unexpected errors. It also performs basic validity checking of the DataMapper models.

Returns:

  • (self)


270
271
272
273
# File 'lib/dm-core.rb', line 270

def self.finalize
  Model.descendants.each(&:finalize)
  self
end

.repository(name = nil) {|Proc| ... } ⇒ Object

Block Syntax

Pushes the named repository onto the context-stack,
yields a new session, and pops the context-stack.

Non-Block Syntax

Returns the current session, or if there is none,
a new Session.

Parameters:

  • args (Symbol)

    the name of a repository to act within or return, :default is default

Yields:

  • (Proc)

    (optional) block to execute within the context of the named repository



239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
# File 'lib/dm-core.rb', line 239

def self.repository(name = nil)
  context = Repository.context

  current_repository = if name
                         name = name.to_sym
                         context.detect { |repository| repository.name == name }
                       else
                         name = Repository.default_name
                         context.last
                       end

  current_repository ||= Repository.new(name)

  if block_given?
    current_repository.scope { |*block_args| yield(*block_args) }
  else
    current_repository
  end
end

.rootObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



197
198
199
# File 'lib/dm-core.rb', line 197

def self.root
  @root ||= Pathname(__FILE__).dirname.parent.expand_path.freeze
end

.setup(*args) ⇒ DataMapper::Adapters::AbstractAdapter

Setups up a connection to a data-store

Parameters:

  • name (Symbol)

    a name for the context, defaults to :default

  • uri_or_options (Hash(Symbol => String), Addressable::URI, String)

    connection information

Returns:

Raises:

  • (ArgumentError)

    name must be a Symbol, but was…” indicates that an invalid argument was passed for name

  • (ArgumentError)

    uri_or_options must be a Hash, URI or String, but was…” indicates that connection information could not be gleaned from the given uri_or_options[Hash, Addressable::URI, String]



218
219
220
221
222
223
224
# File 'lib/dm-core.rb', line 218

def self.setup(*args)
  adapter = args.first

  adapter = Adapters.new(*args) unless adapter.is_a?(Adapters::AbstractAdapter)

  Repository.adapters[adapter.name] = adapter
end