Sha256: 7db6eb7f9fb136d07c3a9b7f4998753f0cc29ed8808eec8cdd14993e1d00a9d8

Contents?: true

Size: 1.98 KB

Versions: 12

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

12 entries across 12 versions & 1 rubygems

Version Path
padrino-gen-0.10.7 lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.10.6 lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.10.6.e lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.10.6.d lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.10.6.c lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.10.6.b lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.10.6.a lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.10.5 lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.10.4 lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.10.3 lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.10.2 lib/padrino-gen/padrino-tasks/mongomapper.rb
padrino-gen-0.10.1 lib/padrino-gen/padrino-tasks/mongomapper.rb