Sha256: e677edea943d8ebe21422f60ddb75252b2b3f70651cb74880b6e597a8ef1c2d9

Contents?: true

Size: 1.26 KB

Versions: 14

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

require 'carrierwave/orm/activerecord' if defined?(CarrierWave::Mount)

module Tramway
  module Core
    class ApplicationRecord < ActiveRecord::Base
      self.abstract_class = true
      audited
      extend ::Enumerize

      state_machine :state, initial: :active do
        state :active
        state :removed

        event :remove do
          transition active: :remove
        end
      end

      scope :active, -> { where state: :active }

      include ::PgSearch::Model

      # FIXME: detect inhertited locales
      class << self
        def human_attribute_name(attribute_name, *_args)
          excepted_attributes = %w[created_at updated_at state]
          if attribute_name.to_s.in? excepted_attributes
            I18n.t "activerecord.attributes.tramway/core/application_record.#{attribute_name}"
          else
            super attribute_name
          end
        end

        def search_by(*attributes, **associations)
          pg_search_scope :full_text_search, against: attributes, associated_against: associations
        end
      end

      # FIXME: detect inhertited locales
      def human_state_name
        I18n.t "activerecord.state_machines.tramway/core/application_record.state.states.#{state}"
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
tramway-core-1.14.7.2 app/models/tramway/core/application_record.rb
tramway-core-1.14.7.1 app/models/tramway/core/application_record.rb
tramway-core-1.14.7 app/models/tramway/core/application_record.rb
tramway-core-1.14.6.1 app/models/tramway/core/application_record.rb
tramway-core-1.14.6 app/models/tramway/core/application_record.rb
tramway-core-1.14.5.3 app/models/tramway/core/application_record.rb
tramway-core-1.14.5.2 app/models/tramway/core/application_record.rb
tramway-core-1.14.5.1 app/models/tramway/core/application_record.rb
tramway-core-1.14.5 app/models/tramway/core/application_record.rb
tramway-core-1.14.4 app/models/tramway/core/application_record.rb
tramway-core-1.14.3.2 app/models/tramway/core/application_record.rb
tramway-core-1.14.3.1 app/models/tramway/core/application_record.rb
tramway-core-1.14.3 app/models/tramway/core/application_record.rb
tramway-core-1.14.2.4 app/models/tramway/core/application_record.rb