class UserCredential < ActiveRecord::Base
  MODES = %w[text java_script]

  attr_accessible :credential_name, :credential_value, :mode

  belongs_to :user

  validates_presence_of :credential_name
  validates_presence_of :credential_value
  validates_inclusion_of :mode, :in => MODES
  validates_presence_of :user_id
  validates_uniqueness_of :credential_name, :scope => :user_id

  before_validation :default_mode_to_text
  before_save :trim_fields

  protected

  def trim_fields
    credential_name.strip!
    credential_value.strip!
  end

  def default_mode_to_text
    self.mode = 'text' unless mode.present?
  end
end
