shindo 0.1.9 → 0.1.10

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.
data/Gemfile CHANGED
@@ -1,2 +1,3 @@
1
- gem 'formatador', '>=0.0.14'
2
- gem 'gestalt', '>=0.0.11'
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,18 +1,21 @@
1
- ---
2
- dependencies:
3
- formatador:
4
- group:
5
- - :default
6
- version: ">= 0.0.14"
7
- gestalt:
8
- group:
9
- - :default
10
- version: ">= 0.0.11"
11
- specs:
12
- - formatador:
13
- version: 0.0.14
14
- - gestalt:
15
- version: 0.0.11
16
- hash: 5c2e77551db0a4772439a57b49e0ecc967e4dfe3
17
- sources: []
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ shindo (0.1.9)
5
+ formatador (>= 0.0.16)
6
+ gestalt (>= 0.0.11)
18
7
 
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ formatador (0.0.16)
12
+ gestalt (0.0.11)
13
+ formatador (>= 0.0.12)
14
+
15
+ PLATFORMS
16
+ ruby
17
+
18
+ DEPENDENCIES
19
+ formatador (>= 0.0.16)
20
+ gestalt (>= 0.0.11)
21
+ shindo!
data/lib/shindo.rb CHANGED
@@ -5,7 +5,7 @@ require 'gestalt'
5
5
  module Shindo
6
6
 
7
7
  unless const_defined?(:VERSION)
8
- VERSION = '0.1.9'
8
+ VERSION = '0.1.10'
9
9
  end
10
10
 
11
11
  def self.tests(description = nil, tags = [], &block)
@@ -20,7 +20,6 @@ module Shindo
20
20
  @befores = []
21
21
  @description_stack = []
22
22
  @tag_stack = []
23
- Thread.current[:formatador] = Formatador.new
24
23
  Thread.current[:reload] = false
25
24
  Thread.current[:tags] ||= []
26
25
  Thread.current[:totals] ||= { :failed => 0, :pending => 0, :skipped => 0, :succeeded => 0 }
@@ -34,7 +33,7 @@ module Shindo
34
33
  @unless_tagged << tag[1..-1]
35
34
  end
36
35
  end
37
- Thread.current[:formatador].display_line
36
+ Formatador.display_line
38
37
  tests(description, tags, &block)
39
38
  end
40
39
 
@@ -75,7 +74,7 @@ module Shindo
75
74
  if block_given?
76
75
  begin
77
76
  display_description(description)
78
- Thread.current[:formatador].indent { instance_eval(&block) }
77
+ Formatador.indent { instance_eval(&block) }
79
78
  rescue => error
80
79
  display_error(error)
81
80
  end
@@ -145,8 +144,8 @@ module Shindo
145
144
  "expected => #{expectation.inspect}",
146
145
  "returned => #{value.inspect}"
147
146
  ]
148
- Thread.current[:formatador].indent do
149
- Thread.current[:formatador].display_lines([*@message].map {|message| "[red]#{message}[/]"})
147
+ Formatador.indent do
148
+ Formatador.display_lines([*@message].map {|message| "[red]#{message}[/]"})
150
149
  end
151
150
  @message = nil
152
151
  end
@@ -162,11 +161,11 @@ module Shindo
162
161
 
163
162
  def prompt(description, &block)
164
163
  return if Thread.main[:exit] || Thread.current[:reload]
165
- Thread.current[:formatador].display("Action? [c,e,i,q,r,t,?]? ")
164
+ Formatador.display("Action? [c,e,i,q,r,t,?]? ")
166
165
  choice = STDIN.gets.strip
167
166
  continue = false
168
- Thread.current[:formatador].display_line
169
- Thread.current[:formatador].indent do
167
+ Formatador.display_line
168
+ Formatador.indent do
170
169
  case choice
171
170
  when 'c', 'continue'
172
171
  continue = true
@@ -176,12 +175,12 @@ module Shindo
176
175
  if value.nil?
177
176
  value = 'nil'
178
177
  end
179
- Thread.current[:formatador].display_line(value)
178
+ Formatador.display_line(value)
180
179
  rescue => error
181
180
  display_error(error)
182
181
  end
183
182
  when 'i', 'interactive', 'irb'
184
- Thread.current[:formatador].display_line('Starting interactive session...')
183
+ Formatador.display_line('Starting interactive session...')
185
184
  if @irb.nil?
186
185
  require 'irb'
187
186
  ARGV.clear # Avoid passing args to IRB
@@ -191,7 +190,7 @@ module Shindo
191
190
  IRB.conf[:PROMPT][:SHINDO] = {}
192
191
  end
193
192
  for key, value in IRB.conf[:PROMPT][:SIMPLE]
194
- IRB.conf[:PROMPT][:SHINDO][key] = "#{Thread.current[:formatador].indentation}#{value}"
193
+ IRB.conf[:PROMPT][:SHINDO][key] = "#{Formatador.indentation}#{value}"
195
194
  end
