[macruby-changes] [4737] DietRB/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Fri Oct 8 04:07:33 PDT 2010
Revision: 4737
http://trac.macosforge.org/projects/ruby/changeset/4737
Author: eloy.de.enige at gmail.com
Date: 2010-10-08 04:07:32 -0700 (Fri, 08 Oct 2010)
Log Message:
-----------
Finish tty spec and simplified a bit more
From: Eloy Duran <eloy.de.enige at gmail.com>
Modified Paths:
--------------
DietRB/trunk/.gitignore
DietRB/trunk/bin/dietrb
DietRB/trunk/lib/irb/driver/tty.rb
DietRB/trunk/spec/driver/tty_spec.rb
Modified: DietRB/trunk/.gitignore
===================================================================
--- DietRB/trunk/.gitignore 2010-10-08 11:07:20 UTC (rev 4736)
+++ DietRB/trunk/.gitignore 2010-10-08 11:07:32 UTC (rev 4737)
@@ -1 +1,4 @@
-pkg
\ No newline at end of file
+pkg
+*.swp
+extensions
+t.rb
Modified: DietRB/trunk/bin/dietrb
===================================================================
--- DietRB/trunk/bin/dietrb 2010-10-08 11:07:20 UTC (rev 4736)
+++ DietRB/trunk/bin/dietrb 2010-10-08 11:07:32 UTC (rev 4737)
@@ -32,9 +32,9 @@
IRB.formatter.filter_from_backtrace << /^#{__FILE__}/
if ARGV.empty?
- # require 'irb/driver/readline'
+ require 'irb/driver/readline'
# require 'irb/driver/tty'
- require 'irb/driver/socket'
+ # require 'irb/driver/socket'
else
path = ARGV.shift
require 'irb/driver/file'
Modified: DietRB/trunk/lib/irb/driver/tty.rb
===================================================================
--- DietRB/trunk/lib/irb/driver/tty.rb 2010-10-08 11:07:20 UTC (rev 4736)
+++ DietRB/trunk/lib/irb/driver/tty.rb 2010-10-08 11:07:32 UTC (rev 4737)
@@ -23,22 +23,15 @@
""
end
+ # Feeds input into a given context.
+ #
+ # Ensures that the standard output object is a OutputRedirector, or a
+ # subclass thereof.
def run(context)
- ensure_output_redirector do
- while line = consume(context)
- continue = context.process_line(line)
- break unless continue
- end
+ before, $stdout = $stdout, OutputRedirector.new unless $stdout.is_a?(OutputRedirector)
+ while line = consume(context)
+ break unless context.process_line(line)
end
- end
-
- # Ensure that the standard output object is a OutputRedirector. If it's
- # already a OutputRedirector, do nothing.
- def ensure_output_redirector
- unless $stdout.is_a?(IRB::Driver::OutputRedirector)
- before, $stdout = $stdout, IRB::Driver::OutputRedirector.new
- end
- yield
ensure
$stdout = before if before
end
@@ -55,4 +48,4 @@
end
private :irb
-end
\ No newline at end of file
+end
Modified: DietRB/trunk/spec/driver/tty_spec.rb
===================================================================
--- DietRB/trunk/spec/driver/tty_spec.rb 2010-10-08 11:07:20 UTC (rev 4736)
+++ DietRB/trunk/spec/driver/tty_spec.rb 2010-10-08 11:07:32 UTC (rev 4737)
@@ -24,4 +24,20 @@
@driver.consume(@context).should == ""
@context.source.to_s.should == ""
end
-end
\ No newline at end of file
+
+ it "feeds input into a given context" do
+ $from_context = false
+ @driver.input.stub_input "$from_context = true", "exit"
+ @driver.run(@context)
+ $from_context.should == true
+ end
+
+ it "makes sure there's one global output redirector while running a context" do
+ before = $stdout
+ $from_context = nil
+ @driver.input.stub_input "$from_context = $stdout", "exit"
+ @driver.run(@context)
+ $from_context.class == IRB::Driver::OutputRedirector
+ $stdout.should == before
+ end
+end
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20101008/a1b5df7b/attachment-0001.html>
More information about the macruby-changes
mailing list