Sha256: 132114b9b2cd4369158fb776b64bb2c4d02641f0a1271685a474ad828d29c944

Contents?: true

Size: 1.09 KB

Versions: 4

Compression:

Stored size: 1.09 KB

Contents

# -*- encoding : utf-8 -*-

class User < Cardio::Record
end

class UserDataToCards < Cardio::Migration::Transform
  def up
    puts "importing all user details (for those not in trash) into +*account attributes"
    User.all.each do |user|
      next unless (base = user.card_id.card)
      puts "~ importing details for #{base.name}"
      import_user_fields user, base
    end
  end

  def import_user_fields user, base
    date_args = date_args user
    %i[email salt password status].each do |field|
      cardname = [base.name, :account, field].cardname
      next unless (content = field_content field, user)

      import_user_field cardname, date_args, content
    end
  end

  def date_args user
    { created_at: user.created_at, updated_at: user.updated_at }
  end

  def field_content field, user
    user_field = (field == :password ? :crypted_password : field)
    user.send user_field
  end

  def import_user_field cardname, date_args, content
    Card.create! date_args.merge(name: cardname, content: content)
  rescue StandardError => e
    puts "error importing #{cardname}: #{e.message}"
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
card-1.108.1 mod/core/data/transform/20140307231621_user_data_to_cards.rb
card-1.108.0 mod/core/data/transform/20140307231621_user_data_to_cards.rb
card-1.107.0 mod/core/data/transform/20140307231621_user_data_to_cards.rb
card-1.106.0 mod/core/data/transform/20140307231621_user_data_to_cards.rb