summaryrefslogtreecommitdiff
path: root/lib/actor.rb
blob: 4e8b3b82b0daa848457f1b20791a32df2064bc11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
require_relative 'actor/base'
require_relative 'actor/key'
require_relative 'actor/user'
require_relative 'actor/username'

module Actor
  class UnsupportedActorError < StandardError; end

  def self.new_from(str, audit_usernames: false)
    case str
    when Key.id_regex
      Key.from(str, audit_usernames: audit_usernames)
    when User.id_regex
      User.from(str, audit_usernames: audit_usernames)
    when Username.id_regex
      Username.from(str, audit_usernames: audit_usernames)
    else
      raise UnsupportedActorError
    end
  end
end