Sha256: 58b7c13c839e3a7c397237ae0dc00c49f2a760aaf6236e4fb535078f3756c208
Contents?: true
Size: 1.98 KB
Versions: 4
Compression:
Stored size: 1.98 KB
Contents
if defined?(MongoMapper) namespace :mm do desc 'Drops all the collections for the database for the current Rails.env' task :drop => :environment do MongoMapper.database.collections.select {|c| c.name !~ /system/ }.each(&:drop) end if defined?(I18n) 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) # for now we use only one # 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 # Do some ere 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 end end
Version data entries
4 entries across 4 versions & 1 rubygems