Module: OpencodeClient::Event

Defined in:
lib/opencode_client/models/event.rb

Class Method Summary collapse

Class Method Details

.build(data) ⇒ Object

Builds the object

Parameters:

  • Data (Mixed)

    to be matched against the list of anyOf items

Returns:

  • (Object)

    Returns the model or the data itself



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/opencode_client/models/event.rb', line 63

def build(data)
  # Go through the list of anyOf items and attempt to identify the appropriate one.
  # Note:
  # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
  #   due to the way the deserialization is made in the base_object template (it just casts without verifying).
  # - TODO: scalar values are de facto behaving as if they were nullable.
  # - TODO: logging when debugging is set.
  openapi_any_of.each do |klass|
    begin
      next if klass == :AnyType # "nullable: true"
      return find_and_cast_into_type(klass, data)
    rescue # rescue all errors so we keep iterating even if the current item lookup raises
    end
  end

  openapi_any_of.include?(:AnyType) ? data : nil
end

.openapi_any_ofObject

List of class defined in anyOf (OpenAPI v3)



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/opencode_client/models/event.rb', line 20

def openapi_any_of
  [
    :'EventCommandExecuted',
    :'EventFileEdited',
    :'EventFileWatcherUpdated',
    :'EventGlobalDisposed',
    :'EventInstallationUpdateAvailable',
    :'EventInstallationUpdated',
    :'EventLspClientDiagnostics',
    :'EventLspUpdated',
    :'EventMcpToolsChanged',
    :'EventMessagePartRemoved',
    :'EventMessagePartUpdated',
    :'EventMessageRemoved',
    :'EventMessageUpdated',
    :'EventPermissionReplied',
    :'EventPermissionUpdated',
    :'EventProjectUpdated',
    :'EventPtyCreated',
    :'EventPtyDeleted',
    :'EventPtyExited',
    :'EventPtyUpdated',
    :'EventServerConnected',
    :'EventServerInstanceDisposed',
    :'EventSessionCompacted',
    :'EventSessionCreated',
    :'EventSessionDeleted',
    :'EventSessionDiff',
    :'EventSessionError',
    :'EventSessionIdle',
    :'EventSessionStatus',
    :'EventSessionUpdated',
    :'EventTodoUpdated',
    :'EventTuiCommandExecute',
    :'EventTuiPromptAppend',
    :'EventTuiToastShow',
    :'EventVcsBranchUpdated'
  ]
end