Module: Ace::PromptPrep::Atoms::SessionIdGenerator

Defined in:
lib/ace/prompt_prep/atoms/session_id_generator.rb

Overview

Generates Base36 compact IDs for prompt archiving

Uses ace-b36ts to generate 6-character compact IDs (e.g., “i50jj3”) These IDs serve as session identifiers for archived prompts

Class Method Summary collapse

Class Method Details

.call(time: nil) ⇒ Hash

Note:

Time is expected to be in UTC for consistent ID generation

Generate Base36 ID for current time

Parameters:

  • time (Time) (defaults to: nil)

    Optional time in UTC (default: current UTC time)

Returns:

  • (Hash)

    Hash with :timestamp key containing 6-char Base36 ID



18
19
20
21
22
23
# File 'lib/ace/prompt_prep/atoms/session_id_generator.rb', line 18

def self.call(time: nil)
  time ||= Time.now.utc
  {
    timestamp: Ace::B36ts.encode(time)
  }
end

.valid?(value) ⇒ Boolean

Check if a string is a valid Base36 ID

Parameters:

  • value (String)

    ID string to validate

Returns:

  • (Boolean)

    true if valid Base36 ID



29
30
31
32
33
# File 'lib/ace/prompt_prep/atoms/session_id_generator.rb', line 29

def self.valid?(value)
  return false unless value.is_a?(String)

  Ace::B36ts.valid?(value)
end