Sha256: 19e81890866144c1ee37fd7e85b0b690434c193b23160f1bcaac5f858815ed9f
Contents?: true
Size: 841 Bytes
Versions: 3
Compression:
Stored size: 841 Bytes
Contents
# frozen_string_literal: true module Hachi module Models class User < Base attr_reader :login attr_reader :name attr_reader :roles attr_reader :password ROLES = %w(read write admin).freeze def initialize(login:, name:, roles:, password:) @login = login @name = name @roles = roles @password = password validate_roles end def payload { login: login, name: name, roles: roles, password: password }.compact end private def validate_roles raise ArgumentError, "roles should be an array" unless roles.is_a?(Array) raise ArgumentError, "role should be one of #{ROLES.join('.')}" unless roles.all? { |role| ROLES.include? role } end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
hachi-0.3.2 | lib/hachi/models/user.rb |
hachi-0.3.1 | lib/hachi/models/user.rb |
hachi-0.3.0 | lib/hachi/models/user.rb |