Skip to content

Instantly share code, notes, and snippets.

View nicolaracco's full-sized avatar

Nicola Racco nicolaracco

  • Calco, LC - Italy
View GitHub Profile
@nicolaracco
nicolaracco / my_accessors.rb
Created November 16, 2010 08:43
Demo of ruby dynamic method/variable creation
require 'rubygems'
require 'active_support'
# Include this module to define additional helpers
module MyAccessors
extend ActiveSupport::Concern
module ClassMethods
# This helper creates accessors
def create_my_accessors *names
class Model
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Localizable
localized_field :name
validates_default_locale :name
end
#
module Mongoid
module Localizable
class LocalizedValidator < ActiveModel::EachValidator
def validate_each record, attribute, value
if options[:mode] == :only_default
record.errors[:attribute] << (options[:message] || :blank) unless record.send("has_#{attribute}_translation?", I18n.default_locale)
end
end
end
end