Module: ConcernsOnRails

Defined in:
lib/concerns_on_rails.rb,
lib/concerns_on_rails/version.rb,
lib/concerns_on_rails/encryption.rb,
lib/concerns_on_rails/support/money.rb,
lib/concerns_on_rails/legacy_aliases.rb,
lib/concerns_on_rails/support/masker.rb,
lib/concerns_on_rails/models/hashable.rb,
lib/concerns_on_rails/models/lockable.rb,
lib/concerns_on_rails/models/maskable.rb,
lib/concerns_on_rails/models/sortable.rb,
lib/concerns_on_rails/models/storable.rb,
lib/concerns_on_rails/models/taggable.rb,
lib/concerns_on_rails/models/aliasable.rb,
lib/concerns_on_rails/models/auditable.rb,
lib/concerns_on_rails/models/expirable.rb,
lib/concerns_on_rails/models/sluggable.rb,
lib/concerns_on_rails/models/stateable.rb,
lib/concerns_on_rails/models/searchable.rb,
lib/concerns_on_rails/support/encryptor.rb,
lib/concerns_on_rails/models/activatable.rb,
lib/concerns_on_rails/models/addressable.rb,
lib/concerns_on_rails/models/encryptable.rb,
lib/concerns_on_rails/models/monetizable.rb,
lib/concerns_on_rails/models/publishable.rb,
lib/concerns_on_rails/models/sanitizable.rb,
lib/concerns_on_rails/models/schedulable.rb,
lib/concerns_on_rails/models/tokenizable.rb,
lib/concerns_on_rails/models/normalizable.rb,
lib/concerns_on_rails/models/sequenceable.rb,
lib/concerns_on_rails/controllers/sortable.rb,
lib/concerns_on_rails/support/address_data.rb,
lib/concerns_on_rails/support/column_guard.rb,
lib/concerns_on_rails/support/random_value.rb,
lib/concerns_on_rails/controllers/cacheable.rb,
lib/concerns_on_rails/models/soft_deletable.rb,
lib/concerns_on_rails/controllers/filterable.rb,
lib/concerns_on_rails/controllers/includable.rb,
lib/concerns_on_rails/controllers/localizable.rb,
lib/concerns_on_rails/controllers/paginatable.rb,
lib/concerns_on_rails/controllers/respondable.rb,
lib/concerns_on_rails/support/html_sanitizers.rb,
lib/concerns_on_rails/controllers/authorizable.rb,
lib/concerns_on_rails/controllers/deprecatable.rb,
lib/concerns_on_rails/controllers/throttleable.rb,
lib/concerns_on_rails/controllers/timezoneable.rb,
lib/concerns_on_rails/models/counter_cacheable.rb,
lib/concerns_on_rails/controllers/idempotentable.rb,
lib/concerns_on_rails/controllers/secure_headable.rb,
lib/concerns_on_rails/support/sequence_calculator.rb,
lib/concerns_on_rails/controllers/error_handleable.rb,
lib/concerns_on_rails/controllers/cursor_paginatable.rb,
lib/concerns_on_rails/controllers/webhook_verifiable.rb

Defined Under Namespace

Modules: Controllers, Encryption, Models, Support

Constant Summary collapse

VERSION =
"1.21.0".freeze
Sluggable =

Backwards-compatibility aliases for pre-1.6 module paths. Existing apps doing include ConcernsOnRails::Sluggable continue to work; new code is encouraged to use the namespaced form: ConcernsOnRails::Models::Sluggable.

Models::Sluggable
Sortable =
Models::Sortable
Publishable =
Models::Publishable
SoftDeletable =
Models::SoftDeletable
Hashable =
Models::Hashable
Schedulable =
Models::Schedulable
Expirable =
Models::Expirable
Normalizable =
Models::Normalizable
Searchable =
Models::Searchable
Activatable =
Models::Activatable
Tokenizable =
Models::Tokenizable
Stateable =
Models::Stateable
Addressable =
Models::Addressable
Sequenceable =
Models::Sequenceable
Taggable =
Models::Taggable
Sanitizable =
Models::Sanitizable
Maskable =
Models::Maskable
Monetizable =
Models::Monetizable
Auditable =
Models::Auditable
Lockable =
Models::Lockable
Aliasable =
Models::Aliasable
Storable =
Models::Storable
CounterCacheable =
Models::CounterCacheable
Encryptable =
Models::Encryptable

Class Method Summary collapse

Class Method Details

.configure_encryption {|encryption| ... } ⇒ Object

Yields:



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

def self.configure_encryption
  yield encryption if block_given?
  encryption
end

.deprecatorObject

Gem-wide deprecator backing alias_association ..., deprecated: (and any future deprecation surface). A dedicated instance — not the global ActiveSupport::Deprecation singleton, whose direct use is itself deprecated on Rails 7.1+. Default behavior prints to $stderr; Rails apps can re-route it (e.g. config.active_support.deprecation style):

ConcernsOnRails.deprecator.behavior = :log


17
18
19
# File 'lib/concerns_on_rails.rb', line 17

def self.deprecator
  @deprecator ||= ActiveSupport::Deprecation.new("2.0", "concerns_on_rails")
end

.encryptionObject

Gem-wide encryption configuration backing Models::Encryptable. Memoized like deprecator; the host app supplies the key (see ConcernsOnRails::Encryption):

ConcernsOnRails.configure_encryption do |c|
c.key = -> { Rails.application.credentials.dig(:encryption, :key) }
end


27
28
29
# File 'lib/concerns_on_rails.rb', line 27

def self.encryption
  @encryption ||= Encryption::Config.new
end