Sha256: 329d20fd87e8c5e5b9f673ac8eb3a2494f99588f92075cbbdc679a63c98c3797

Contents?: true

Size: 1.04 KB

Versions: 7

Compression:

Stored size: 1.04 KB

Contents

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

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 }

      # 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
      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

7 entries across 7 versions & 1 rubygems

Version Path
tramway-core-1.9.2.1 app/models/tramway/core/application_record.rb
tramway-core-1.9.2 app/models/tramway/core/application_record.rb
tramway-core-1.9.1 app/models/tramway/core/application_record.rb
tramway-core-1.9 app/models/tramway/core/application_record.rb
tramway-core-1.8.4 app/models/tramway/core/application_record.rb
tramway-core-1.8.3 app/models/tramway/core/application_record.rb
tramway-core-1.8.2 app/models/tramway/core/application_record.rb