Class: AuctionFunCore::Entities::Auction

Inherits:
ROM::Struct
  • Object
show all
Defined in:
lib/auction_fun_core/entities/auction.rb

Overview

Defines the Auction class as Entity. It appears to be a simple data structure class representing auction-related information.

Instance Method Summary collapse

Instance Method Details

#initial_bidMoney

Retrieves the initial bid amount for an auction as a Money object.

This method creates and returns a new Money object that represents the initial bid amount required to start bidding in the auction. It utilizes initial_bid_cents and initial_bid_currency attributes to construct the Money object, ensuring that the amount is correctly represented in the specified currency.

Returns:

  • Returns a Money object representing the initial bid amount with the specified currency.



17
18
19
# File 'lib/auction_fun_core/entities/auction.rb', line 17

def initial_bid
  Money.new(initial_bid_cents, initial_bid_currency)
end

#minimal_bidMoney

Retrieves the minimal bid amount for an auction as a Money object.

This method creates and returns a new Money object that represents the minimal bid amount required to participate in the auction. It uses minimal_bid_cents and minimal_bid_currency attributes to construct the Money object.

Returns:

  • Returns a Money object representing the minimal bid amount with the appropriate currency.



28
29
30
# File 'lib/auction_fun_core/entities/auction.rb', line 28

def minimal_bid
  Money.new(minimal_bid_cents, minimal_bid_currency)
end

#not_started?Boolean

Checks if an auction has not started yet.

This method verifies if an auction is still in the “scheduled” status and whether its start time (started_at) is still in the future compared to the current time. The auction is considered not started if it is scheduled and the start time has not yet been reached.

Returns:

  • Returns true if the auction has not started yet, otherwise returns false.



62
63
64
# File 'lib/auction_fun_core/entities/auction.rb', line 62

def not_started?
  status == "scheduled" && Time.current <= started_at
end

#started?Boolean

Checks if an auction has already started.

This method determines if an auction has begun based on its status and by comparing the auction’s start time (started_at) with the current time. An auction is considered started if it is no longer scheduled (i.e., its status is not “scheduled”) and the start time (started_at) is equal to or before the current time.

Returns:

  • Returns true if the auction has already started, otherwise returns false.



50
51
52
# File 'lib/auction_fun_core/entities/auction.rb', line 50

def started?
  status != "scheduled" && Time.current > started_at
end

#winner?Boolean

Checks if an auction has a winner.

This method determines if an auction has a winner based on the presence of a winner_id. It returns true if the winner_id is present, indicating that the auction has concluded with a winning bidder.

Returns:

  • Returns true if there is a winner for the auction, otherwise returns false.



39
40
41
# File 'lib/auction_fun_core/entities/auction.rb', line 39

def winner?
  winner_id.present?
end