Class: Ibex::Runtime::SyntaxSessionMetrics

Inherits:
Object
  • Object
show all
Defined in:
lib/ibex/runtime/syntax_session.rb

Overview

Immutable evidence from one completed syntax-session operation.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(reused_ratio:, reused_tokens:, token_count:, fallback_reasons:) ⇒ SyntaxSessionMetrics

Returns a new instance of SyntaxSessionMetrics.



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/ibex/runtime/syntax_session.rb', line 116

def initialize(reused_ratio:, reused_tokens:, token_count:, fallback_reasons:)
  unless reused_ratio.is_a?(Float) && reused_ratio.finite? && reused_ratio.between?(0.0, 1.0)
    raise ArgumentError, "reused_ratio must be a finite Float in 0.0..1.0"
  end
  unless reused_tokens.is_a?(Integer) && reused_tokens >= 0
    raise ArgumentError, "reused_tokens must be a nonnegative Integer"
  end
  unless token_count.is_a?(Integer) && token_count >= 0
    raise ArgumentError, "token_count must be a nonnegative Integer"
  end
  unless fallback_reasons.is_a?(Array) && fallback_reasons.all?(Symbol)
    raise ArgumentError, "fallback_reasons must contain only Symbols"
  end

  @reused_ratio = reused_ratio
  @reused_tokens = reused_tokens
  @token_count = token_count
  @fallback_reasons = fallback_reasons.dup.freeze
  freeze
end

Instance Attribute Details

#fallback_reasonsObject (readonly)

: Array



112
113
114
# File 'lib/ibex/runtime/syntax_session.rb', line 112

def fallback_reasons
  @fallback_reasons
end

#reused_ratioObject (readonly)

: Float



109
110
111
# File 'lib/ibex/runtime/syntax_session.rb', line 109

def reused_ratio
  @reused_ratio
end

#reused_tokensObject (readonly)

: Integer



110
111
112
# File 'lib/ibex/runtime/syntax_session.rb', line 110

def reused_tokens
  @reused_tokens
end

#token_countObject (readonly)

: Integer



111
112
113
# File 'lib/ibex/runtime/syntax_session.rb', line 111

def token_count
  @token_count
end

Instance Method Details

#fallback?Boolean

Returns:

  • (Boolean)


138
139
140
# File 'lib/ibex/runtime/syntax_session.rb', line 138

def fallback?
  !@fallback_reasons.empty?
end