testrbl 0.1.10 → 0.1.11

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.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- testrbl (0.1.10)
4
+ testrbl (0.1.11)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
data/Readme.md CHANGED
@@ -1,5 +1,6 @@
1
1
  Run ruby Test::Unit/Shoulda/Minitest tests by line-number / folder / the dozen.<br/>
2
- (everything not matching "file:line" is simply passed to testrb)
2
+ (everything not matching "file:line" is simply passed to testrb)<br/>
3
+ Instant execution, 0 wait-time!
3
4
 
4
5
  Install
5
6
  =======
@@ -1,3 +1,3 @@
1
1
  module Testrbl
2
- VERSION = '0.1.10'
2
+ VERSION = '0.1.11'
3
3
  end
data/lib/testrbl.rb CHANGED
@@ -21,7 +21,7 @@ module Testrbl
21
21
  if command =~ /^\S+:\d+$/
22
22
  file, line = argv.first.split(':')
23
23
  file = "./#{file}" if file =~ /^[a-z]/ # fix 1.9 not being able to load local files
24
- run "#{bundle_exec}ruby #{file} -n '/#{pattern_from_file(file, line)}/'"
24
+ run "#{bundle_exec}ruby #{file} -n '/#{pattern_from_file(File.readlines(file), line)}/'"
25
25
  elsif File.file?(command)
26
26
  run "#{bundle_exec}ruby #{command}"
27
27
  else # pass though
@@ -41,17 +41,25 @@ module Testrbl
41
41
  exec command
42
42
  end
43
43
 
44
- def self.pattern_from_file(file, line)
45
- content = File.readlines(file)
46
- search = content[0..(line.to_i-1)].reverse
44
+ def self.pattern_from_file(lines, line)
45
+ search = lines[0..(line.to_i-1)].reverse
47
46
 
48
47
  last_spaces = " " * 100
49
48
  found = search.map{|line| pattern_from_line(line) }.compact
50
- found = found.select do |spaces, name|
49
+ patterns = found.select do |spaces, name|
51
50
  last_spaces = spaces if spaces.size < last_spaces.size
51
+ end.map(&:last)
52
+
53
+ use = []
54
+ found_final = false
55
+ patterns.each do |pattern|
56
+ is_final = pattern.end_with?("$")
57
+ next if is_final && found_final
58
+ found_final = is_final
59
+ use << pattern
52
60
  end
53
61
 
54
- return found.reverse.map(&:last).join(".*") if found.size > 0
62
+ return use.reverse.join(".*") if found.size > 0
55
63
 
56
64
  raise "no test found before line #{line}"
57
65
  end
data/spec/testrbl_spec.rb CHANGED
@@ -331,6 +331,31 @@ describe Testrbl do
331
331
  end
332
332
  end
333
333
 
334
+ describe ".pattern_from_file" do
335
+ def call(content, line)
336
+ lines = content.split("\n").map{|l| l + "\n" }
337
+ Testrbl.pattern_from_file(lines, line)
338
+ end
339
+
340
+ after do
341
+ @result.should include("xxx")
342
+ @result.should_not include("yyy")
343
+ @result.should include("zzz")
344
+ end
345
+
346
+ it "does not find nested should calls" do
347
+ @result = call(" context \"xxx\" do\n test \"yyy\" do\n if true do\n test \"zzz\" do\n", 4)
348
+ end
349
+
350
+ it "does not find nested test calls" do
351
+ @result = call(" context \"xxx\" do\n test \"yyy\" do\n if true do\n test \"zzz\" do\n", 4)
352
+ end
353
+
354
+ it "does not find nested it calls" do
355
+ @result = call(" context \"xxx\" do\n it \"yyy\" do\n if true do\n it \"zzz\" do\n", 4)
356
+ end
357
+ end
358
+
334
359
  describe ".pattern_from_line" do
335
360
  def call(line)
336
361
  Testrbl.pattern_from_line(line)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testrbl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.11
5
5
  prerelease:
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-06-30 00:00:00.000000000 Z
12
+ date: 2012-07-14 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description:
15
15
  email: michael@grosser.it
@@ -44,7 +44,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
44
44
  version: '0'
45
45
  segments:
46
46
  - 0
47
- hash: 3990631787065738982
47
+ hash: -4483421695493014766
48
48
  required_rubygems_version: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
@@ -53,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
53
53
  version: '0'
54
54
  segments:
55
55
  - 0
56
- hash: 3990631787065738982
56
+ hash: -4483421695493014766
57
57
  requirements: []
58
58
  rubyforge_project:
59
59
  rubygems_version: 1.8.24