196
195
  @irb.context.prompt_mode = :SHINDO
197
196
  @irb.context.workspace = IRB::WorkSpace.new(@gestalt.bindings.last)
@@ -200,19 +199,19 @@ module Shindo
200
199
  rescue SystemExit
201
200
  end
202
201
  when 'q', 'quit', 'exit'
203
- Thread.current[:formatador].display_line("Exiting...")
202
+ Formatador.display_line("Exiting...")
204
203
  Thread.main[:exit] = true
205
204
  when 'r', 'reload'
206
- Thread.current[:formatador].display_line("Reloading...")
205
+ Formatador.display_line("Reloading...")
207
206
  Thread.current[:reload] = true
208
207
  when 't', 'backtrace', 'trace'
209
208
  if @gestalt.calls.empty?
210
- Thread.current[:formatador].display_line("[red]No methods were called, so no backtrace was captured.[/]")
209
+ Formatador.display_line("[red]No methods were called, so no backtrace was captured.[/]")
211
210
  else
212
211
  @gestalt.display_calls
213
212
  end
214
213
  when '?', 'help'
215
- Thread.current[:formatador].display_lines([
214
+ Formatador.display_lines([
216
215
  'c - ignore this error and continue',
217
216
  'i - interactive mode',
218
217
  'q - quit Shindo',
@@ -221,12 +220,12 @@ module Shindo
221
220
  '? - display help'
222
221
  ])
223
222
  else
224
- Thread.current[:formatador].display_line("[red]#{choice} is not a valid choice, please try again.[/]")
223
+ Formatador.display_line("[red]#{choice} is not a valid choice, please try again.[/]")
225
224
  end
226
- Thread.current[:formatador].display_line
225
+ Formatador.display_line
227
226
  end
228
227
  unless continue || Thread.main[:exit]
229
- Thread.current[:formatador].display_line("[red]- #{description}[/]")
228
+ Formatador.display_line("[red]- #{description}[/]")
230
229
  prompt(description, &block)
231
230
  end
232
231
  end
data/lib/shindo/bin.rb CHANGED
@@ -1,12 +1,11 @@
1
1
  require File.join(File.dirname(__FILE__), '..', 'shindo')
2
2
 
3
3
  @interrupt = lambda do
4
- formatador = Thread.current[:formatador] || Formatador
5
4
  unless Thread.main[:exit]
6
- formatador.display_line('Gracefully Exiting... (ctrl-c to force)')
5
+ Formatador.display_line('Gracefully Exiting... (ctrl-c to force)')
7
6
  Thread.main[:exit] = true
8
7
  else
9
- formatador.display_line('Exiting...')
8
+ Formatador.display_line('Exiting...')
10
9
  Thread.exit
11
10
  end
12
11
  end
@@ -66,15 +65,13 @@ run_in_thread(helpers, tests, @thread_locals.merge({:tags => tags}))
66
65
 
67
66
  @totals ||= { :failed => 0, :pending => 0, :succeeded => 0 }
68
67
  @success = @totals[:failed] == 0
69
- lines = []
70
- lines << "[red]#{@totals[:failed]} failed[/]," if @totals[:failed] > 0
71
- lines << "[yellow]#{@totals[:pending]} pending[/]," if @totals[:pending] > 0
72
- lines << "[green]#{@totals[:succeeded]} succeeded[/]"
73
- lines = lines[0...-2].join(', ') << ' and ' << lines[-1] if lines.length > 3
74
- lines << "in [bold]#{Time.now - @started_at}[/] seconds"
75
- Formatador.display_line
76
- Formatador.display_line(lines.join(' '))
77
- Formatador.display_line
68
+ status = []
69
+ status << "[red]#{@totals[:failed]} failed[/]," if @totals[:failed] > 0
70
+ status << "[yellow]#{@totals[:pending]} pending[/]," if @totals[:pending] > 0
71
+ status << "[green]#{@totals[:succeeded]} succeeded[/]"
72
+ status = status[0...-2].join(', ') << ' and ' << status[-1] if status.length > 3
73
+ status << "in [bold]#{Time.now - @started_at}[/] seconds"
74
+ Formatador.display_lines(['', status.join(' '), ''])
78
75
 
79
76
  if @success
80
77
  Kernel.exit(0)
@@ -4,10 +4,10 @@ module Shindo
4
4
  private
5
5
 
6
6
  def display_description_stack
7
- return if @description_stack.empty?
8
- Thread.current[:formatador].indent do
9
- Thread.current[:formatador].display_line(@description_stack.pop)
10
- display_description_stack
7
+ Formatador.indent do
8
+ @description_stack.length.times do
9
+ Formatador.display_line(@description_stack.pop)
10
+ end
11
11
  end
12
12
  end
13
13
 
@@ -20,22 +20,21 @@ module Shindo
20
20
  end
21
21
 
22
22
  def display_error(error)
23
+ Formatador.display_lines(['', Thread.current[:file]])
23
24
  display_description_stack
24
- Thread.current[:formatador].indent do
25
- Thread.current[:formatador].display_line("[red]#{error.message} (#{error.class})[/]")
26
- unless error.backtrace.empty?
27
- Thread.current[:formatador].indent do
28
- Thread.current[:formatador].display_lines(error.backtrace.map {|line| "[red]#{line}[/]"})
29
- end
25
+ Formatador.display_line("[red]#{error.message} (#{error.class})[/]")
26
+ unless error.backtrace.empty?
27
+ Formatador.indent do
28
+ Formatador.display_lines(error.backtrace.map {|line| "[red]#{line}[/]"})
30
29
  end
31
30
  end
32
31
  end
33
32
 
34
33
  def display_failure(description)
35
34
  Thread.current[:totals][:failed] += 1
36
- Thread.current[:formatador].display_line
35
+ Formatador.display_lines(['', Thread.current[:file]])
37
36
  display_description_stack
38
- Thread.current[:formatador].display_line("[red]- #{description}[/]")
37
+ Formatador.display_line("[red]- #{description}[/]")
39
38
  end
40
39
 
41
40
  def display_pending(description)
@@ -4,40 +4,40 @@ module Shindo
4
4
  private
5
5
 
6
6
  def display_description(description)
7
- Thread.current[:formatador].display_line(description)
7
+ Formatador.display_line(description)
8
8
  end
9
9
 
10
10
  def display_error(error)
11
- Thread.current[:formatador].display_line("[red]#{error.message} (#{error.class})[/]")
11
+ Formatador.display_line("[red]#{error.message} (#{error.class})[/]")
12
12
  unless error.backtrace.empty?
13
- Thread.current[:formatador].indent do
14
- Thread.current[:formatador].display_lines(error.backtrace.map {|line| "[red]#{line}[/]"})
13
+ Formatador.indent do
14
+ Formatador.display_lines(error.backtrace.map {|line| "[red]#{line}[/]"})
15
15
  end
16
16
  end
17
17
  end
18
18
 
19
19
  def display_failure(description)
20
20
  Thread.current[:totals][:failed] += 1
21
- Thread.current[:formatador].display_line("[red]- #{description}[/]")
21
+ Formatador.display_line("[red]- #{description}[/]")
22
22
  end
23
23
 
24
24
  def display_pending(description)
25
25
  Thread.current[:totals][:pending] += 1
26
- Thread.current[:formatador].display_line("[yellow]# #{description}[/]")
26
+ Formatador.display_line("[yellow]# #{description}[/]")
27
27
  end
28
28
 
29
29
  def display_success(description)
30
30
  Thread.current[:totals][:succeeded] += 1
31
- Thread.current[:formatador].display_line("[green]+ #{description}[/]")
31
+ Formatador.display_line("[green]+ #{description}[/]")
32
32
  end
33
33
 
34
34
  def raises?(expectation, &block)
35
- @gestalt = Gestalt.new({'formatador' => Thread.current[:formatador]})
35
+ @gestalt = Gestalt.new({'formatador' => Formatador})
36
36
  [value = @gestalt.run(&block), value.is_a?(expectation)]
37
37
  end
38
38
 
39
39
  def returns?(expectation, &block)
40
- @gestalt = Gestalt.new({'formatador' => Thread.current[:formatador]})
40
+ @gestalt = Gestalt.new({'formatador' => Formatador})
41
41
  [value = @gestalt.run(&block), value == expectation]
42
42
  end
43
43
 
data/shindo.gemspec CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'shindo'
16
- s.version = '0.1.9'
17
- s.date = '2010-11-16'
16
+ s.version = '0.1.10'
17
+ s.date = '2010-11-18'
18
18
  s.rubyforge_project = 'shindo'
19
19
 
20
20
  ## Make sure your summary is short. The description may be as long
@@ -48,7 +48,7 @@ Gem::Specification.new do |s|
48
48
 
49
49
  ## List your runtime dependencies here. Runtime dependencies are those
50
50
  ## that are needed for an end user to actually USE your code.
51
- s.add_dependency('formatador', '>=0.0.14')
51
+ s.add_dependency('formatador', '>=0.0.16')
52
52
  s.add_dependency('gestalt', '>=0.0.11')
53
53
 
54
54
  ## List your development dependencies here. Development dependencies are
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 9
9
- version: 0.1.9
8
+ - 10
9
+ version: 0.1.10
10
10
  platform: ruby
11
11
  authors:
12
12
  - geemus (Wesley Beary)
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-11-16 00:00:00 -08:00
17
+ date: 2010-11-18 00:00:00 -08:00
18
18
  default_executable: shindo
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -27,8 +27,8 @@ dependencies:
27
27
  segments:
28
28
  - 0
29
29
  - 0
30
- - 14
31
- version: 0.0.14
30
+ - 16
31
+ version: 0.0.16
32
32
  type: :runtime
33
33
  version_requirements: *id001
34
34
  - !ruby/object:Gem::Dependency