mrspec 0.1.2 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c9a8ec8e15096ad06f0d9b147e4f91091f5e5e0
4
- data.tar.gz: 61a4ea17a6e18f6d7c3b7aee9903248f3f76c930
3
+ metadata.gz: 67f780aa00ec439a3a02949504abde99cf6fcf6a
4
+ data.tar.gz: 587d8a5cdb8d00d0cf43116277bd46267a41a0c7
5
5
  SHA512:
6
- metadata.gz: e7df803969216c5e9a1c81f956d84e5ca280b929d4a90f8ae3da596884093a852734f5d8edfad384640fbbacdd8b34f469717dea82f26c4c0699dc86e5a00426
7
- data.tar.gz: cd7a2ce65de8d084b6d70536e363e24f7b3b0918565f91e5b11996197e8743d429dbed449bb489254c139e5f53e427b22aa84801dbe8757e45f752c53757c4aa
6
+ metadata.gz: ca564c0d264259457e0b35417aacd89e7382fa2e3e0ec508068634312cf87e89213a2a0aa9311eb00667bccb4f55ad1414402271a0371164e23359497787d1bd
7
+ data.tar.gz: 4bc61ec3937446e6a0bf1b2ee6a57604f831acd457b8cb85d494ea2febd61427ff59a7fb73f8214e5f679e4d65ba4326a68d53215886bf41a76dce2e4c02192f
data/.rspec CHANGED
@@ -1,5 +1,2 @@
1
1
  --colour
2
2
  --fail-fast
3
- --require error_to_communicate/at_exit
4
- --require error_to_communicate/rspec_formatter
5
- --format WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter
data/bin/mrspec CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ require 'what_weve_got_here_is_an_error_to_communicate'
4
+
3
5
  # Load our lib
4
6
  $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
5
7
  require 'mrspec'
@@ -22,12 +22,18 @@ class RSpec::Core::Parser
22
22
  # calling exit and toplevel puts, b/c that's what RSpec's does https://github.com/rspec/rspec-core/blob/c7c1154934c42b5f6905bb7bd22025fe6c8a816c/lib/rspec/core/option_parser.rb#L290
23
23
  # and I don't feel like figuring out how to work around it.
24
24
  option_parser.on('-v', '--version', 'Display the version.') do
25
- puts "mrspec #{MRspec::VERSION}\n"\
26
- "rspec-core #{RSpec::Core::Version::STRING}\n"\
27
- "minitest #{Minitest::VERSION}\n"
25
+ $stdout.puts "mrspec #{MRspec::VERSION}\n"\
26
+ "rspec-core #{RSpec::Core::Version::STRING}\n"\
27
+ "minitest #{Minitest::VERSION}\n"
28
28
  exit
29
29
  end
30
30
 
31
+ format_description = option_parser.top.short['f'].desc
32
+ first_option = format_description.find { |s| s[/\[[a-zA-Z]\]/] }
33
+ leading_whitespace = first_option[/^\s*/]
34
+ index = format_description.index first_option
35
+ format_description.insert index, "#{leading_whitespace}[w]hat (we've got here is an error to communicate)"
36
+
31
37
  option_parser
32
38
  end
33
39
 
@@ -1,5 +1,6 @@
1
- require 'mrspec/declare_minitests'
2
1
  require 'rspec/core'
2
+ require 'mrspec/declare_minitests'
3
+ require 'error_to_communicate/rspec_formatter'
3
4
 
4
5
  module MRspec
5
6
  class Configuration < RSpec::Core::Configuration
@@ -8,11 +9,21 @@ module MRspec
8
9
  disable_monkey_patching!
9
10
  filter_gems_from_backtrace 'mrspec', 'minitest'
10
11
  self.pattern = pattern.sub '*_spec.rb', '{*_spec,*_test,test_*}.rb'
12
+ self.default_formatter = WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter
11
13
  end
12
14
 
13
15
  def load_spec_files(*)
14
16
  super
15
17
  MRspec::DeclareMinitests.call(RSpec, Minitest, Minitest::Runnable.runnables)
16
18
  end
19
+
20
+ def add_formatter(*args)
21
+ if args.any? { |formatter| formatter == 'w' || formatter =~ /^what/ }
22
+ super WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter
23
+ else
24
+ super
25
+ end
26
+ end
27
+
17
28
  end
18
29
  end
@@ -1,3 +1,3 @@
1
1
  module MRspec
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
data/lib/mrspec.rb CHANGED
@@ -3,4 +3,4 @@ require 'mrspec/minitest_metadata'
3
3
  require 'mrspec/fix_backtraces_on_minitest_spec'
4
4
  require 'mrspec/runner'
5
5
  require 'mrspec/configuration'
6
- require 'mrspec/option_parser'
6
+ require 'mrspec/add_options_to_rspec_parser'
data/mrspec.gemspec CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |s|
18
18
 
19
19
  s.add_dependency "rspec-core", "~> 3.0"
20
20
  s.add_dependency "minitest", "~> 5.0"
21
+ s.add_dependency "what_weve_got_here_is_an_error_to_communicate", "~> 0.0.3"
21
22
 
