Sha256: d529f216c7aca59902de69abd5df25af6063ce9433c82873301d017d6d42f70e

Contents?: true

Size: 476 Bytes

Versions: 2

Compression:

Stored size: 476 Bytes

Contents

module PagesCore
  module HasRoles
    extend ActiveSupport::Concern

    def role?(role_name)
      role_names.include?(role_name.to_s)
    end
    alias_method :has_role?, :role?

    def role_names
      roles.map(&:name)
    end

    def role_names=(names)
      new_roles = names.map do |name|
        if role?(name)
          roles.where(name: name).first
        else
          roles.new(name: name)
        end
      end
      self.roles = new_roles
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pages_core-3.4.3 app/models/concerns/pages_core/has_roles.rb
pages_core-3.4.2 app/models/concerns/pages_core/has_roles.rb