Sha256: f3579cc6542a957b1bc88a5d6c59b1ea62fe7fc702a8e22a2af8a6623d436bd5
Contents?: true
Size: 1.96 KB
Versions: 43
Compression:
Stored size: 1.96 KB
Contents
if defined?(MongoMapper) begin require 'i18n' rescue LoadError # Only do this for I18n check later. end namespace :mm do desc 'Drops all the collections for the database for the current Padrino.env' task :drop => :environment do MongoMapper.database.collections.select {|c| c.name !~ /system/ }.each(&:drop) end desc "Generates .yml files for I18n translations" task :translate => :environment do models = Dir["#{Padrino.root}/{app,}/models/**/*.rb"].map { |m| File.basename(m, ".rb") } models.each do |m| # Get the model class. klass = m.camelize.constantize # Init the processing print "Processing #{m.humanize}: " FileUtils.mkdir_p("#{Padrino.root}/app/locale/models/#{m}") langs = Array(I18n.locale) # Create models for it and en locales. langs.each do |lang| filename = "#{Padrino.root}/app/locale/models/#{m}/#{lang}.yml" columns = klass.keys.values.map(&:name).reject { |name| name =~ /id/i } # If the lang file already exist we need to check it if File.exist?(filename) locale = File.open(filename).read columns.each do |c| locale += "\n #{c}: #{c.humanize}" unless locale.include?("#{c}:") end print "Lang #{lang.to_s.upcase} already exist ... "; $stdout.flush else locale = "#{lang}:" + "\n" + " models:" + "\n" + " #{m}:" + "\n" + " name: #{klass.human_name}" + "\n" + " attributes:" + "\n" + columns.map { |c| " #{c}: #{c.humanize}" }.join("\n") print "created a new for #{lang.to_s.upcase} Lang ... "; $stdout.flush end File.open(filename, "w") { |f| f.puts locale } end puts end end end task 'db:drop' => 'mm:drop' end
Version data entries
43 entries across 43 versions & 1 rubygems