cats_core 1.2.13 → 1.2.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6029b1cb0b5451bb6ca657e53b8fd719bff7ca250bbf24f59620b645666b7411
4
- data.tar.gz: 5dbc6423c4779a589adcd093aa093bd235ba36165c9fd44ae2a28baeeafdc88b
3
+ metadata.gz: 7b9dc1890545dec4869aee94fb842abbc54a673f6f84ecc8ef96b927800e70c5
4
+ data.tar.gz: 9f0186a8c840f424da193d6c1c9e15bdaec9d1e29a72628094db7de9007c14b2
5
5
  SHA512:
6
- metadata.gz: 8ca3add5b0ade02757372eda5c4c1462f3146080071e8d2bfd01cb782c032666dc1965100bfda15b5537b5f11ce3378ae8071e488eaa9be8e1dd93672cbea059
7
- data.tar.gz: 5774042cf7bc5d3e518b569a1ad18055596d018b21331555e4cdc6dedc752633b682afaa9691fdaa3794196e677e890272b196076abdf2fa9a6247325a78bc7b
6
+ metadata.gz: b82245e6eba1c6ead0156d91fb28273b49747e880b333fbbc04de3e2a9cfb3caa23d3bade2109bb65c01d4c91aaddcb4089623e816e83f4a05b03c3146e055c7
7
+ data.tar.gz: a76b70cf682be9e03d61f349356bd6dc3eaf6b16325af7fed988a9ffd43e83d2c9a7c3c590b4298f28c06da90a64814785247e42e4f4eb09b74ce9b86c04fec6
@@ -5,8 +5,24 @@ module Cats
5
5
  belongs_to :transporter
6
6
 
7
7
  validates :price, presence: true, numericality: { greater_than: 0 }
8
+ validates :rank, numericality: { greater_than: 0 }, allow_nil: true
9
+ validate :validate_winner_is_set_for_rank
8
10
 
9
11
  delegate(:name, to: :transporter, prefix: true)
12
+
13
+ def mark_as_winner(rank)
14
+ raise(StandardError, 'Offer already marked as winner.') if winner
15
+
16
+ self.rank = rank
17
+ self.winner = true
18
+ save!
19
+ end
20
+
21
+ def validate_winner_is_set_for_rank
22
+ return if winner
23
+
24
+ errors.add(:rank, 'cannot be set for a non-winning offer.') if rank
25
+ end
10
26
  end
11
27
  end
12
28
  end
@@ -10,6 +10,8 @@ class CreateCatsCoreTransportOffers < ActiveRecord::Migration[6.1]
10
10
  index: { name: 'to_on_transporter_indx' },
11
11
  foreign_key: { to_table: :cats_core_transporters }
12
12
  t.float :price, null: false
13
+ t.boolean :winner, null: false, default: false
14
+ t.integer :rank
13
15
 
14
16
  t.timestamps
15
17
  end
@@ -1,5 +1,5 @@
1
1
  module Cats
2
2
  module Core
3
- VERSION = '1.2.13'.freeze
3
+ VERSION = '1.2.14'.freeze
4
4
  end
5
5
  end
@@ -3,5 +3,7 @@ FactoryBot.define do
3
3
  transport_request_item
4
4
  transporter
5
5
  price { 100 }
6
+ winner { false }
7
+ rank { nil }
6
8
  end
7
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cats_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.13
4
+ version: 1.2.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.