Class: Ibex::Runtime::SyntaxSessionMetrics
- Inherits:
-
Object
- Object
- Ibex::Runtime::SyntaxSessionMetrics
- Defined in:
- lib/ibex/runtime/syntax_session.rb
Overview
Immutable evidence from one completed syntax-session operation.
Instance Attribute Summary collapse
-
#fallback_reasons ⇒ Object
readonly
: Array.
-
#reused_ratio ⇒ Object
readonly
: Float.
-
#reused_tokens ⇒ Object
readonly
: Integer.
-
#token_count ⇒ Object
readonly
: Integer.
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.
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_reasons ⇒ Object (readonly)
: Array
112 113 114 |
# File 'lib/ibex/runtime/syntax_session.rb', line 112 def fallback_reasons @fallback_reasons end |
#reused_ratio ⇒ Object (readonly)
: Float
109 110 111 |
# File 'lib/ibex/runtime/syntax_session.rb', line 109 def reused_ratio @reused_ratio end |
#reused_tokens ⇒ Object (readonly)
: Integer
110 111 112 |
# File 'lib/ibex/runtime/syntax_session.rb', line 110 def reused_tokens @reused_tokens end |
#token_count ⇒ Object (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
138 139 140 |
# File 'lib/ibex/runtime/syntax_session.rb', line 138 def fallback? !@fallback_reasons.empty? end |