Sha256: 91b53365ac5ffabfa4bcee54f4ce787ca3fa34af7323449eeb386d355c9cd0cc

Contents?: true

Size: 1.36 KB

Versions: 1

Compression:

Stored size: 1.36 KB

Contents

require "byebug"
require 'pry'
require 'guise'
require 'active_record'
require "active_record/base"

if I18n.respond_to?(:enforce_available_locales)
  I18n.enforce_available_locales = false
end

ActiveRecord::Base.establish_connection(
  adapter: 'sqlite3',
  database: ':memory:'
)

ActiveRecord::Migration.verbose = false

ActiveRecord::Schema.define do
  create_table :users, force: true do |t|
    t.string :email
  end

  create_table :user_roles, force: true do |t|
    t.string :name
    t.integer :user_id
  end

  create_table :people, force: true do |t|
  end

  create_table :privileges, force: true do |t|
    t.integer :employee_id
    t.string :privilege
  end
end

class User < ActiveRecord::Base
  has_guises :Technician, :Supervisor, :Explorer, association: :user_roles, attribute: :name
end

class Technician < User
  guise_of :User
end

class Supervisor < User
  guise_of :User
end

class UserRole < ActiveRecord::Base
  guise_for :User
end

class TechnicianUserRole < UserRole
  scoped_guise_for :User
end

class Person < ActiveRecord::Base
  has_guises(
    :Admin,
    :Manager,
    :Reviewer,
    association: :permissions,
    attribute: :privilege,
    foreign_key: :employee_id
  )
end

class Permission < ActiveRecord::Base
  self.table_name = :privileges

  guise_for :Person, foreign_key: :employee_id
end

RSpec.configure do |config|
  config.order = 'random'
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
guise-0.7.0 spec/spec_helper.rb