Class: TheMechanic2::BenchmarkRequest
- Inherits:
-
Object
- Object
- TheMechanic2::BenchmarkRequest
- Defined in:
- lib/the_mechanic_2/benchmark_request.rb
Overview
Model for validating benchmark request parameters Ensures all required fields are present and valid
Constant Summary collapse
- MIN_TIMEOUT =
Minimum and maximum allowed timeout values
1- MAX_TIMEOUT =
300
Instance Attribute Summary collapse
-
#code_a ⇒ Object
readonly
Returns the value of attribute code_a.
-
#code_b ⇒ Object
readonly
Returns the value of attribute code_b.
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#shared_setup ⇒ Object
readonly
Returns the value of attribute shared_setup.
-
#timeout ⇒ Object
readonly
Returns the value of attribute timeout.
Instance Method Summary collapse
-
#all_errors ⇒ Array<String>
Returns all errors as a flat array.
-
#error_messages ⇒ Hash
Returns validation errors as a hash.
-
#initialize(params = {}) ⇒ BenchmarkRequest
constructor
A new instance of BenchmarkRequest.
-
#valid? ⇒ Boolean
Validates the request parameters.
Constructor Details
#initialize(params = {}) ⇒ BenchmarkRequest
Returns a new instance of BenchmarkRequest.
13 14 15 16 17 18 19 |
# File 'lib/the_mechanic_2/benchmark_request.rb', line 13 def initialize(params = {}) @shared_setup = params[:shared_setup] @code_a = params[:code_a] @code_b = params[:code_b] @timeout = params[:timeout] || TheMechanic2.configuration.timeout @errors = [] end |
Instance Attribute Details
#code_a ⇒ Object (readonly)
Returns the value of attribute code_a.
7 8 9 |
# File 'lib/the_mechanic_2/benchmark_request.rb', line 7 def code_a @code_a end |
#code_b ⇒ Object (readonly)
Returns the value of attribute code_b.
7 8 9 |
# File 'lib/the_mechanic_2/benchmark_request.rb', line 7 def code_b @code_b end |
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
7 8 9 |
# File 'lib/the_mechanic_2/benchmark_request.rb', line 7 def errors @errors end |
#shared_setup ⇒ Object (readonly)
Returns the value of attribute shared_setup.
7 8 9 |
# File 'lib/the_mechanic_2/benchmark_request.rb', line 7 def shared_setup @shared_setup end |
#timeout ⇒ Object (readonly)
Returns the value of attribute timeout.
7 8 9 |
# File 'lib/the_mechanic_2/benchmark_request.rb', line 7 def timeout @timeout end |
Instance Method Details
#all_errors ⇒ Array<String>
Returns all errors as a flat array
46 47 48 |
# File 'lib/the_mechanic_2/benchmark_request.rb', line 46 def all_errors @errors end |
#error_messages ⇒ Hash
Returns validation errors as a hash
35 36 37 38 39 40 41 42 |
# File 'lib/the_mechanic_2/benchmark_request.rb', line 35 def { code_a: @errors.select { |e| e.include?('Code A') }, code_b: @errors.select { |e| e.include?('Code B') }, timeout: @errors.select { |e| e.include?('Timeout') }, general: @errors.reject { |e| e.include?('Code A') || e.include?('Code B') || e.include?('Timeout') } } end |
#valid? ⇒ Boolean
Validates the request parameters
23 24 25 26 27 28 29 30 31 |
# File 'lib/the_mechanic_2/benchmark_request.rb', line 23 def valid? @errors = [] validate_code_a validate_code_b validate_timeout @errors.empty? end |