#!/usr/bin/env ruby require 'rubygems' require "#{File.dirname(__FILE__)}/../config/environment" def import_profile(config) puts "Importing profile" config.keys.each do |record_type| puts record_type.to_s puts "#{config[record_type].size} registros" if record_type == :article_version klass = Article::Version else klass = record_type.to_s.camelize.constantize end config[record_type.to_sym].each do |attrs| settings = attrs.keys.select { |k| attrs[k.to_sym].is_a? Hash } names = attrs.except(*settings).keys values = names.map {|k| ActiveRecord::Base.send(:sanitize_sql_array, ['?', attrs[k.to_sym]]) } sql = 'insert into %s(%s) values (%s)' % [klass.table_name, names.join(','), values.join(',')] klass.connection.execute(sql) record = klass.find(attrs[:id]) settings.each do |setting| record.send("#{setting}=", attrs[setting.to_sym]) record.save end end end end if ARGV.blank? puts "--- Please provide the yaml configuration file ---" exit 0 else $config_file = ARGV[0] config = YAML::load_file($config_file) import_profile config end