Class: AuditLogger::ModelConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/audit_logger/model_config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(humanize: nil, i18n_scopes: nil, humanizer: nil, ignored_attributes: []) ⇒ ModelConfig

Returns a new instance of ModelConfig.



8
9
10
11
12
13
14
15
# File 'lib/audit_logger/model_config.rb', line 8

def initialize(humanize: nil, i18n_scopes: nil, humanizer: nil, ignored_attributes: [])
  @humanize = humanize
  @i18n_scopes = i18n_scopes
  @humanizer = humanizer
  @ignored_attributes = Array(ignored_attributes)

  validate!
end

Instance Attribute Details

#humanizeObject (readonly)

Guarda apenas a configuracao local da model, sem misturar com a global.



6
7
8
# File 'lib/audit_logger/model_config.rb', line 6

def humanize
  @humanize
end

#humanizerObject (readonly)

Guarda apenas a configuracao local da model, sem misturar com a global.



6
7
8
# File 'lib/audit_logger/model_config.rb', line 6

def humanizer
  @humanizer
end

#i18n_scopesObject (readonly)

Guarda apenas a configuracao local da model, sem misturar com a global.



6
7
8
# File 'lib/audit_logger/model_config.rb', line 6

def i18n_scopes
  @i18n_scopes
end

#ignored_attributesObject (readonly)

Guarda apenas a configuracao local da model, sem misturar com a global.



6
7
8
# File 'lib/audit_logger/model_config.rb', line 6

def ignored_attributes
  @ignored_attributes
end

Instance Method Details

#effective_humanizer(global_configuration) ⇒ Object

Prioriza o humanizer da model e cai no global quando necessario.



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

def effective_humanizer(global_configuration)
  humanizer || global_configuration.humanizer
end

#effective_i18n_scopes(global_configuration) ⇒ Object

Retorna os escopos efetivos usados para traducao desta model.



25
26
27
28
29
# File 'lib/audit_logger/model_config.rb', line 25

def effective_i18n_scopes(global_configuration)
  return global_configuration.i18n_scopes if i18n_scopes.nil? || i18n_scopes.empty?

  i18n_scopes
end

#effective_ignored_attributes(global_configuration) ⇒ Object

Combina ignored attributes globais e locais em uma lista unica.



37
38
39
# File 'lib/audit_logger/model_config.rb', line 37

def effective_ignored_attributes(global_configuration)
  (global_configuration.ignored_attributes + ignored_attributes).map(&:to_s).uniq
end

#humanize_enabled?(global_configuration) ⇒ Boolean

Resolve se a humanizacao ficara ativa considerando override local.

Returns:

  • (Boolean)


18
19
20
21
22
# File 'lib/audit_logger/model_config.rb', line 18

def humanize_enabled?(global_configuration)
  return global_configuration.humanize_by_default if humanize.nil?

  humanize
end