Pickaxe 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,7 +18,7 @@ end
18
18
  $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)))
19
19
 
20
20
  module Pickaxe
21
- VERSION = "0.6.2"
21
+ VERSION = "0.6.3"
22
22
 
23
23
  class PickaxeError < StandardError; end
24
24
 
@@ -1,6 +1,5 @@
1
1
  require 'optparse'
2
2
 
3
- options = { :extension => "txt" }
4
3
  parser = OptionParser.new do |opts|
5
4
  opts.banner = <<END_OF_BANNER
6
5
  Usage:
@@ -12,43 +11,43 @@ END_OF_BANNER
12
11
  opts.separator ""
13
12
  opts.on("-e", "--ext [EXTENSION]", "Use files with given EXTENSION " +
14
13
  "(default 'txt')") do |extension|
15
- options[:extension] = extension
14
+ Pickaxe::Main.options[:extension] = extension
16
15
  end
17
16
 
18
17
  opts.on("-s", "--sorted", "Do not shuffle questions") do |v|
19
- options[:sorted] = true
18
+ Pickaxe::Main.options[:sorted] = true
20
19
  end
21
20
 
22
21
  opts.on("--sorted-answers", "Do not shuffle answers") do |v|
23
- options[:sorted_answers] = true
22
+ Pickaxe::Main.options[:sorted_answers] = true
24
23
  end
25
24
 
26
25
  opts.on("--select [NUMBER]", "Select certain number of questions") do |v|
27
- options[:select] = Integer(v)
26
+ Pickaxe::Main.options[:select] = Integer(v)
28
27
  end
29
28
 
30
29
  opts.on("--full-test", "Checks test after all questions are answered") do |v|
31
- options[:full_test] = true
30
+ Pickaxe::Main.options[:full_test] = true
32
31
  end
33
32
 
34
33
  opts.on("--repeat-incorrect", "Repeat questions answered incorrectly") do |v|
35
- options[:repeat_incorrect] = true
34
+ Pickaxe::Main.options[:repeat_incorrect] = true
36
35
  end
37
36
 
38
37
  opts.on("--strict", "Quit on syntax error in test file") do |v|
39
- options[:strict] = true
38
+ Pickaxe::Main.options[:strict] = true
40
39
  end
41
40
 
42
41
  opts.on_tail("--syntax-check", "Check syntax only - do not run test") do
43
- options[:syntax_check] = true
42
+ Pickaxe::Main.options[:syntax_check] = true
44
43
  end
45
44
 
46
45
  opts.on("--clear", "Turn on shell clearing before question") do |v|
47
- options[:clear] = true
46
+ Pickaxe::Main.options[:clear] = true
48
47
  end
49
48
 
50
49
  opts.on("--no-color", "Turn off colors") do |v|
51
- options[:no_colors] = true
50
+ Pickaxe::Main.options[:no_colors] = true
52
51
  end
53
52
 
54
53
  opts.on_tail("--version", "Show version") do
@@ -65,8 +64,6 @@ end
65
64
  begin
66
65
  parser.parse!
67
66
 
68
- Pickaxe::Main.options = options
69
-
70
67
  if Pickaxe::WINDOWS_IT_IS
71
68
  $stderr.puts <<END_OF_MESSAGE
72
69
  ! Hi there Windows user.
@@ -81,11 +78,11 @@ END_OF_MESSAGE
81
78
 
82
79
  end
83
80
 
84
- if options[:full_test] and options[:repeat_incorrect]
81
+ if Pickaxe::Main.options[:full_test] and Pickaxe::Main.options[:repeat_incorrect]
85
82
  $stderr.puts(("! --full-test disables the --repeat-incorrect option" ).color(:yellow))
86
- options[:repeat_incorrect] = false
83
+ Pickaxe::Main.options[:repeat_incorrect] = false
87
84
  end
88
- Pickaxe::Main.new(ARGV, options)
85
+ Pickaxe::Main.new(ARGV)
89
86
  rescue Pickaxe::PickaxeError, OptionParser::InvalidOption => e
90
87
  $stderr.puts(("! " + e.to_s).color(:red))
91
88
  end
@@ -4,6 +4,7 @@ module Pickaxe
4
4
  class TabTermination < PickaxeError; end
5
5
 
6
6
  cattr_accessor :options
7
+ self.options = { :extension => "txt" }
7
8
 
8
9
  END_OF_TEST_MESSAGE = <<END_OF_TEST
9
10
  This is the end of this test and You can now jump back to
@@ -14,11 +15,11 @@ If You do not know how to jump back type `?' and press [ENTER].
14
15
  Hit [ENTER] to rate the test and see Your incorrect answers.
15
16
  END_OF_TEST
16
17
 
17
- def initialize(paths, options = {})
18
+ def initialize(paths)
18
19
  raise NoTests, "no tests to run" if paths.empty?
19
20
 
20
21
  @test = Test.new(*paths)
21
- return if options[:syntax_check]
22
+ return if Main.options[:syntax_check]
22
23
 
23
24
  @logger = Logger.new(File.open('answers.log',
24
25
  File::WRONLY|File::APPEND|File::CREAT))
@@ -86,7 +87,7 @@ END_OF_TEST
86
87
  def command(line)
87
88
  @last_answer = nil
88
89
 
89
- case line
90
+ case line.strip
90
91
  when /^\s*@\s*(.+)/ then # @ question
91
92
  @current_index = Integer($1) -1
92
93
  true
@@ -106,7 +107,7 @@ END_OF_TEST
106
107
  else
107
108
  error "You are at last question"
108
109
  end
109
- when "\n" then
110
+ when "" then
110
111
  if Main.options[:full_test] and @question.nil?
111
112
  Main.options[:full_test] = false
112
113
  Main.options[:force_show_answers] = true
@@ -63,19 +63,19 @@ module Pickaxe
63
63
  end
64
64
  end
65
65
 
66
- def each(&block)
67
- shuffled_questions.each(&block)
66
+ def each(options = Main.options, &block)
67
+ shuffled_questions(options).each(&block)
68
68
  end
69
69
 
70
- def shuffled_questions
71
- questions = if Main.options[:sorted]
70
+ def shuffled_questions(options = Main.options)
71
+ questions = if options[:sorted]
72
72
  @questions
73
73
  else
74
74
  @questions.shuffle
75
75
  end
76
76
 
77
- @selected = if Main.options[:select]
78
- questions[0...(Main.options[:select])]
77
+ @selected = if options[:select]
78
+ questions[0...(options[:select])]
79
79
  else
80
80
  questions
81
81
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Pickaxe
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 2
10
- version: 0.6.2
9
+ - 3
10
+ version: 0.6.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Dawid Fatyga