class Ahoy::Generators::Messages::ActiverecordGenerator

Public Instance Methods

adapter() click to toggle source
# File lib/generators/ahoy/messages/activerecord_generator.rb, line 74
def adapter
  ActiveRecord::Base.connection_db_config.adapter.to_s
end
copy_migration() click to toggle source
# File lib/generators/ahoy/messages/activerecord_generator.rb, line 14
def copy_migration
  encryption # ensure valid
  migration_template "migration.rb", "db/migrate/create_ahoy_messages.rb", migration_version: migration_version
end
copy_template() click to toggle source
# File lib/generators/ahoy/messages/activerecord_generator.rb, line 19
def copy_template
  case encryption
  when "lockbox"
    template "model_lockbox.rb", "app/models/ahoy/message.rb", lockbox_method: lockbox_method
  when "activerecord"
    template "model_activerecord.rb", "app/models/ahoy/message.rb"
  end
end
encryption() click to toggle source

TODO remove default

# File lib/generators/ahoy/messages/activerecord_generator.rb, line 46
def encryption
  case options[:encryption]
  when "lockbox", "activerecord", "none"
    options[:encryption]
  when nil
    if options[:unencrypted]
      # TODO deprecation warning
      "none"
    else
      "lockbox"
    end
  else
    abort "Error: encryption must be lockbox, activerecord, or none"
  end
end
lockbox_method() click to toggle source
# File lib/generators/ahoy/messages/activerecord_generator.rb, line 62
def lockbox_method
  if defined?(Lockbox::VERSION) && Lockbox::VERSION.to_i < 1
    "encrypts"
  else
    "has_encrypted"
  end
end
migration_version() click to toggle source
# File lib/generators/ahoy/messages/activerecord_generator.rb, line 28
def migration_version
  "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]"
end
mysql?() click to toggle source
# File lib/generators/ahoy/messages/activerecord_generator.rb, line 70
def mysql?
  adapter =~ /mysql|trilogy/i
end
to_column() click to toggle source
# File lib/generators/ahoy/messages/activerecord_generator.rb, line 32
def to_column
  case encryption
  when "lockbox"
    "t.text :to_ciphertext\n      t.string :to_bidx, index: true"
  else
    if encryption == "activerecord" && mysql?
      "t.string :to, limit: 510, index: true"
    else
      "t.string :to, index: true"
    end
  end
end