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/reporter.rb,
lib/columns_trace/rails_integration.rb,
lib/columns_trace/sidekiq_integration.rb

Defined Under Namespace

Modules: Registry Classes: Railtie, Reporter, SidekiqMiddleware

Constant Summary collapse

VERSION =
"0.1.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.backtrace_cleanerObject



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

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 }]


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

def ignored_columns
  @ignored_columns
end

.ignored_modelsObject



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

def ignored_models
  @ignored_models
end

.loggerObject

Allows to set the logger. Defaults to logger, that outputs to ‘log/columns_trace.log` file when inside a rails application.



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

def logger
  @logger
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



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

def configure
  yield self
end

.enable_sidekiq_tracing!Object

Enables integration with Sidekiq, which is disabled by default.



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

def enable_sidekiq_tracing!
  require_relative "columns_trace/sidekiq_integration"
  true
end

.ignored_column?(model, column) ⇒ Boolean

Returns:

  • (Boolean)


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

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:

  • (Boolean)


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

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