Module: ColumnsTrace

Defined in:
lib/columns_trace.rb,
lib/columns_trace/railtie.rb,
lib/columns_trace/version.rb,
lib/columns_trace/registry.rb,
lib/columns_trace/log_reporter.rb,
lib/columns_trace/created_record.rb,
lib/columns_trace/rails_integration.rb,
lib/columns_trace/sidekiq_integration.rb

Defined Under Namespace

Modules: Registry Classes: CreatedRecord, LogReporter, Railtie, SidekiqMiddleware

Constant Summary collapse

VERSION =
"0.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.backtrace_cleanerObject



65
66
67
# File 'lib/columns_trace.rb', line 65

def backtrace_cleaner
  @backtrace_cleaner
end

.ignored_columnsObject

Configures columns that will be ignored.

Examples:

Global setting

ColumnsTrace.ignored_columns = [:updated_at]

Per-model setting

ColumnsTrace.ignored_columns = [:updated_at, { User => :admin }]


41
42
43
# File 'lib/columns_trace.rb', line 41

def ignored_columns
  @ignored_columns
end

.ignored_modelsObject



15
16
17
# File 'lib/columns_trace.rb', line 15

def ignored_models
  @ignored_models
end

.reporterObject

Allows to set the reporter. Defaults to log reporter that outputs to log/columns_trace.log file when inside a rails application.



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

def reporter
  @reporter
end

Class Method Details

.configure {|_self| ... } ⇒ Object

A convenient method to configure this gem.

Examples:

ColumnsTrace.configure do |config|
  # ...
end

Yields:

  • (_self)

Yield Parameters:

  • _self (ColumnsTrace)

    the object that the method was called on



93
94
95
# File 'lib/columns_trace.rb', line 93

def configure
  yield self
end

.enable_sidekiq_tracing!Object

Enables integration with Sidekiq, which is disabled by default.



81
82
83
84
# File 'lib/columns_trace.rb', line 81

def enable_sidekiq_tracing!
  require_relative "columns_trace/sidekiq_integration"
  true
end

.ignored_column?(model, column) ⇒ Boolean

Returns:



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/columns_trace.rb', line 44

def ignored_column?(model, column)
  ignored_columns.any? do |value|
    if value.is_a?(Hash)
      columns = value[model] || value[model.name] || value[model.name.to_sym]
      if columns
        columns = Array(columns).map(&:to_s)
        columns.include?(column)
      end
    else
      value.to_s == column
    end
  end
end

.ignored_model?(model) ⇒ Boolean

Returns:



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

def ignored_model?(model)
  ignored_models.include?(model)
end