Class: PactBroker::Matrix::QuickRow
- Inherits:
-
Object
- Object
- PactBroker::Matrix::QuickRow
- Defined in:
- lib/pact_broker/matrix/quick_row.rb
Overview
TODO rename this to just Row rubocop: disable Metrics/ClassLength
Direct Known Subclasses
Constant Summary collapse
- LV =
Tables
:latest_verification_id_for_pact_version_and_provider_version
- LP =
:latest_pact_publication_ids_for_consumer_versions
- LP_LV_JOIN =
Joins
{ Sequel[:p][:pact_version_id] => Sequel[:v][:pact_version_id] }
- CONSUMER_VERSION_JOIN =
{ Sequel[:p][:consumer_version_id] => Sequel[:cv][:id] }
- PROVIDER_VERSION_JOIN =
{ Sequel[:v][:provider_version_id] => Sequel[:pv][:id] }
- PACT_COLUMNS =
[ Sequel[:p][:consumer_id], Sequel[:p][:provider_id], Sequel[:p][:consumer_version_id], Sequel[:p][:pact_publication_id], Sequel[:p][:pact_version_id], Sequel[:p][:created_at].as(:consumer_version_created_at), Sequel[:p][:pact_publication_id].as(:pact_order) ]
- VERIFICATION_COLUMNS =
[ Sequel[:v][:provider_version_id], Sequel[:v][:verification_id], Sequel[:v][:created_at].as(:provider_version_created_at) ]
- JOINED_VERIFICATION_COLUMNS =
[ :verification_id, :provider_version_id, :pact_version_id, :provider_id, :created_at ]
- LAST_ACTION_DATE =
Sequel.lit("CASE WHEN (provider_version_created_at IS NOT NULL AND provider_version_created_at > consumer_version_created_at) THEN provider_version_created_at ELSE consumer_version_created_at END").as(:last_action_date)
- ALL_COLUMNS =
PACT_COLUMNS + VERIFICATION_COLUMNS
- SELECT_ALL_COLUMN_ARGS =
cachable select arguments
[:select_all_columns] + ALL_COLUMNS
- SELECT_PACTICIPANT_IDS_ARGS =
[:select_pacticipant_ids, Sequel[:p][:consumer_id], Sequel[:p][:provider_id]]
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Add logic for ignoring case.
- #compare_name_asc(name1, name2) ⇒ Object
- #compare_number_desc(number1, number2) ⇒ Object
- #consumer_name ⇒ Object
- #consumer_version_branch_versions ⇒ Object
- #consumer_version_deployed_versions ⇒ Object
- #consumer_version_number ⇒ Object
- #consumer_version_order ⇒ Object
- #consumer_version_released_versions ⇒ Object
- #eql?(obj) ⇒ Boolean
- #has_verification? ⇒ Boolean
- #involves_pacticipant_with_name?(pacticipant_name) ⇒ Boolean
- #last_action_date ⇒ Object
- #pact_created_at ⇒ Object
- #pact_revision_number ⇒ Object
-
#pact_version_sha ⇒ Object
end dataset_module.
- #pacticipant_names ⇒ Object
- #provider_name ⇒ Object
- #provider_version_branch_versions ⇒ Object
- #provider_version_deployed_versions ⇒ Object
- #provider_version_id ⇒ Object
- #provider_version_number ⇒ Object
- #provider_version_order ⇒ Object
- #provider_version_released_versions ⇒ Object
-
#return_or_raise_if_not_set(key) ⇒ Object
This model needs the verifications and pacticipants joined to it before it can be used, as it’s not a “real” model.
- #success ⇒ Object
- #to_s ⇒ Object
- #verification_executed_at ⇒ Object
- #verification_id ⇒ Object
- #verification_number ⇒ Object
Instance Method Details
#<=>(other) ⇒ Object
Add logic for ignoring case
334 335 336 337 338 339 340 341 342 343 344 345 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 334 def <=> other comparisons = [ compare_name_asc(consumer_name, other.consumer_name), compare_number_desc(consumer_version_order, other.consumer_version_order), compare_number_desc(pact_revision_number, other.pact_revision_number), compare_name_asc(provider_name, other.provider_name), compare_number_desc(provider_version_order, other.provider_version_order), compare_number_desc(verification_id, other.verification_id) ] comparisons.find{|c| c != 0 } || 0 end |
#compare_name_asc(name1, name2) ⇒ Object
347 348 349 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 347 def compare_name_asc name1, name2 name1 <=> name2 end |
#compare_number_desc(number1, number2) ⇒ Object
355 356 357 358 359 360 361 362 363 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 355 def compare_number_desc number1, number2 if number1 && number2 number2 <=> number1 elsif number1 1 else -1 end end |
#consumer_name ⇒ Object
387 388 389 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 387 def consumer_name consumer.name end |
#consumer_version_branch_versions ⇒ Object
395 396 397 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 395 def consumer_version_branch_versions consumer_version.branch_versions end |
#consumer_version_deployed_versions ⇒ Object
399 400 401 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 399 def consumer_version_deployed_versions consumer_version.current_deployed_versions end |
#consumer_version_number ⇒ Object
391 392 393 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 391 def consumer_version_number consumer_version.number end |
#consumer_version_order ⇒ Object
407 408 409 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 407 def consumer_version_order consumer_version.order end |
#consumer_version_released_versions ⇒ Object
403 404 405 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 403 def consumer_version_released_versions consumer_version.current_supported_released_versions end |
#eql?(obj) ⇒ Boolean
365 366 367 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 365 def eql?(obj) (obj.class == model) && (obj.values == values) end |
#has_verification? ⇒ Boolean
439 440 441 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 439 def has_verification? !!verification_id end |
#involves_pacticipant_with_name?(pacticipant_name) ⇒ Boolean
373 374 375 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 373 def involves_pacticipant_with_name?(pacticipant_name) pacticipant_name.include?(pacticipant_name) end |
#last_action_date ⇒ Object
435 436 437 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 435 def last_action_date return_or_raise_if_not_set(:last_action_date) end |
#pact_created_at ⇒ Object
325 326 327 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 325 def pact_created_at pact_publication.created_at end |
#pact_revision_number ⇒ Object
313 314 315 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 313 def pact_revision_number pact_publication.revision_number end |
#pact_version_sha ⇒ Object
end dataset_module
309 310 311 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 309 def pact_version_sha pact_version.sha end |
#pacticipant_names ⇒ Object
369 370 371 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 369 def pacticipant_names [consumer_name, provider_name] end |
#provider_name ⇒ Object
411 412 413 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 411 def provider_name provider.name end |
#provider_version_branch_versions ⇒ Object
419 420 421 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 419 def provider_version_branch_versions provider_version&.branch_versions || [] end |
#provider_version_deployed_versions ⇒ Object
423 424 425 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 423 def provider_version_deployed_versions provider_version&.current_deployed_versions || [] end |
#provider_version_id ⇒ Object
377 378 379 380 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 377 def provider_version_id # null when not verified values[:provider_version_id] end |
#provider_version_number ⇒ Object
415 416 417 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 415 def provider_version_number provider_version&.number end |
#provider_version_order ⇒ Object
431 432 433 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 431 def provider_version_order provider_version&.order end |
#provider_version_released_versions ⇒ Object
427 428 429 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 427 def provider_version_released_versions provider_version&.current_supported_released_versions || [] end |
#return_or_raise_if_not_set(key) ⇒ Object
This model needs the verifications and pacticipants joined to it before it can be used, as it’s not a “real” model.
445 446 447 448 449 450 451 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 445 def return_or_raise_if_not_set(key) if values.key?(key) values[key] else raise "Required table not joined" end end |
#success ⇒ Object
321 322 323 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 321 def success verification&.success end |
#to_s ⇒ Object
351 352 353 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 351 def to_s "#{consumer_name} v#{consumer_version_number} #{provider_name} #{provider_version_number} #{success}" end |
#verification_executed_at ⇒ Object
329 330 331 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 329 def verification_executed_at verification&.execution_date end |
#verification_id ⇒ Object
382 383 384 385 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 382 def verification_id # null when not verified return_or_raise_if_not_set(:verification_id) end |
#verification_number ⇒ Object
317 318 319 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 317 def verification_number verification&.number end |