Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
38 lines (35 sloc) 1.02 KB
# This module is intended to be mixed into the ActiveRecord backend to allow
# storing Ruby Procs as translation values in the database.
#
# I18n.backend = I18n::Backend::ActiveRecord.new
# I18n::Backend::ActiveRecord::Translation.send(:include, I18n::Backend::ActiveRecord::StoreProcs)
#
# The StoreProcs module requires the ParseTree and ruby2ruby gems and therefor
# was extracted from the original backend.
#
# ParseTree is not compatible with Ruby 1.9.
begin
require 'ruby2ruby'
require 'parse_tree'
require 'parse_tree_extensions'
rescue LoadError => e
puts "can't use StoreProcs because: #{e.message}"
end
module I18n
module Backend
class ActiveRecord
module StoreProcs
def value=(v)
case v
when Proc
write_attribute(:value, v.to_ruby)
write_attribute(:is_proc, true)
else
write_attribute(:value, v)
end
end
Translation.send(:include, self) if method(:to_s).respond_to?(:to_ruby)
end
end
end
end
Jump to Line
Something went wrong with that request. Please try again.