class StoreAgent::User

オブジェクトの操作を行うユーザー

Attributes

identifiers[R]

Public Class Methods

new(*identifiers) click to toggle source

ユーザーの初期化は以下のようにして行う

StoreAgent::User.new("foo")
StoreAgent::User.new("foo", "bar")
StoreAgent::User.new(["foo", "bar", "baz"])
StoreAgent::User.new("foo", ["bar", "hoge"], "fuga")
# File lib/store_agent/user.rb, line 29
def initialize(*identifiers)
  identifiers.compact!
  if identifiers.empty?
    raise ArgumentError, "identifier(s) is required"
  end
  @identifiers = identifiers.map do |identifier|
    if identifier.is_a?(Array)
      stringify_map_identifier(identifier)
    else
      stringify_identifier(identifier)
    end
  end
end

Public Instance Methods

guest?() click to toggle source
# File lib/store_agent/user.rb, line 55
def guest?
  false
end
identifier() click to toggle source
# File lib/store_agent/user.rb, line 47
def identifier
  identifier_array.first
end
super_user?() click to toggle source
# File lib/store_agent/user.rb, line 51
def super_user?
  false
end
workspace(namespace) click to toggle source

操作対象のワークスペースを指定する

# File lib/store_agent/user.rb, line 60
def workspace(namespace)
  StoreAgent::Workspace.new(current_user: self, namespace: namespace)
end

Private Instance Methods

stringify_identifier(identifier) click to toggle source
# File lib/store_agent/user.rb, line 66
def stringify_identifier(identifier)
  validates_to_be_string_or_symbol!(identifier)
  validates_to_be_excluded_slash!(identifier)
  validates_to_be_not_superuser_identifier!(identifier)
  validates_to_be_not_guest_identifier!(identifier)
  identifier.to_s
end
stringify_map_identifier(identifiers_array) click to toggle source
# File lib/store_agent/user.rb, line 74
def stringify_map_identifier(identifiers_array)
  case identifiers_array.length
  when 0
    raise ArgumentError, "identifier(s) contains empty array"
  when 1
    stringify_identifier(identifiers_array.first)
  else
    identifiers_array.map{|id| stringify_identifier(id)}
  end
end