Sha256: b2554d32869f5eaf1b701c8cb198e2e2d7c438f7f34e25e8936ec2b209c20b6d
Contents?: true
Size: 1.09 KB
Versions: 3
Compression:
Stored size: 1.09 KB
Contents
# encoding: utf-8 module LocalizableModel # = LocalizableModel::ActiveRecordExtension # # Extends ActiveRecord::Base with the localizable setup method. # module ActiveRecordExtension # Extends the model with Localizable features. # It takes an optional block as argument, which yields an instance of # LocalizableModel::Configuration. # # Example: # # class Page < ActiveRecord::Base # localizable do # attribute :name # attribute :body # end # end # def localizable(&block) unless is_a?(LocalizableModel::ClassMethods) send :extend, LocalizableModel::ClassMethods send :include, LocalizableModel::InstanceMethods has_many(:localizations, as: :localizable, dependent: :destroy, autosave: true) before_save :cleanup_localizations! end localizable_configuration.instance_eval(&block) if block_given? define_localizable_methods! end end end ActiveRecord::Base.send(:extend, LocalizableModel::ActiveRecordExtension)
Version data entries
3 entries across 3 versions & 1 rubygems