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

Version Path
padrino-gen-0.10.0 lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.9.29 lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.9.28 lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.9.27 lib/padrino-gen/padrino-tasks/mongomapper.rb