Class: PactBroker::Matrix::QuickRow
- Inherits:
-
Object
- Object
- PactBroker::Matrix::QuickRow
- Defined in:
- lib/pact_broker/matrix/quick_row.rb
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[:lp][:pact_version_id] => Sequel[:lv][:pact_version_id] }
- CONSUMER_JOIN =
{ Sequel[:lp][:consumer_id] => Sequel[:consumers][:id] }
- PROVIDER_JOIN =
{ Sequel[:lp][:provider_id] => Sequel[:providers][:id] }
- CONSUMER_VERSION_JOIN =
{ Sequel[:lp][:consumer_version_id] => Sequel[:cv][:id] }
- PROVIDER_VERSION_JOIN =
{ Sequel[:lv][:provider_version_id] => Sequel[:pv][:id] }
- CONSUMER_COLUMNS =
Columns
[ Sequel[:lp][:consumer_id], Sequel[:consumers][:name].as(:consumer_name) ]
- PROVIDER_COLUMNS =
[ Sequel[:lp][:provider_id], Sequel[:providers][:name].as(:provider_name) ]
- CONSUMER_VERSION_COLUMNS =
[ Sequel[:lp][:consumer_version_id], Sequel[:cv][:number].as(:consumer_version_number), Sequel[:cv][:order].as(:consumer_version_order) ]
- PROVIDER_VERSION_COLUMNS =
[ Sequel[:lv][:provider_version_id], Sequel[:pv][:number].as(:provider_version_number), Sequel[:pv][:order].as(:provider_version_order) ]
- PACT_COLUMNS =
[ Sequel[:lp][:pact_publication_id], Sequel[:lp][:pact_version_id] ]
- VERIFICATION_COLUMNS =
[ Sequel[:lv][:verification_id] ]
- ALL_COLUMNS =
CONSUMER_COLUMNS + CONSUMER_VERSION_COLUMNS + PACT_COLUMNS + PROVIDER_COLUMNS + PROVIDER_VERSION_COLUMNS + VERIFICATION_COLUMNS
- PACTICIPANT_NAMES_AND_IDS =
CONSUMER_COLUMNS + PROVIDER_COLUMNS
- SELECT_ALL_COLUMN_ARGS =
cachable select arguments
[:select_all_columns] + ALL_COLUMNS
- SELECT_PACTICIPANT_NAMES_AND_IDS_ARGS =
[:select_pacticipant_names_and_ids] + PACTICIPANT_NAMES_AND_IDS
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_number ⇒ Object
- #consumer_version_order ⇒ Object
- #eql?(obj) ⇒ Boolean
- #involves_pacticipant_with_name?(pacticipant_name) ⇒ Boolean
- #pact_created_at ⇒ Object
- #pact_revision_number ⇒ Object
- #pact_version_sha ⇒ Object
- #pacticipant_names ⇒ Object
- #provider_name ⇒ Object
- #provider_version_id ⇒ Object
- #provider_version_number ⇒ Object
- #provider_version_order ⇒ 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
end dataset_module.
- #to_s ⇒ Object
- #verification_executed_at ⇒ Object
- #verification_id ⇒ Object
- #verification_number ⇒ Object
Instance Method Details
#<=>(other) ⇒ Object
Add logic for ignoring case
232 233 234 235 236 237 238 239 240 241 242 243 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 232 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
245 246 247 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 245 def compare_name_asc name1, name2 name1 <=> name2 end |
#compare_number_desc(number1, number2) ⇒ Object
253 254 255 256 257 258 259 260 261 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 253 def compare_number_desc number1, number2 if number1 && number2 number2 <=> number1 elsif number1 1 else -1 end end |
#consumer_name ⇒ Object
285 286 287 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 285 def consumer_name return_or_raise_if_not_set(:consumer_name) end |
#consumer_version_number ⇒ Object
289 290 291 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 289 def consumer_version_number return_or_raise_if_not_set(:consumer_version_number) end |
#consumer_version_order ⇒ Object
293 294 295 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 293 def consumer_version_order return_or_raise_if_not_set(:consumer_version_order) end |
#eql?(obj) ⇒ Boolean
263 264 265 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 263 def eql?(obj) (obj.class == model) && (obj.values == values) end |
#involves_pacticipant_with_name?(pacticipant_name) ⇒ Boolean
271 272 273 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 271 def involves_pacticipant_with_name?(pacticipant_name) pacticipant_name.include?(pacticipant_name) end |
#pact_created_at ⇒ Object
223 224 225 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 223 def pact_created_at pact_publication.created_at end |
#pact_revision_number ⇒ Object
211 212 213 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 211 def pact_revision_number pact_publication.revision_number end |
#pact_version_sha ⇒ Object
207 208 209 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 207 def pact_version_sha pact_version.sha end |
#pacticipant_names ⇒ Object
267 268 269 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 267 def pacticipant_names [consumer_name, provider_name] end |
#provider_name ⇒ Object
297 298 299 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 297 def provider_name return_or_raise_if_not_set(:provider_name) end |
#provider_version_id ⇒ Object
275 276 277 278 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 275 def provider_version_id # null when not verified values[:provider_version_id] end |
#provider_version_number ⇒ Object
301 302 303 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 301 def provider_version_number return_or_raise_if_not_set(:provider_version_number) end |
#provider_version_order ⇒ Object
305 306 307 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 305 def provider_version_order return_or_raise_if_not_set(:provider_version_order) 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.
311 312 313 314 315 316 317 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 311 def return_or_raise_if_not_set(key) if values.key?(key) values[key] else raise "Required table not joined" end end |
#success ⇒ Object
end dataset_module
203 204 205 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 203 def success verification&.success end |
#to_s ⇒ Object
249 250 251 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 249 def to_s "#{consumer_name} v#{consumer_version_number} #{provider_name} #{provider_version_number} #{success}" end |
#verification_executed_at ⇒ Object
227 228 229 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 227 def verification_executed_at verification&.execution_date end |
#verification_id ⇒ Object
280 281 282 283 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 280 def verification_id # null when not verified return_or_raise_if_not_set(:verification_id) end |
#verification_number ⇒ Object
215 216 217 |
# File 'lib/pact_broker/matrix/quick_row.rb', line 215 def verification_number verification&.number end |