Skip to content

Instantly share code, notes, and snippets.

@fernandes
Created June 27, 2019 10:05
Show Gist options
  • Save fernandes/59733a384e2d4dd2a4ef507bd70896b8 to your computer and use it in GitHub Desktop.
Save fernandes/59733a384e2d4dd2a4ef507bd70896b8 to your computer and use it in GitHub Desktop.
Implementing Rolify on Crystal (thanks to Avram!)
require "../spec_helper.cr"
describe "Rolify" do
it "add a role for user" do
user = UserBox.new.create
user.add_role(:admin)
user.has_role?(:admin).should be_truthy
user.has_role?(:foo).should be_falsey
end
it "add a role for a instance" do
user = UserBox.new.create
task1 = TaskBox.create
task2 = TaskBox.create
user.add_role(:owner, task1)
user.has_role?(:owner, task1).should be_truthy
user.has_role?(:owner, task2).should be_falsey
end
it "add a role for a class" do
user = UserBox.new.create
task1 = TaskBox.create
task2 = TaskBox.create
user.add_role(:owner, Task)
user.has_role?(:owner, Task).should be_truthy
user.has_role?(:owner, task1).should be_truthy
user.has_role?(:owner, task2).should be_truthy
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment