48 lines
1.2 KiB
Ruby
48 lines
1.2 KiB
Ruby
# Global variable
|
|
$number_of_continents = 7
|
|
|
|
module Banking
|
|
# Module constants for semantic versioning
|
|
VERSION = '1.0.0.1'
|
|
class BankAccount
|
|
attr_accessor :first_name, :last_name
|
|
attr_reader :account_number
|
|
|
|
@@ATM_FEE = 3.75
|
|
@@adiministrator_password = 'secret'
|
|
|
|
# The class's constructor
|
|
def initialize(first_name, last_name, account_number)
|
|
@first_name = first_name
|
|
@last_name = last_name
|
|
@account_number = account_number
|
|
@balance = 0
|
|
end
|
|
|
|
# Explicit setter as extra behavior is required
|
|
def account_number=(account_number)
|
|
puts 'Enter administrator override'
|
|
if gets == @@adiministrator_password
|
|
@account_number = account_number
|
|
else
|
|
puts 'Sorry. Incorrect password. Account number not changed'
|
|
end
|
|
end
|
|
|
|
# Explicit getter as extra behavior is required
|
|
def balance
|
|
"$#{@balance / 100}.#{@balance % 100}"
|
|
end
|
|
|
|
# Check if account has sufficient funds to complete transaction
|
|
def sufficient_funds? (withdrawal_amount)
|
|
withdrawal_amount <= @balance
|
|
end
|
|
|
|
# Destructive method
|
|
def donate_all_money!
|
|
@balance = 0
|
|
end
|
|
end
|
|
end
|