Class: AgentHarness::Extensions::CompatibilityReport

Inherits:
Object
  • Object
show all
Defined in:
lib/agent_harness/extensions.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(extension:, provider:, missing_provider_capabilities:, unsupported_features:) ⇒ CompatibilityReport

Returns a new instance of CompatibilityReport.



94
95
96
97
98
99
# File 'lib/agent_harness/extensions.rb', line 94

def initialize(extension:, provider:, missing_provider_capabilities:, unsupported_features:)
  @extension = extension
  @provider = provider
  @missing_provider_capabilities = missing_provider_capabilities.freeze
  @unsupported_features = unsupported_features.freeze
end

Instance Attribute Details

#extensionObject (readonly)

Returns the value of attribute extension.



92
93
94
# File 'lib/agent_harness/extensions.rb', line 92

def extension
  @extension
end

#missing_provider_capabilitiesObject (readonly)

Returns the value of attribute missing_provider_capabilities.



92
93
94
# File 'lib/agent_harness/extensions.rb', line 92

def missing_provider_capabilities
  @missing_provider_capabilities
end

#providerObject (readonly)

Returns the value of attribute provider.



92
93
94
# File 'lib/agent_harness/extensions.rb', line 92

def provider
  @provider
end

#unsupported_featuresObject (readonly)

Returns the value of attribute unsupported_features.



92
93
94
# File 'lib/agent_harness/extensions.rb', line 92

def unsupported_features
  @unsupported_features
end

Instance Method Details

#compatible?Boolean

Returns:

  • (Boolean)


101
102
103
# File 'lib/agent_harness/extensions.rb', line 101

def compatible?
  @missing_provider_capabilities.empty?
end

#fully_supported?Boolean

Returns:

  • (Boolean)


105
106
107
# File 'lib/agent_harness/extensions.rb', line 105

def fully_supported?
  compatible? && @unsupported_features.empty?
end

#to_hObject



109
110
111
112
113
114
115
116
117
118
# File 'lib/agent_harness/extensions.rb', line 109

def to_h
  {
    extension: extension.name,
    provider: provider.class.provider_name,
    compatible: compatible?,
    fully_supported: fully_supported?,
    missing_provider_capabilities: missing_provider_capabilities.dup,
    unsupported_features: unsupported_features.dup
  }
end