Class: Ibex::Runtime::SyntaxSessionMetrics
- Inherits:
-
Object
- Object
- Ibex::Runtime::SyntaxSessionMetrics
- Defined in:
- lib/ibex/runtime/syntax_session.rb,
sig/ibex/runtime/syntax_session.rbs
Overview
Immutable evidence from one completed syntax-session operation.
Instance Attribute Summary collapse
- #fallback_reasons ⇒ Array[Symbol] readonly
- #reused_ratio ⇒ Float readonly
- #reused_tokens ⇒ Integer readonly
- #token_count ⇒ Integer readonly
Instance Method Summary collapse
- #fallback? ⇒ Boolean
-
#initialize(reused_ratio:, reused_tokens:, token_count:, fallback_reasons:) ⇒ SyntaxSessionMetrics
constructor
A new instance of SyntaxSessionMetrics.
Constructor Details
#initialize(reused_ratio:, reused_tokens:, token_count:, fallback_reasons:) ⇒ SyntaxSessionMetrics
Returns a new instance of SyntaxSessionMetrics.
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/ibex/runtime/syntax_session.rb', line 115 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_reasons ⇒ Array[Symbol] (readonly)
111 112 113 |
# File 'lib/ibex/runtime/syntax_session.rb', line 111 def fallback_reasons @fallback_reasons end |
#reused_ratio ⇒ Float (readonly)
108 109 110 |
# File 'lib/ibex/runtime/syntax_session.rb', line 108 def reused_ratio @reused_ratio end |
#reused_tokens ⇒ Integer (readonly)
109 110 111 |
# File 'lib/ibex/runtime/syntax_session.rb', line 109 def reused_tokens @reused_tokens end |
#token_count ⇒ Integer (readonly)
110 111 112 |
# File 'lib/ibex/runtime/syntax_session.rb', line 110 def token_count @token_count end |
Instance Method Details
#fallback? ⇒ Boolean
137 138 139 |
# File 'lib/ibex/runtime/syntax_session.rb', line 137 def fallback? !@fallback_reasons.empty? end |