22
23
  s.add_development_dependency "haiti", ">= 0.2.2", "< 0.3"
23
24
  s.add_development_dependency "cucumber", "~> 2.0"
24
- s.add_development_dependency "what_weve_got_here_is_an_error_to_communicate", "> 0"
25
25
  end
@@ -0,0 +1,39 @@
1
+ require 'support/helper'
2
+
3
+ class TestFormatterConfiguration < Minitest::Spec
4
+ def formatters_are!(*formatters, &block)
5
+ config = MRspec::Configuration.new
6
+ block.call config
7
+ assert_equal formatters, config.formatters.map(&:class)
8
+ end
9
+
10
+ it 'defaults to WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter' do
11
+ refute_equal RSpec::Core::Configuration.new.default_formatter,
12
+ WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter
13
+
14
+ assert_equal MRspec::Configuration.new.default_formatter,
15
+ WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter
16
+ end
17
+
18
+
19
+ it 'doesn\'t fuck up the normal formatter selection' do
20
+ formatters_are! RSpec::Core::Formatters::ProgressFormatter do |config|
21
+ config.add_formatter 'p'
22
+ end
23
+ end
24
+
25
+
26
+ it 'can be specified with "--format w" and "--format what<anything>"' do
27
+ formatters_are! WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter do |config|
28
+ config.add_formatter 'what'
29
+ end
30
+
31
+ formatters_are! WhatWeveGotHereIsAnErrorToCommunicate::RSpecFormatter do |config|
32
+ config.add_formatter 'whatever'
33
+ end
34
+
35
+ assert_raises ArgumentError, /\bwha\b/ do
36
+ MRspec::Configuration.new.add_formatter 'wha'
37
+ end
38
+ end
39
+ end
@@ -70,6 +70,24 @@ class TestParserMonkeyPatches < Minitest::Spec
70
70
  # Giving up on making sure these are equivalent, it's not the end of the world if they aren't
71
71
  # I'm basically at a point where I think that no one should use OptionParser
72
72
  it 'sets the correct description for the versions'
73
+
74
+ it 'includes the what_weve_got_here_is_an_error_to_communicate formatter in the help screen' do
75
+ parser = Parser.new.mrspec_parser({})
76
+ help = record_hostile_parsing parser, '--help'
77
+ formatters = help.lines
78
+ .drop_while { |l| l !~ /--format/ }
79
+ .drop(1)
80
+ .take_while { |l| l =~ /^\s*\[/ }
81
+ refute_empty formatters
82
+ indentation, initials = formatters.map { |formatter_line|
83
+ [formatter_line[/^\s*/].length,
84
+ formatter_line[/\[.\]/]
85
+ ]
86
+ }.transpose
87
+ first_indentation = indentation.first
88
+ indentation.each { |i| assert_equal first_indentation, i }
89
+ assert_equal '[w]', initials.first
90
+ end
73
91
  end
74
92
 
75
93
  it 'stores the current parser in .parser_method' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mrspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Cheek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-29 00:00:00.000000000 Z
11
+ date: 2015-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec-core
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '5.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: what_weve_got_here_is_an_error_to_communicate
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.0.3
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.0.3
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: haiti
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,20 +86,6 @@ dependencies:
72
86
  - - "~>"
73
87
  - !ruby/object:Gem::Version
74
88
  version: '2.0'
75
- - !ruby/object:Gem::Dependency
76
- name: what_weve_got_here_is_an_error_to_communicate
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">"
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">"
87
- - !ruby/object:Gem::Version
88
- version: '0'
89
89
  description: 'Allows you to run Minitest tests and specs with RSpec''s runner, thus
90
90
  you can write both Minitest and RSpec, side-by-side, and take advantage of the many
91
91
  incredibly helpful features it supports (primarily: better formatters, --colour,
@@ -106,17 +106,18 @@ files:
106
106
  - features/mrspec.feature
107
107
  - features/support/env.rb
108
108
  - lib/mrspec.rb
109
+ - lib/mrspec/add_options_to_rspec_parser.rb
109
110
  - lib/mrspec/configuration.rb
110
111
  - lib/mrspec/declare_minitests.rb
111
112
  - lib/mrspec/fix_backtraces_on_minitest_spec.rb
112
113
  - lib/mrspec/minitest_assertion_for_rspec.rb
113
114
  - lib/mrspec/minitest_metadata.rb
114
- - lib/mrspec/option_parser.rb
115
115
  - lib/mrspec/runner.rb
116
116
  - lib/mrspec/version.rb
117
117
  - mrspec.gemspec
118
118
  - test/support/helper.rb
119
119
  - test/support/mock.rb
120
+ - test/test_formatter_configuration.rb
120
121
  - test/test_mrspec.rb
121
122
  - test/test_parser_monkey_patches.rb
122
123
  homepage: https://github.com/JoshCheek/mrspec
@@ -148,6 +149,7 @@ test_files:
148
149
  - features/support/env.rb
149
150
  - test/support/helper.rb
150
151
  - test/support/mock.rb
152
+ - test/test_formatter_configuration.rb
151
153
  - test/test_mrspec.rb
152
154
  - test/test_parser_monkey_patches.rb
153
155
  has_rdoc: