single_test 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -7,7 +7,7 @@ GEM
7
7
  bundler (~> 1.0.0)
8
8
  git (>= 1.2.5)
9
9
  rake
10
- rake (0.8.7)
10
+ rake (0.9.2.2)
11
11
  rspec (2.4.0)
12
12
  rspec-core (~> 2.4.0)
13
13
  rspec-expectations (~> 2.4.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.2
1
+ 0.4.3
data/lib/single_test.rb CHANGED
@@ -49,10 +49,14 @@ module SingleTest
49
49
  # spec:user:blah --> [spec,user,blah]
50
50
  def parse_cli(call)
51
51
  raise "you should not have gotten here..." unless call =~ CMD_LINE_MATCHER
52
- arguments = underscore(call).split(":",3)
52
+
53
+ # replace any ::s with /s for class names
54
+ call.gsub! /::/, '/'
55
+
56
+ arguments = call.split(":",3)
53
57
  [
54
58
  arguments[0], #type
55
- arguments[1], #file name
59
+ class_to_filename(arguments[1]), # class or file name
56
60
  arguments[2].to_s.strip.empty? ? nil : arguments[2] #test name
57
61
  ]
58
62
  end
@@ -109,10 +113,11 @@ module SingleTest
109
113
 
110
114
  private
111
115
 
112
- # copied from Rails - so we're not dependent
113
- def underscore(camel_cased_word)
114
- word = camel_cased_word.to_s.dup
115
- word.gsub!(/::/, '/')
116
+ # converted from underscore to do a few more checks
117
+ def class_to_filename(suspect)
118
+ word = suspect.to_s.dup
119
+ return word unless word.match /^[A-Z]/ and not word.match %r{/[a-z]}
120
+
116
121
  word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
117
122
  word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
118
123
  word.tr!("-", "_")
data/single_test.gemspec CHANGED
@@ -4,13 +4,13 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{single_test}
8
- s.version = "0.4.2"
7
+ s.name = "single_test"
8
+ s.version = "0.4.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Michael Grosser"]
12
- s.date = %q{2011-10-13}
13
- s.email = %q{grosser.michael@gmail.com}
12
+ s.date = "2011-10-23"
13
+ s.email = "grosser.michael@gmail.com"
14
14
  s.files = [
15
15
  "Gemfile",
16
16
  "Gemfile.lock",
@@ -24,10 +24,10 @@ Gem::Specification.new do |s|
24
24
  "spec/single_test_spec.rb",
25
25
  "spec/spec_helper.rb"
26
26
  ]
27
- s.homepage = %q{http://github.com/grosser/single_test}
27
+ s.homepage = "http://github.com/grosser/single_test"
28
28
  s.require_paths = ["lib"]
29
- s.rubygems_version = %q{1.6.2}
30
- s.summary = %q{Rake tasks to invoke single tests/specs with rakish syntax}
29
+ s.rubygems_version = "1.8.10"
30
+ s.summary = "Rake tasks to invoke single tests/specs with rakish syntax"
31
31
  s.test_files = [
32
32
  "spec/single_test_spec.rb",
33
33
  "spec/spec_helper.rb"
@@ -49,6 +49,16 @@ describe SingleTest do
49
49
  parsed[1].should == 'class_names/with_namespaces'
50
50
  parsed[2].should == 'foobar'
51
51
  end
52
+
53
+ it "doesn't mess with non-class names" do
54
+ parsed = SingleTest.parse_cli('test:ClassNames::WithNamespaces:FOOBAR')
55
+ parsed[2].should == 'FOOBAR'
56
+ end
57
+
58
+ it "doesn't mess with mixed case filenames" do
59
+ parsed = SingleTest.parse_cli('test:a/fileName/withMixedCase')
60
+ parsed[1].should == 'a/fileName/withMixedCase'
61
+ end
52
62
  end
53
63
 
54
64
  describe :find_test_file do
metadata CHANGED
@@ -1,33 +1,22 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: single_test
3
- version: !ruby/object:Gem::Version
4
- hash: 11
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 4
9
- - 2
10
- version: 0.4.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Michael Grosser
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-13 00:00:00 +02:00
19
- default_executable:
12
+ date: 2011-10-23 00:00:00.000000000 Z
20
13
  dependencies: []
21
-
22
14
  description:
23
15
  email: grosser.michael@gmail.com
24
16
  executables: []
25
-
26
17
  extensions: []
27
-
28
18
  extra_rdoc_files: []
29
-
30
- files:
19
+ files:
31
20
  - Gemfile
32
21
  - Gemfile.lock
33
22
  - Rakefile
@@ -39,40 +28,33 @@ files:
39
28
  - spec/example_finder_test.txt
40
29
  - spec/single_test_spec.rb
41
30
  - spec/spec_helper.rb
42
- has_rdoc: true
43
31
  homepage: http://github.com/grosser/single_test
44
32
  licenses: []
45
-
46
33
  post_install_message:
47
34
  rdoc_options: []
48
-
49
- require_paths:
35
+ require_paths:
50
36
  - lib
51
- required_ruby_version: !ruby/object:Gem::Requirement
37
+ required_ruby_version: !ruby/object:Gem::Requirement
52
38
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
39
+ requirements:
40
+ - - ! '>='
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ segments:
58
44
  - 0
59
- version: "0"
60
- required_rubygems_version: !ruby/object:Gem::Requirement
45
+ hash: -221565731
46
+ required_rubygems_version: !ruby/object:Gem::Requirement
61
47
  none: false
62
- requirements:
63
- - - ">="
64
- - !ruby/object:Gem::Version
65
- hash: 3
66
- segments:
67
- - 0
68
- version: "0"
48
+ requirements:
49
+ - - ! '>='
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
69
52
  requirements: []
70
-
71
53
  rubyforge_project:
72
- rubygems_version: 1.6.2
54
+ rubygems_version: 1.8.10
73
55
  signing_key:
74
56
  specification_version: 3
75
57
  summary: Rake tasks to invoke single tests/specs with rakish syntax
76
- test_files:
58
+ test_files:
77
59
  - spec/single_test_spec.rb
78
60
  - spec/spec_helper.rb