Sha256: d91f5b5dc94ac73f429cb397a58b9260f1a202ee06c94cfa50ced69395d64856

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

class Marty::ImportType < Marty::Base
  class ImportTypeValidator < ActiveModel::Validator
    def validate(entry)
      klass = entry.get_model_class

      unless klass.is_a?(Class) && klass < ActiveRecord::Base
        entry.errors[:base] = "bad model name"
        return
      end

      [entry.cleaner_function, entry.validation_function].each { |func|
        entry.errors[:base] = "unknown class method #{func}" if
        func && !klass.respond_to?(func.to_sym)
      }
    end
  end

<<<<<<< HEAD
  # attr_accessible :name,
  # :model_name,
  # :cleaner_function,
  # :validation_function
=======
  belongs_to :role
>>>>>>> master

  validates_presence_of :name, :model_name, :role_id
  validates_uniqueness_of :name
  validates_with ImportTypeValidator

  def get_model_class
    model_name.constantize
  end

  def allow_import?()
    Mcfly.whodunnit.roles.pluck(:id).
      include?(role_id) if Mcfly.whodunnit
  end

  delorean_fn :lookup, sig: 1 do
    |name|
    self.find_by_name(name)
  end

  delorean_fn :get_all, sig: 0 do
    self.all
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
marty-0.5.15 app/models/marty/import_type.rb~
marty-0.5.14 app/models/marty/import_type.rb~
marty-0.5.13 app/models/marty/import_type.rb~
marty-0.5.12 app/models/marty/import_type.rb~