Sha256: f47a352d4400e9d4def1cf1febdc53c2e6d97bf3cfc684a68a846a44f9aceea1

Contents?: true

Size: 702 Bytes

Versions: 1

Compression:

Stored size: 702 Bytes

Contents

module Rosetta
  class Locale < ApplicationRecord
    CODE_FORMAT = /\A[a-zA-Z]+(-[a-zA-Z]+)?\z/

    validates :name, :code, presence: true
    validates :code, uniqueness: true
    validates :code, format: { with: CODE_FORMAT, message: "must only contain letters separated by an optional dash" }

    has_many :translations, dependent: :destroy

    class << self
      def available_locales
        [ Locale.default_locale ] + all
      end

      def default_locale
        @default_locale ||= new(Rosetta.config.default_locale.to_h).as_default
      end
    end

    def default_locale?
      @default
    end

    def as_default
      @default = true
      readonly!
      self
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rosetta-rails-0.1.1 app/models/rosetta/locale.rb