Class: InfinityTest::Command
- Inherits:
-
Object
- Object
- InfinityTest::Command
- Defined in:
- lib/infinity_test/command.rb
Instance Attribute Summary collapse
-
#command ⇒ Object
Returns the value of attribute command.
-
#line ⇒ Object
Returns the value of attribute line.
-
#results ⇒ Object
Returns the value of attribute results.
-
#ruby_version ⇒ Object
Returns the value of attribute ruby_version.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Command
constructor
Create new Command object that receive the ruby_version and the command string.
-
#push_in_the_results(test_line) ⇒ Object
Push in the results the test line If have in the Ruby Enterpise Edition or Ruby 1.8.* pack the numbers returned.
-
#run! ⇒ Object
Code taken in Autotest gem and change a little.
-
#yarv? ⇒ Boolean
Using yarv?.
Constructor Details
#initialize(options = {}) ⇒ Command
Create new Command object that receive the ruby_version and the command string
7 8 9 10 11 12 13 |
# File 'lib/infinity_test/command.rb', line 7 def initialize(={}) @command = [:command] @ruby_version = [:ruby_version] @current_ruby_string = RVM::Environment.current_ruby_string @results = [] @line = [] end |
Instance Attribute Details
#command ⇒ Object
Returns the value of attribute command.
3 4 5 |
# File 'lib/infinity_test/command.rb', line 3 def command @command end |
#line ⇒ Object
Returns the value of attribute line.
3 4 5 |
# File 'lib/infinity_test/command.rb', line 3 def line @line end |
#results ⇒ Object
Returns the value of attribute results.
3 4 5 |
# File 'lib/infinity_test/command.rb', line 3 def results @results end |
#ruby_version ⇒ Object
Returns the value of attribute ruby_version.
3 4 5 |
# File 'lib/infinity_test/command.rb', line 3 def ruby_version @ruby_version end |
Instance Method Details
#push_in_the_results(test_line) ⇒ Object
Push in the results the test line If have in the Ruby Enterpise Edition or Ruby 1.8.* pack the numbers returned. Join otherwise.
44 45 46 47 48 49 |
# File 'lib/infinity_test/command.rb', line 44 def push_in_the_results(test_line) if test_line == ?\n @results.push(yarv? ? @line.join : @line.pack('c*')) @line.clear end end |
#run! ⇒ Object
Code taken in Autotest gem and change a little
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/infinity_test/command.rb', line 17 def run! old_sync = $stdout.sync $stdout.sync = true begin open("| #{@command}", "r") do |file| until file.eof? do test_line = file.getc or break if yarv? print(test_line) else putc(test_line) end @line.push(test_line) push_in_the_results(test_line) end end ensure $stdout.sync = old_sync end @results = @results.join self end |
#yarv? ⇒ Boolean
Using yarv?
53 54 55 |
# File 'lib/infinity_test/command.rb', line 53 def yarv? @current_ruby_string =~ /ruby-1.9/ end |