Sha256: 101a37102a6fb57a63735c40421681ff0d3239173302f85934677286105db16a

Contents?: true

Size: 982 Bytes

Versions: 3

Compression:

Stored size: 982 Bytes

Contents

module Lipsiadmin
  module DataBase
    # With this method we can translate define and automatically translate columns for
    # the current rails locale.
    #
    # Defining some columns like these:
    #
    #   m.col :string, :name_it, :name_en, :name_cz
    #   m.col :text, :description_it, :description_en, :description_cz
    #
    # we can call
    #
    #   myinstance.name
    #
    # or
    #
    #   puts myinstance.description
    #
    # Lipsiadmin look for name_#{I18n.locale}
    #
    module TranslateAttributes
      # Define <tt>method missing</tt> to intercept calls to non-localized methods (eg. +name+ instead of +name_cz+)
      def method_missing(method_name, *arguments)
        # puts "Trying to send '#{method_name}_#{I18n.locale}' to #{self.class}" # uncomment for easy debugging in script/console
        return self.send(:"#{method_name}_#{I18n.locale}") if self.respond_to?(:"#{method_name}_#{I18n.locale}")
        super
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lipsiadmin-5.1.9 lib/data_base/translate_attributes.rb
lipsiadmin-5.1.8 lib/data_base/translate_attributes.rb
lipsiadmin-5.1.7 lib/data_base/translate_attributes.rb