flashcards_arikgadye 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b91449b093ab07974c3990b2c4e575a188628406
4
+ data.tar.gz: 7d84ff6ba2f19f8ab9ca3b79e30a0edfd0cff443
5
+ SHA512:
6
+ metadata.gz: 68c4888d224b1b1c0e1a6798413a23f2cabbd9e6adbb53e8f30b927562107d23dd80ccd3373abe099eb63d15be23a8cf57daf745eeaf3f15937caec93cec3965
7
+ data.tar.gz: 07f60a506efb805c7def19f581dab307af8d51567d541d75351377e18be1a8161cefe81e8787f5a6064aaeb5c19ce841a4a4c50ed4b0ed54a16a6597f16ce8db
data/lib/UI.rb ADDED
@@ -0,0 +1,31 @@
1
+ require_relative 'flashcards.rb'
2
+ require_relative 'deck.rb'
3
+ # require_relative '../controllers/game.rb'
4
+ class View
5
+
6
+ class << self
7
+ def render(text)
8
+ puts text
9
+ end
10
+
11
+ def show_question(card) render card.question
12
+ end
13
+
14
+ def show_answer(card)
15
+ render ("The correct answer is: '#{card.answer}'")
16
+ end
17
+
18
+ def wrong_answer
19
+ render("Wrong answer! Wanna try again? (y/n)")
20
+ end
21
+
22
+ def correct_answer
23
+ render("Correct!")
24
+ end
25
+
26
+ def game_intro
27
+ render("Welcome to flashcards! Type your input for each question and lets start learning! To exit, type 'exit'")
28
+ end
29
+ end
30
+ end
31
+
data/lib/deck.rb ADDED
@@ -0,0 +1,11 @@
1
+ require_relative 'file_reader.rb'
2
+
3
+ class Deck
4
+ attr_reader :deck
5
+
6
+ def self.initialize(file)
7
+ @deck = ReadFile.make_deck(file)
8
+ end
9
+ end
10
+
11
+
@@ -0,0 +1,18 @@
1
+ require_relative 'flashcards.rb'
2
+ module ReadFile
3
+
4
+ def self.make_deck(file)
5
+ file_array = []
6
+ deck = []
7
+ f = File.open(file, "r")
8
+ f.each_line do |line|
9
+ file_array << line.chomp
10
+ end
11
+ file_array.delete('')
12
+ file_array.each_slice(2) do |card|
13
+ deck << Flashcard.new(card[0], card[1])
14
+ end
15
+ deck
16
+ end
17
+ end
18
+
data/lib/flashcards.rb ADDED
@@ -0,0 +1,7 @@
1
+ class Flashcard
2
+ attr_reader :question, :answer
3
+ def initialize(question, answer)
4
+ @question = question
5
+ @answer = answer
6
+ end
7
+ end
data/lib/game.rb ADDED
@@ -0,0 +1,52 @@
1
+ require_relative 'deck.rb'
2
+ require_relative 'UI.rb'
3
+ require_relative 'game_logic.rb'
4
+ class Game
5
+
6
+ class << self
7
+ attr_reader :deck, :correct
8
+ def initialize(args={})
9
+ @current_card = nil
10
+ @file = args[:file] || ARGV[0]
11
+ @deck = Deck.initialize(@file)
12
+ @user_exit = false
13
+ @counter = 0
14
+ @correct = false
15
+ end
16
+
17
+ def play
18
+ View.game_intro
19
+ while !@user_exit && @counter < deck.length
20
+ sleep(0.5)
21
+ # repeat = true
22
+ @correct = false
23
+ @current_card = deck[@counter]
24
+ View.show_question(@current_card)
25
+ check_answer
26
+ @counter += 1
27
+ end
28
+ end
29
+ def check_answer
30
+ while !@correct
31
+ sleep(0.5)
32
+ View.render("Guess:")
33
+ answer = GameLogic.user_input
34
+ if answer == @current_card.answer
35
+ @correct = true
36
+ View.correct_answer
37
+ elsif answer.downcase == "exit"
38
+ @user_exit = true
39
+ break
40
+ else
41
+ View.wrong_answer
42
+ try_again = GameLogic.user_input
43
+ if try_again == 'n'
44
+ View.show_answer(@current_card)
45
+ break
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+
data/lib/game_logic.rb ADDED
@@ -0,0 +1,8 @@
1
+ require_relative 'UI.rb'
2
+
3
+ module GameLogic
4
+
5
+ def self.user_input
6
+ STDIN.gets.chomp
7
+ end
8
+ end
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flashcards_arikgadye
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Arik Gadye
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-05 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Gem to make and read flashcards
14
+ email: arikdovgadye@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/flashcards.rb
20
+ - lib/deck.rb
21
+ - lib/UI.rb
22
+ - lib/file_reader.rb
23
+ - lib/game_logic.rb
24
+ - lib/game.rb
25
+ homepage: http://rubygems.org/gems/flashcards_arikgadye
26
+ licenses:
27
+ - MIT
28
+ metadata: {}
29
+ post_install_message:
30
+ rdoc_options: []
31
+ require_paths:
32
+ - lib
33
+ required_ruby_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - '>='
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ requirements: []
44
+ rubyforge_project:
45
+ rubygems_version: 2.1.9
46
+ signing_key:
47
+ specification_version: 4
48
+ summary: Flashcards game
49
+ test_files: []