m 1.2.1 → 1.3.0

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.
Files changed (4) hide show
  1. data/.gitignore +1 -0
  2. data/lib/m.rb +16 -12
  3. data/test/everything_test.rb +5 -0
  4. metadata +14 -14
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ test/tmp
15
15
  test/version_tmp
16
16
  tmp
17
17
  /docs
18
+ _site
data/lib/m.rb CHANGED
@@ -15,14 +15,14 @@
15
15
  #If you're using Bundler, you'll need to include it in your Gemfile. Toss it into the `test` group:
16
16
  #
17
17
  # group :test do
18
- # gem 'm', '~> 1.2.1'
18
+ # gem 'm', '~> 1.3.0'
19
19
  # end
20
20
  #
21
21
  #Developing a RubyGem? Add `m` as a development dependency.
22
22
  #
23
23
  # Gem::Specification.new do |gem|
24
24
  # # ...
25
- # gem.add_development_dependency "m", "~> 1.2.1"
25
+ # gem.add_development_dependency "m", "~> 1.3.0"
26
26
  # end
27
27
  #
28
28
  #`m` is Ruby 1.9+ only. Sorry, but `method_source`, `sourcify`, and `ruby_parser`
@@ -98,11 +98,11 @@
98
98
  ### M, your metal test runner
99
99
  # Maybe this gem should have a longer name? Metal?
100
100
  module M
101
- VERSION = "1.2.1" unless defined?(VERSION)
101
+ VERSION = "1.3.0" unless defined?(VERSION)
102
102
 
103
- # Accept arguments coming from bin/m and run tests.
103
+ # Accept arguments coming from bin/m and run tests, then bail out immediately.
104
104
  def self.run(argv)
105
- Runner.new(argv).run
105
+ exit Runner.new(argv).run
106
106
  end
107
107
 
108
108
  ### Runner is in charge of running your tests.
@@ -188,13 +188,13 @@ module M
188
188
 
189
189
  # directly run the tests from here and exit with the status of the tests passing or failing
190
190
  if defined?(MiniTest)
191
- exit MiniTest::Unit.runner.run test_arguments
191
+ MiniTest::Unit.runner.run test_arguments
192
192
  elsif defined?(Test)
193
- exit Test::Unit::AutoRunner.run(false, nil, test_arguments)
193
+ Test::Unit::AutoRunner.run(false, nil, test_arguments)
194
194
  else
195
195
  not_supported
196
196
  end
197
- else
197
+ elsif tests.size > 0
198
198
  # Otherwise we found no tests on this line, so you need to pick one.
199
199
  message = "No tests found on line #{@line}. Valid tests to run:\n\n"
200
200
 
@@ -204,8 +204,9 @@ module M
204
204
  message << "#{sprintf("%0#{tests.column_size}s", test.name)}: m #{@file}:#{test.start_line}\n"
205
205
  end
206
206
 
207
- # fail like a good unix process should.
208
- abort message
207
+ # Spit out helpful message and bail
208
+ STDERR.puts message
209
+ false
209
210
  end
210
211
  end
211
212
 
@@ -219,7 +220,8 @@ module M
219
220
  load @file
220
221
  rescue LoadError => e
221
222
  # Fail with a happier error message instead of spitting out a backtrace from this gem
222
- abort "Failed loading test file:\n#{e.message}"
223
+ STDERR.puts "Failed loading test file:\n#{e.message}"
224
+ return []
223
225
  end
224
226
 
225
227
  # Figure out what test framework we're using
@@ -228,6 +230,7 @@ module M
228
230
  elsif defined?(Test)
229
231
  suites = Test::Unit::TestCase.test_suites
230
232
  else
233
+ suites = []
231
234
  not_supported
232
235
  end
233
236
 
@@ -259,7 +262,8 @@ module M
259
262
 
260
263
  # Fail loudly if this isn't supported
261
264
  def not_supported
262
- abort "This test framework is not supported! Please open up an issue at https://github.com/qrush/m !"
265
+ STDERR.puts "This test framework is not supported! Please open up an issue at https://github.com/qrush/m !"
266
+ false
263
267
  end
264
268
  end
265
269
  end
@@ -20,4 +20,9 @@ class EverythingTest < MTest
20
20
  output = m('examples')
21
21
  assert_output /12 tests/, output
22
22
  end
23
+
24
+ def test_blank_file_is_quieter
25
+ output = m('bananas')
26
+ assert_no_match /Valid tests to run/, output
27
+ end
23
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: m
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-31 00:00:00.000000000 Z
12
+ date: 2012-12-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: method_source
16
- requirement: &70180267027540 !ruby/object:Gem::Requirement
16
+ requirement: &70225299419800 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.6.7
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70180267027540
24
+ version_requirements: *70225299419800
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70180267027020 !ruby/object:Gem::Requirement
27
+ requirement: &70225299443320 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -35,10 +35,10 @@ dependencies:
35
35
  version: 1.0.0
36
36
  type: :runtime
37
37
  prerelease: false
38
- version_requirements: *70180267027020
38
+ version_requirements: *70225299443320
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: activesupport
41
- requirement: &70180271669780 !ruby/object:Gem::Requirement
41
+ requirement: &70225299459740 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
44
  - - ! '>='
@@ -46,10 +46,10 @@ dependencies:
46
46
  version: '0'
47
47
  type: :development
48
48
  prerelease: false
49
- version_requirements: *70180271669780
49
+ version_requirements: *70225299459740
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: rdiscount
52
- requirement: &70180271667380 !ruby/object:Gem::Requirement
52
+ requirement: &70225299469180 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - ! '>='
@@ -57,10 +57,10 @@ dependencies:
57
57
  version: '0'
58
58
  type: :development
59
59
  prerelease: false
60
- version_requirements: *70180271667380
60
+ version_requirements: *70225299469180
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rocco
63
- requirement: &70180271663080 !ruby/object:Gem::Requirement
63
+ requirement: &70225299478220 !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements:
66
66
  - - ! '>='
@@ -68,10 +68,10 @@ dependencies:
68
68
  version: '0'
69
69
  type: :development
70
70
  prerelease: false
71
- version_requirements: *70180271663080
71
+ version_requirements: *70225299478220
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: minitest
74
- requirement: &70180273292300 !ruby/object:Gem::Requirement
74
+ requirement: &70225299488700 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
77
  - - ! '>='
@@ -79,7 +79,7 @@ dependencies:
79
79
  version: '0'
80
80
  type: :development
81
81
  prerelease: false
82
- version_requirements: *70180273292300
82
+ version_requirements: *70225299488700
83
83
  description:
84
84
  email:
85
85
  - nick@quaran.to