lib/language_cards/controllers/game.rb in language_cards-0.3.0 vs lib/language_cards/controllers/game.rb in language_cards-0.3.1
- old
+ new
@@ -1,73 +1,69 @@
+require 'language_cards/controllers/application_controller'
+
module LanguageCards
module Controllers
- module Game
- class << self
- include Helpers::ViewHelper
- include Helpers::GameHelper
+ class Game < ApplicationController
+ include Helpers::GameHelper
- def render(correct:, incorrect:, title:, timer:, last:)
- _score = t('Game.ScoreMenu.Score') + ": %0.2d%%" % calc_score(correct, incorrect)
- _timer = [((t('Timer.Timer') + ": " + timer.ha) if timer.time?), nil, timer.h]
- _mexit = t 'Menu.Exit'
+ def render(correct:, incorrect:, title:, timer:, last:)
+ _score = t('Game.ScoreMenu.Score') + ": %0.2d%%" % calc_score(correct, incorrect)
+ _timer = [((t('Timer.Timer') + ": " + timer.ha) if timer.time?), nil, timer.h]
+ _mexit = t 'Menu.Exit'
- view = File.expand_path('../view/game.erb', __dir__).
- ᐅ( IO.method :read ).
- ᐅ ERB.method :new
- view.result(binding)
- end
+ super(binding)
+ end
- def process(cards, mode)
- ic = struct_data.new(cards, mode)
- ic.get_input
- {
- correct: ic.valid?,
- last: ic.valid? ? ic.correct_msg : ic.incorrect_msg
- }
- end
+ def process(cards, mode)
+ ic = struct_data.new(cards, mode)
+ ic.get_input
+ {
+ correct: ic.valid?,
+ last: ic.valid? ? ic.correct_msg : ic.incorrect_msg
+ }
+ end
- def struct_data
- Struct.new(:card_set, :mode) do
- def input
- @input
- end
+ def struct_data
+ Struct.new(:card_set, :mode) do
+ def input
+ @input
+ end
- def get_input
- @input ||= CLI.ask("#{I18n.t('Game.TypeThis')}: #{display}")
- end
+ def get_input
+ @input ||= CLI.ask("#{I18n.t('Game.TypeThis')}: #{display}")
+ end
- def card
- @card ||= card_set.sample.current
- end
+ def card
+ @card ||= card_set.sample.current
+ end
- def display
- "#{card}"
- end
+ def display
+ "#{card}"
+ end
- def expected
- case mode
- when :translate
- card.translation
- when :typing_practice
- "#{card}"
- else
- raise "Invalid mode in Game Controller!"
- end
+ def expected
+ case mode
+ when :translate
+ card.translation
+ when :typing_practice
+ "#{card}"
+ else
+ raise "Invalid mode in Game Controller!"
end
+ end
- def correct_msg
- "#{I18n.t('Game.Correct')} #{input} = #{display}"
- end
+ def correct_msg
+ "#{I18n.t('Game.Correct')} #{input} = #{display}"
+ end
- def incorrect_msg
- output = "#{I18n.t('Game.Incorrect')} #{input} != #{display}"
- output << " #{I18n.t('Game.Its')} #{expected.join(', ')}" if mode == :translate
- output
- end
+ def incorrect_msg
+ output = "#{I18n.t('Game.Incorrect')} #{input} != #{display}"
+ output << " #{I18n.t('Game.Its')} #{expected.join(', ')}" if mode == :translate
+ output
+ end
- def valid?
- card_set.match? input
- end
+ def valid?
+ card_set.match? input
end
end
end
end
end