Class: YiffSpace::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/yiffspace/configuration.rb,
lib/yiffspace/configuration/images.rb

Defined Under Namespace

Classes: Images

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/yiffspace/configuration.rb', line 51

def initialize
  @max_multi_count         = -> { 100 }
  @redis_url               = -> {}
  @user_class              = nil
  @user_like_class         = nil
  @user_resolvable_class   = nil
  @current_class           = nil
  @default_ip_address      = "127.0.0.1"
  @last_ip_addr_attribute  = :last_ip_addr
  @anonymous_user_name     = -> { "Anonymous" }
  @logto_api_client_id     = nil
  @logto_api_client_secret = nil
  @logto_api_resource      = nil
  @discord_bot_token       = nil
end

Instance Attribute Details

#anonymous_user_getterObject

Lazily built: calls user_class (or ::User) at invocation time, not config time.



85
86
87
# File 'lib/yiffspace/configuration.rb', line 85

def anonymous_user_getter
  @anonymous_user_getter ||= -> { user_class.anonymous }
end

#anonymous_user_nameObject

The anonymous user’s name, can be a proc



41
42
43
# File 'lib/yiffspace/configuration.rb', line 41

def anonymous_user_name
  @anonymous_user_name
end

#current_classObject

Returns the configured current class, defaulting to YiffSpace::Utils::Current.



80
81
82
# File 'lib/yiffspace/configuration.rb', line 80

def current_class
  @current_class || Utils::Current
end

#default_ip_addressObject

The default IP address assigned to Utils::Current when none is present.



29
30
31
# File 'lib/yiffspace/configuration.rb', line 29

def default_ip_address
  @default_ip_address
end

#discord_bot_tokenObject

Discord bot token used to look up Discord users (shared across all auth clients).



38
39
40
# File 'lib/yiffspace/configuration.rb', line 38

def discord_bot_token
  @discord_bot_token
end

#last_ip_addr_attributeObject

The ‘last_ip_addr` attribute of the User model, used by the UserResolvableMethods concern



32
33
34
# File 'lib/yiffspace/configuration.rb', line 32

def last_ip_addr_attribute
  @last_ip_addr_attribute
end

#logto_api_client_idObject

Logto Management API credentials (shared across all auth clients).



35
36
37
# File 'lib/yiffspace/configuration.rb', line 35

def logto_api_client_id
  @logto_api_client_id
end

#logto_api_client_secretObject

Logto Management API credentials (shared across all auth clients).



35
36
37
# File 'lib/yiffspace/configuration.rb', line 35

def logto_api_client_secret
  @logto_api_client_secret
end

#logto_api_resourceObject

Logto Management API credentials (shared across all auth clients).



35
36
37
# File 'lib/yiffspace/configuration.rb', line 35

def logto_api_resource
  @logto_api_resource
end

#max_multi_countObject

Maximum number of comma-separated values allowed in a multi-value query parameter. Used by ParseValue.range and QueryBuilder.



7
8
9
# File 'lib/yiffspace/configuration.rb', line 7

def max_multi_count
  @max_multi_count
end

#redis_urlObject

Redis URL used by Utils::Cache for direct Redis connections.



10
11
12
# File 'lib/yiffspace/configuration.rb', line 10

def redis_url
  @redis_url
end

#system_user_getterObject

Lazily built: calls user_class (or ::User) at invocation time, not config time.



90
91
92
# File 'lib/yiffspace/configuration.rb', line 90

def system_user_getter
  @system_user_getter ||= -> { user_class.system }
end

#user_classObject



67
68
69
# File 'lib/yiffspace/configuration.rb', line 67

def user_class
  @user_class || ::User
end

#user_like_classObject



71
72
73
# File 'lib/yiffspace/configuration.rb', line 71

def user_like_class
  @user_like_class || Utils::UserLike
end

#user_resolvable_classObject



75
76
77
# File 'lib/yiffspace/configuration.rb', line 75

def user_resolvable_class
  @user_resolvable_class || Utils::UserResolvable
end

Instance Method Details

#add_auth(name) ⇒ Object



113
114
115
# File 'lib/yiffspace/configuration.rb', line 113

def add_auth(name, &)
  YiffSpace::Auth.register(name, &)
end

#auth(&block) ⇒ Object



106
107
108
109
110
111
# File 'lib/yiffspace/configuration.rb', line 106

def auth(&block)
  client = YiffSpace::Auth.register(Auth::DEFAULT_CLIENT_NAME) unless YiffSpace::Auth.instance_variable_get(:@clients).key?(Auth::DEFAULT_CLIENT_NAME)
  client ||= YiffSpace::Auth[Auth::DEFAULT_CLIENT_NAME]
  block&.call(client)
  client
end

#imagesObject



117
118
119
# File 'lib/yiffspace/configuration.rb', line 117

def images
  @images ||= Images.new
end