Class: Cline::Data

Inherits:
Object
  • Object
show all
Includes:
Serializable::Dir
Defined in:
lib/cline/data.rb

Overview

Accesses the content of a Cline data directory. Wraps for example the content of ~/.cline/data

Instance Attribute Summary

Attributes included from Serializable::Dir

#create, #dir

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Serializable::Dir

included, #initialize_from_dir, #subpath

Class Method Details

.vscodeData?

Get the VSCode plugin Cline data dir

Returns:

  • (Data, nil)

    The data for the installed VSCode plugin, or nil if none



14
15
16
17
18
19
20
# File 'lib/cline/data.rb', line 14

def self.vscode
  @vscode ||= Data.open(
    "#{
      ENV['VSCODE_PORTABLE'] ? "#{ENV['VSCODE_PORTABLE']}/user-data" : "#{Utils::Os.user_app_data_dir}/Code"
    }/User/globalStorage/saoudrizwan.claude-dev"
  )
end

Instance Method Details

#==(other) ⇒ Boolean

Equality check

Parameters:

  • other (Object)

    The other to check equality with

Returns:

  • (Boolean)

    True if objects are equal



107
108
109
110
111
112
113
114
115
116
117
# File 'lib/cline/data.rb', line 107

def ==(other)
  other.is_a?(Data) &&
    other.tasks == tasks &&
    other.workspaces == workspaces &&
    other.cline_models == cline_models &&
    other.global_settings == global_settings &&
    other.global_state == global_state &&
    other.mcp_settings == mcp_settings &&
    other.providers == providers &&
    other.secrets == secrets
end

#cline_models(create: self.create) ⇒ Models

Get the cached Cline models

Parameters:

  • create (Boolean) (defaults to: self.create)

    Should the data be created if it does not exist?

Returns:

  • (Models)

    Cached Cline models



26
27
28
# File 'lib/cline/data.rb', line 26

def cline_models(create: self.create)
  @cline_models ||= Models.from_cline_data(dir, create:)
end

#global_settings(create: self.create) ⇒ GlobalSettings?

Get global settings stored in this data directory

Parameters:

  • create (Boolean) (defaults to: self.create)

    Should the data be created if it does not exist?

Returns:

  • (GlobalSettings, nil)

    Global settings stored in this data directory, or nil if none



34
35
36
# File 'lib/cline/data.rb', line 34

def global_settings(create: self.create)
  @global_settings ||= GlobalSettings.from_cline_data(dir, create:)
end

#global_state(create: self.create) ⇒ GlobalState?

Get global state stored in this data directory

Parameters:

  • create (Boolean) (defaults to: self.create)

    Should the data be created if it does not exist?

Returns:

  • (GlobalState, nil)

    Global state stored in this data directory, or nil if none



42
43
44
# File 'lib/cline/data.rb', line 42

def global_state(create: self.create)
  @global_state ||= GlobalState.from_cline_data(dir, create:)
end

#logs(create: self.create) ⇒ Logs

Get the Cline logs

Returns:

  • (Logs)

    The Cline logs



49
50
51
# File 'lib/cline/data.rb', line 49

def logs(create: self.create)
  @logs ||= Logs.open(subpath('logs/cline.log'), default: create ? '' : nil)
end

#mcp_settings(create: self.create) ⇒ McpSettings?

Get MCP settings stored in this data directory

Parameters:

  • create (Boolean) (defaults to: self.create)

    Should the data be created if it does not exist?

Returns:

  • (McpSettings, nil)

    MCP settings stored in this data directory, or nil if none



57
58
59
# File 'lib/cline/data.rb', line 57

def mcp_settings(create: self.create)
  @mcp_settings ||= McpSettings.from_cline_data(dir, create:)
end

#providers(create: self.create) ⇒ Providers?

Get providers stored in this data directory

Parameters:

  • create (Boolean) (defaults to: self.create)

    Should the data be created if it does not exist?

Returns:

  • (Providers, nil)

    Providers stored in this data directory, or nil if none



65
66
67
# File 'lib/cline/data.rb', line 65

def providers(create: self.create)
  @providers ||= Providers.from_cline_data(dir, create:)
end

#secrets(create: self.create) ⇒ Secrets?

Get secrets stored in this data directory

Parameters:

  • create (Boolean) (defaults to: self.create)

    Should the data be created if it does not exist?

Returns:

  • (Secrets, nil)

    Secrets stored in this data directory, or nil if none



73
74
75
# File 'lib/cline/data.rb', line 73

def secrets(create: self.create)
  @secrets ||= Secrets.from_cline_data(dir, create:)
end

#sessions(cline_models: self.cline_models, create: self.create) ⇒ Sessions

Get sessions from this data directory

Parameters:

  • cline_models (Models) (defaults to: self.cline_models)

    The Cline models used to interpret the sessions' messages

  • create (Boolean) (defaults to: self.create)

    Should the data be created if it does not exist?

Returns:

  • (Sessions)

    Set of sessions associated to this data directory



82
83
84
# File 'lib/cline/data.rb', line 82

def sessions(cline_models: self.cline_models, create: self.create)
  @sessions ||= Sessions.open(subpath('sessions'), cline_models:, create:)
end

#tasks(cline_models: self.cline_models, create: self.create) ⇒ Tasks

Get tasks from this data directory

Parameters:

  • cline_models (Models) (defaults to: self.cline_models)

    The Cline models used to interpret the tasks' messages

  • create (Boolean) (defaults to: self.create)

    Should the data be created if it does not exist?

Returns:

  • (Tasks)

    Set of tasks associated to this data directory



91
92
93
# File 'lib/cline/data.rb', line 91

def tasks(cline_models: self.cline_models, create: self.create)
  @tasks ||= Tasks.open(subpath('tasks'), cline_models:, create:)
end

#workspaces(create: self.create) ⇒ Workspaces

Get workspaces from this data directory

Parameters:

  • create (Boolean) (defaults to: self.create)

    Should the data be created if it does not exist?

Returns:

  • (Workspaces)

    Set of workspaces associated to this data directory



99
100
101
# File 'lib/cline/data.rb', line 99

def workspaces(create: self.create)
  @workspaces ||= Workspaces.open(subpath('workspaces'), create:)
end