Module: Logidze

Extended by:
Meta
Defined in:
lib/logidze.rb,
lib/logidze/meta.rb,
lib/logidze/model.rb,
lib/logidze/engine.rb,
lib/logidze/history.rb,
lib/logidze/version.rb,
lib/logidze/detachable.rb,
lib/logidze/has_logidze.rb,
lib/logidze/history/type.rb,
lib/logidze/history/version.rb,
lib/logidze/ignore_log_data.rb,
app/models/logidze/logidze_data.rb,
lib/logidze/utils/check_pending.rb,
lib/generators/logidze/fx_helper.rb,
lib/generators/logidze/inject_sql.rb,
lib/logidze/versioned_association.rb,
lib/logidze/utils/function_definitions.rb,
lib/logidze/utils/pending_migration_error.rb,
lib/generators/logidze/model/model_generator.rb,
lib/generators/logidze/migration/logs_generator.rb,
lib/generators/logidze/install/install_generator.rb

Overview

:nodoc: all

Defined Under Namespace

Modules: Detachable, Generators, HasLogidze, IgnoreLogData, Meta, Model, Utils, VersionedAssociation Classes: Engine, History, LogidzeData

Constant Summary collapse

VERSION =
"1.4.1"

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from Meta

with_meta, with_responsible

Class Attribute Details

.append_on_undoObject

Determines if Logidze should append a version to the log after updating an old version.



22
23
24
# File 'lib/logidze.rb', line 22

def append_on_undo
  @append_on_undo
end

.associations_versioningObject

Determines whether associations versioning is enabled or not



24
25
26
# File 'lib/logidze.rb', line 24

def associations_versioning
  @associations_versioning
end

.ignore_log_data_by_defaultObject

Determines if Logidze should exclude log data from SELECT statements



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

def ignore_log_data_by_default
  @ignore_log_data_by_default
end

.log_data_placementObject

Determines where to store log_data:

  • :inline - force Logidze to store it in the origin table in the log_data column

  • :detached - force Logidze to store it in the logidze_data table in the log_data column

By default we do not set log_data_placement value and rely on ‘has_logidze` macros



38
39
40
# File 'lib/logidze.rb', line 38

def log_data_placement
  @log_data_placement
end

.on_pending_upgradeObject

Determines what Logidze should do when upgrade is needed (:raise | :warn | :ignore)



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

def on_pending_upgrade
  @on_pending_upgrade
end

.return_self_if_log_data_is_emptyObject

Whether #at should return self or nil when log_data is nil



28
29
30
# File 'lib/logidze.rb', line 28

def return_self_if_log_data_is_empty
  @return_self_if_log_data_is_empty
end

.sort_triggers_by_nameObject

Determines if triggers are sorted by related table id or by name



30
31
32
# File 'lib/logidze.rb', line 30

def sort_triggers_by_name
  @sort_triggers_by_name
end

Class Method Details

.detached_log_placement?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/logidze.rb', line 63

def detached_log_placement?
  @log_data_placement == :detached
end

.inline_log_placement?Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/logidze.rb', line 67

def inline_log_placement?
  @log_data_placement == :inline
end

.with_full_snapshotObject

Instruct Logidze to create a full snapshot for the new versions, not a diff

Examples:

Logidze.with_full_snapshot { post.touch }


52
53
54
# File 'lib/logidze.rb', line 52

def with_full_snapshot
  with_logidze_setting("logidze.full_snapshot", "on") { yield }
end

.without_loggingObject

Temporary disable DB triggers.

Examples:

Logidze.without_logging { Post.update_all(active: true) }


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

def without_logging
  with_logidze_setting("logidze.disabled", "on") { yield }
end