tconsole 1.0.1pre1 → 1.0.1pre2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -32,9 +32,9 @@ Installing tconsole
32
32
 
33
33
  How to use tconsole
34
34
  ------
35
- In your shell of choice, cd into your Rails project's directory and then run the `tconsole` command to fire up the console. You should see something like this:
35
+ In your shell of choice, cd into your Rails project's directory and then run `bundle exec tconsole` to fire up the console. You should see something like this:
36
36
 
37
- tconsole
37
+ bundle exec tconsole
38
38
 
39
39
  Loading your Rails environment...
40
40
  Environment loaded in 7.160264s.
@@ -1,3 +1,3 @@
1
1
  module TConsole
2
- VERSION = "1.0.1pre1"
2
+ VERSION = "1.0.1pre2"
3
3
  end
data/lib/tconsole.rb CHANGED
@@ -5,10 +5,27 @@ require "readline"
5
5
  require "benchmark"
6
6
  require "drb/drb"
7
7
 
8
+ Readline.completion_append_character = ""
9
+
10
+ # Proc for helping us figure out autocompletes
11
+ Readline.completion_proc = Proc.new do |str|
12
+ known_commands = TConsole::Console::KNOWN_COMMANDS.grep(/^#{Regexp.escape(str)}/)
13
+
14
+ files = Dir[str+'*'].grep(/^#{Regexp.escape(str)}/)
15
+ formatted_files = files.collect do |filename|
16
+ if File.directory?(filename)
17
+ filename + File::SEPARATOR
18
+ else
19
+ filename
20
+ end
21
+ end
22
+
23
+ known_commands.concat(formatted_files)
24
+ end
25
+
8
26
  module TConsole
9
27
  class Runner
10
28
 
11
- SERVER_URI = "druby://localhost:8788"
12
29
  # Spawns a new environment. Looks at the results of the environment to determine whether to stop or
13
30
  # keep running
14
31
  def self.run(argv)
@@ -32,12 +49,11 @@ module TConsole
32
49
  while running
33
50
  # ignore ctrl-c during load, since things can get kind of messy if we don't
34
51
 
35
- fork do
52
+ server_pid = fork do
36
53
  begin
37
54
  server = Server.new(config)
38
55
 
39
- DRb.start_service(SERVER_URI, server)
40
-
56
+ drb_server = DRb.start_service("drbunix://tmp/tconsole.#{Process.pid}", server)
41
57
  DRb.thread.join
42
58
  rescue Interrupt
43
59
  # do nothing here since the outer process will shut things down for us
@@ -45,7 +61,7 @@ module TConsole
45
61
  end
46
62
 
47
63
  # Set up our client connection to the server
48
- server = DRbObject.new_with_uri(SERVER_URI)
64
+ server = DRbObject.new_with_uri("drbunix://tmp/tconsole.#{server_pid}")
49
65
 
50
66
  loaded = false
51
67
  wait_until = Time.now + 10
@@ -82,6 +98,7 @@ module TConsole
82
98
  end
83
99
 
84
100
  class Console
101
+ KNOWN_COMMANDS = ["exit", "reload", "help", "units", "functionals", "integration", "recent", "uncommitted", "all", "info", "!failed"]
85
102
 
86
103
  def initialize
87
104
  read_history
@@ -89,7 +106,10 @@ module TConsole
89
106
 
90
107
  # Returns true if the app should keep running, false otherwise
91
108
  def read_and_execute(server)
92
- while line = Readline.readline("tconsole> ", true)
109
+ while line = Readline.readline("tconsole> ", false)
110
+ # TODO: Avoid pushing duplicate commands onto the history
111
+ Readline::HISTORY << line
112
+
93
113
  line.strip!
94
114
  args = line.split(/\s/)
95
115
 
@@ -156,7 +176,7 @@ module TConsole
156
176
  def store_history
157
177
  if ENV['HOME']
158
178
  File.open(history_file, "w") do |f|
159
- Readline::HISTORY.to_a[0..49].each do |item|
179
+ Readline::HISTORY.to_a.reverse[0..49].each do |item|
160
180
  f.puts(item)
161
181
  end
162
182
  end
@@ -166,10 +186,12 @@ module TConsole
166
186
  # Loads history from past sessions
167
187
  def read_history
168
188
  if ENV['HOME'] && File.exist?(history_file)
169
- File.readlines(history_file).each do |line|
170
- Readline::HISTORY.push(line)
189
+ File.readlines(history_file).reverse.each do |line|
190
+ Readline::HISTORY << line
171
191
  end
172
192
  end
173
193
  end
174
194
  end
175
195
  end
196
+
197
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tconsole
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1pre1
4
+ version: 1.0.1pre2
5
5
  prerelease: 5
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-24 00:00:00.000000000 Z
12
+ date: 2012-01-25 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: ! " tconsole allows Rails developers to easily and quickly run their
15
15
  tests as a whole or in subsets. It forks the testing processes from\n a preloaded
@@ -47,7 +47,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
47
47
  version: '0'
48
48
  segments:
49
49
  - 0
50
- hash: -2596008707461711160
50
+ hash: 185882967550172537
51
51
  required_rubygems_version: !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements: