Skip to content

sirscriptalot/polizia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Polizia

A small authorization library for implementing "policy" objects. Polizia is a minimal clone of the popular Pundit gem.

Installation

gem install polizia

Usage

require 'polizia'

class Account
  attr_accessor :user

  def initialize(user:)
    @user = user
  end
end

class AccountPolicy < Polizia
  def create?
    user.guest?
  end

  def update?(account)
    account.user == user
  end

  def delete?(account)
    account.user == user
  end
end

class User
  def guest?
    false
  end
end

user = User.new

account = Account.new(user: user)

policy = AccountPolicy.new(user)

policy.create? # false

policy.update?(account) # true

policy.delete?(account) # true

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages