Sha256: 7deec13375d870d04e031b6f14da0920499f5f123f768432e09099c7c626befe
Contents?: true
Size: 1.41 KB
Versions: 3
Compression:
Stored size: 1.41 KB
Contents
# frozen_string_literal: true require 'papers_please/version' require 'papers_please/errors' require 'papers_please/policy' require 'papers_please/role' require 'papers_please/permission' require 'papers_please/rails/controller_methods' require 'papers_please/railtie' if defined? Rails module PapersPlease # rubocop:disable Metrics/PerceivedComplexity, Metrics/MethodLength def self.permissions_table(policy_klass) require 'terminal-table' policy = policy_klass.new(:system) table = ::Terminal::Table.new do |t| t.headings = [ 'role', 'subject', 'permission', 'has query?', 'has predicate?', 'granted by other?' ] policy.roles.each_with_index do |(name, role), index| t.add_separator unless index.zero? first_line_of_role = true role.permissions.group_by(&:subject).each do |subject, permissions| permissions.each do |permission| t.add_row [ first_line_of_role ? name : nil, subject, permission.key, permission.query ? 'yes' : 'no', permission.predicate ? 'yes' : 'no', permission.granted_by_other? ? 'yes' : 'no' ] first_line_of_role = false end end end end puts table.to_s table.to_s end # rubocop:enable Metrics/PerceivedComplexity, Metrics/MethodLength end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
papers_please-0.1.7 | lib/papers_please.rb |
papers_please-0.1.6 | lib/papers_please.rb |
papers_please-0.1.5 | lib/papers_please.rb |