Module: Petra

Extended by:
SingleForwardable
Defined in:
lib/petra.rb,
lib/petra/version.rb,
lib/petra/core_ext.rb,
lib/petra/exceptions.rb,
lib/petra/util/debug.rb,
lib/petra/util/registrable.rb,
lib/petra/util/test_helpers.rb,
lib/petra/components/section.rb,
lib/petra/configuration/base.rb,
lib/petra/components/entry_set.rb,
lib/petra/components/log_entry.rb,
lib/petra/proxies/module_proxy.rb,
lib/petra/proxies/object_proxy.rb,
lib/petra/util/field_accessors.rb,
lib/petra/components/proxy_cache.rb,
lib/petra/components/transaction.rb,
lib/petra/proxies/abstract_proxy.rb,
lib/petra/proxies/method_handlers.rb,
lib/petra/proxies/enumerable_proxy.rb,
lib/petra/configuration/configurator.rb,
lib/petra/persistence_adapters/adapter.rb,
lib/petra/components/transaction_manager.rb,
lib/petra/configuration/class_configurator.rb,
lib/petra/components/entries/attribute_read.rb,
lib/petra/persistence_adapters/file_adapter.rb,
lib/petra/util/extended_attribute_accessors.rb,
lib/petra/components/entries/attribute_change.rb,
lib/petra/components/entries/object_destruction.rb,
lib/petra/components/entries/object_persistence.rb,
lib/petra/proxies/handlers/attribute_read_handler.rb,
lib/petra/proxies/handlers/missing_method_handler.rb,
lib/petra/components/entries/attribute_change_veto.rb,
lib/petra/components/entries/object_initialization.rb,
lib/petra/components/entries/read_integrity_override.rb

Defined Under Namespace

Modules: Components, Configuration, CoreExt, PersistenceAdapters, Proxies, Util Classes: AbortTransaction, ConfigurationError, ControlFlowException, ExtendedError, HandlerException, LockError, PersistenceError, PetraError, ReadIntegrityError, Reset, Retry, Rollback, TransactionLocked, ValueComparisonError, WriteClashError

Constant Summary collapse

VERSION =
'0.0.5'

Class Method Summary collapse

Class Method Details

.commit!Object

Attempts to commit the currently active transaction



69
70
71
# File 'lib/petra.rb', line 69

def self.commit!
  transaction_manager.commit_transaction
end

.configurationPetra::Configuration::Base

Returns petra’s configuration instance.

Returns:



39
40
41
# File 'lib/petra.rb', line 39

def self.configuration
  @configuration ||= Petra::Configuration::Base.new
end

.configure(&proc) ⇒ Object

Executes the given block in the context of petra’s configuration instance



46
47
48
# File 'lib/petra.rb', line 46

def self.configure(&proc)
  configuration.instance_eval(&proc) if block_given?
end

.loggerObject

Logs the given message



85
86
87
# File 'lib/petra.rb', line 85

def self.logger
  Petra::Util::Debug
end

.rails?Boolean

Returns:

  • (Boolean)


89
90
91
# File 'lib/petra.rb', line 89

def self.rails?
  defined?(Rails)
end

.rootObject



32
33
34
# File 'lib/petra.rb', line 32

def self.root
  Pathname.new(File.dirname(__FILE__))
end

.transaction(identifier: nil, &block) ⇒ Object

Forward transaction handling to the TransactionManager class



55
56
57
# File 'lib/petra.rb', line 55

def self.transaction(identifier: nil, &block)
  Petra::Components::TransactionManager.with_transaction(identifier: identifier || SecureRandom.uuid, &block)
end

.transaction_managerPetra::Components::TransactionManager, NilClass



76
77
78
# File 'lib/petra.rb', line 76

def self.transaction_manager
  Petra::Components::TransactionManager.instance
end

.transaction_running?Boolean

Returns true if a transaction is currently running.

Returns:

  • (Boolean)

    true if a transaction is currently running



62
63
64
# File 'lib/petra.rb', line 62

def self.transaction_running?
  Petra::Components::TransactionManager.instance?
end