Мне нужно взять один код файла ниже и разделить его на рубиновую программу Model, View, Controller (MVC), которая может выполняться командой ruby
в командной строке без использования Rails (для получения инструкций о том, как запустить эту программу с irb
, ознакомьтесь с README.md на моем RubyBank Github Repo).Включение одного файла в MVC без Rails
require_relative 'view'
class BankAccount
attr_accessor :name, :balance
def initialize(name, balance=0)
@name = name
@balance = balance
end
def show_balance(pin_access)
if pin_access == pin || pin_access == bank_manager
puts "\nYour current balance is: $#{@balance}"
else
puts pin_error_message
end
end
def withdraw(pin_access, amount)
if pin_access == pin
@balance -= amount
puts "'\nYou just withdrew $#{amount} from your account. \n\nYour remaining balance is: $#{@balance}\n\n"
else
puts pin_error_message
end
if @balance < 0
@balance += amount
return overdraft_protection
end
end
def deposit(pin_access, amount)
if pin_access == pin
@balance += amount
puts "\nYou just deposited $#{amount} into your account. \n\nYour remaining balance is: $#{@balance}"
else
puts pin_error_message
end
end
private
def pin
@pin = 1234
end
def bank_manager
@bank_manager = 4321
end
def pin_error_message
puts "Invalid PIN number. Try again."
end
def overdraft_protection
puts "\nYou have overdrafted your account. We cannot complete your withdrawl. Please deposit money before trying again. \n\nYour corrected balance is $#{@balance}"
end
end
Я ищу хорошее место для начала или общий подход к выполнению такой задачи.
Что должно делать приложение? Ваш класс 'BankAccount' _is_ модель (минус текстовый вывод, если это не просто регистрация). Теперь вам нужен какой-то класс «Просмотр» и «Контроллер», который изменяет модель в результате действия в «Просмотр». У вас должны быть некоторые спецификации, в которых указываются: a) какие действия должны быть возможны, и b) какой вид представления вы должны создавать (веб, консоль, рабочий стол, ..), или вам будет сложно выполнять требования ваших клиентов/учителей. – atamanroman
Приложение должно приветствовать их из командной строки, предлагать им зарегистрироваться для учетной записи, а затем разрешать им делать депозиты, снимать или показывать их текущий баланс. –
В этом случае приложение основано на консоли. Методы, в которых у вас есть «puts», могут быть преобразованы в разные представления (или разные методы общего представления). Ваш контроллер должен принимать входные данные с консоли, вызывая соответствующие части модели по мере необходимости (например, создавая экземпляр «BankAccount.new», когда кто-то подписывается, вызывая депозит при его спросе и т. Д.) И решая, какое представление отображать дальше. –