Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
uoy-faculty-rbac / lib / faculty_rbac / permission.rb
Size: Mime:
# frozen_string_literal: true

require 'json'

module FacultyRBAC
  # Data helper class for Permissions
  class Permission
    def self.[](name, **filter)
      new(
        name,
        JSON.generate(filter.reject { |_k, v| v.instance_of? Symbol }),
        JSON.generate(filter.select { |_k, v| v.instance_of? Symbol })
      )
    end

    attr_reader :name, :filter, :filter_params
    attr_accessor :id

    def initialize(name, filter, filter_params, **args)
      @name   = name.to_s
      @filter = filter.to_s
      @filter_params = filter_params.to_s
      @id = args[:id]
    end

    def to_i
      @id
    end
  end
end