Skip to content

Warning: already initialized constant Authlete::SERVERS due to double assignment in sdkconfiguration.rb #14

@watahani

Description

@watahani

Summary

When loading the SDK, Ruby emits the following warning:

/usr/local/bundle/gems/authlete_ruby_sdk-0.0.3.pre.beta/lib/authlete/sdkconfiguration.rb:22: warning: already initialized constant Authlete::SERVERS
/usr/local/bundle/gems/authlete_ruby_sdk-0.0.3.pre.beta/lib/authlete/sdkconfiguration.rb:16: warning: previous definition of SERVERS was here

Root Cause

In lib/authlete/sdkconfiguration.rb, the `SERVERS` constant is assigned twice:

# First assignment (line 16)
SERVERS = [
  'https://us.authlete.com',
  'https://jp.authlete.com',
  'https://eu.authlete.com',
  'https://br.authlete.com',
].freeze

# Second assignment (line 22) — Sorbet type annotation, but causes Ruby warning
SERVERS = T.let(SERVERS, T::Array[String])

`T.let` is a Sorbet runtime method that returns its first argument unchanged, but Ruby treats `SERVERS = T.let(...)` as a constant reassignment and emits a warning.

Expected Behavior

No warning should be emitted when loading the SDK.

Suggested Fix

Combine both into a single assignment to avoid the reassignment warning:

SERVERS = T.let([
  'https://us.authlete.com',
  'https://jp.authlete.com',
  'https://eu.authlete.com',
  'https://br.authlete.com',
].freeze, T::Array[String])

Environment

  • authlete_ruby_sdk: 0.0.3.pre.beta
  • Ruby: 3.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions