module Sequel::Plugins::HstoreTranslate::InstanceMethods

Public Class Methods

included(model) click to toggle source
# File lib/sequel/plugins/hstore_translate.rb, line 33
def self.included(model)
  # define getters and setters
  model.translates.each do |attr|
    model.class_eval do
      I18n.available_locales.each do |locale|
        define_method("#{attr}_#{locale}") do
          (send("#{attr}#{SUFFIX}") || {}).with_indifferent_access[locale.to_s]
        end
        define_method("#{attr}_#{locale}=") do |arg|
          val = (send("#{attr}#{SUFFIX}") || {})
                .with_indifferent_access
                .merge(locale.to_s => arg)
          send("#{attr}#{SUFFIX}=", val)
        end
      end
      define_method(attr.to_s) do
        send("#{attr}_#{I18n.locale}")
      end
      define_method("#{attr}=") do |arg|
        send("#{attr}_#{I18n.locale}=", arg)
      end
    end
  end
end

Public Instance Methods

translated_attribute_names()
Alias for: translated_attrs
translated_attrs() click to toggle source
# File lib/sequel/plugins/hstore_translate.rb, line 28
def translated_attrs
  self.class.translates
end
Also aliased as: translated_attribute_names