Sha256: 80288f827363f77ba015f5e6a94ade751ca34ed5cc130cbecb82bbba64b7b06d

Contents?: true

Size: 971 Bytes

Versions: 30

Compression:

Stored size: 971 Bytes

Contents

module Mobility
  module Plugins
    module ActiveRecord
      module TranslatedAttributes
        def translated_attributes
          {}
        end

        def attributes
          super.merge(translated_attributes)
        end
      end

=begin

Module builder adding translated attributes to #attributes hash on model
instance. See {Mobility::Plugins::AttributeMethods} for further details.

=end
      class AttributeMethods < Module
        def initialize(*attribute_names)
          include TranslatedAttributes
          define_method :translated_attributes do
            super().merge(attribute_names.inject({}) do |attributes, name|
              attributes.merge(name.to_s => send(name))
            end)
          end
        end

        def included(model_class)
          model_class.class_eval do
            define_method :untranslated_attributes, ::ActiveRecord::Base.instance_method(:attributes)
          end
        end
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
mobility-0.8.13 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.8.11 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.8.10 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.8.9 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.8.8 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.8.7 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.8.6 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.8.5 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.8.4 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.8.3 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.8.2 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.8.1 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.8.0 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.7.6 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.7.5 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.7.4 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.7.3 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.7.2 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.7.1 lib/mobility/plugins/active_record/attribute_methods.rb
mobility-0.7.0 lib/mobility/plugins/active_record/attribute_methods.rb