Class: ClaudeMemory::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/claude_memory/configuration.rb

Overview

Centralized configuration and ENV access Provides consistent access to paths and environment variables

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env = ENV) ⇒ Configuration

Returns a new instance of Configuration.

Parameters:

  • env (Hash) (defaults to: ENV)

    environment variables (default: ENV)



12
13
14
# File 'lib/claude_memory/configuration.rb', line 12

def initialize(env = ENV)
  @env = env
end

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



9
10
11
# File 'lib/claude_memory/configuration.rb', line 9

def env
  @env
end

Instance Method Details

#claude_config_dirString

Returns Claude config directory (default: ~/.claude).

Returns:

  • (String)

    Claude config directory (default: ~/.claude)



27
28
29
# File 'lib/claude_memory/configuration.rb', line 27

def claude_config_dir
  env["CLAUDE_CONFIG_DIR"] || File.join(home_dir, ".claude")
end

#global_db_pathString

Returns path to global memory database.

Returns:

  • (String)

    path to global memory database



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

def global_db_path
  File.join(claude_config_dir, "memory.sqlite3")
end

#home_dirString

Returns user home directory.

Returns:

  • (String)

    user home directory



17
18
19
# File 'lib/claude_memory/configuration.rb', line 17

def home_dir
  env["HOME"] || File.expand_path("~")
end

#project_db_path(project_path = nil) ⇒ String

Returns path to project memory database.

Parameters:

  • project_path (String, nil) (defaults to: nil)

    override project root (defaults to project_dir)

Returns:

  • (String)

    path to project memory database



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

def project_db_path(project_path = nil)
  path = project_path || project_dir
  File.join(path, ".claude", "memory.sqlite3")
end

#project_dirString

Returns project root directory (resolves git worktrees).

Returns:

  • (String)

    project root directory (resolves git worktrees)



22
23
24
# File 'lib/claude_memory/configuration.rb', line 22

def project_dir
  env["CLAUDE_PROJECT_DIR"] || resolve_project_dir
end

#session_idString?

Returns current Claude session ID from CLAUDE_SESSION_ID.

Returns:

  • (String, nil)

    current Claude session ID from CLAUDE_SESSION_ID



44
45
46
# File 'lib/claude_memory/configuration.rb', line 44

def session_id
  env["CLAUDE_SESSION_ID"]
end

#transcript_pathString?

Returns path to current transcript from CLAUDE_TRANSCRIPT_PATH.

Returns:

  • (String, nil)

    path to current transcript from CLAUDE_TRANSCRIPT_PATH



49
50
51
# File 'lib/claude_memory/configuration.rb', line 49

def transcript_path
  env["CLAUDE_TRANSCRIPT_PATH"]
end