respec 0.3.0 → 0.4.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.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.4.0 2012-11-11
2
+
3
+ * Fix further issues with custom formatter being overridden by respec.
4
+
1
5
  == 0.3.0 2012-11-11
2
6
 
3
7
  * Don't add progress formatter when user has selected something else.
data/lib/respec/app.rb CHANGED
@@ -16,7 +16,7 @@ module Respec
16
16
  end
17
17
 
18
18
  def command
19
- @command ||= bundler_args + ['rspec'] + formatter_args + default_formatter_args + generated_args + raw_args
19
+ @command ||= bundler_args + ['rspec'] + generated_args + raw_args + formatter_args
20
20
  end
21
21
 
22
22
  def bundler_args
@@ -27,34 +27,20 @@ module Respec
27
27
  end
28
28
  end
29
29
 
30
+ attr_reader :generated_args, :raw_args
31
+
30
32
  def formatter_args
31
33
  if @update_failures
32
- formatter_path = File.expand_path('formatter.rb', File.dirname(__FILE__))
33
- ['--require', formatter_path, '--format', 'Respec::Formatter', '--out', failures_path]
34
+ [File.expand_path('formatter.rb', File.dirname(__FILE__))]
34
35
  else
35
36
  []
36
37
  end
37
38
  end
38
39
 
39
- def default_formatter_args
40
- args = @generated_args + @raw_args + dotfile_args
41
- if args.include?('-f') || args.include?('--format') || args.include?('--formatter')
42
- []
43
- else
44
- ['--format', 'progress']
45
- end
46
- end
47
-
48
- attr_reader :generated_args, :raw_args
49
-
50
40
  class << self
51
41
  attr_accessor :failures_path
52
- attr_accessor :local_rspec_config_path
53
- attr_accessor :global_rspec_config_path
54
42
  end
55
43
  self.failures_path = ENV['RESPEC_FAILURES'] || File.expand_path(".respec_failures")
56
- self.local_rspec_config_path = '.rspec'
57
- self.global_rspec_config_path = File.expand_path('~/.rspec')
58
44
 
59
45
  def help_only?
60
46
  @help_only
@@ -133,12 +119,6 @@ module Respec
133
119
  @generated_args.concat(files) unless @selected_failures
134
120
  end
135
121
 
136
- def dotfile_args
137
- [self.class.local_rspec_config_path, self.class.global_rspec_config_path].map do |path|
138
- File.exist?(path) ? File.read(path) : ''
139
- end.join(' ').split
140
- end
141
-
142
122
  def failures_path
143
123
  self.class.failures_path
144
124
  end
@@ -9,3 +9,11 @@ module Respec
9
9
  end
10
10
  end
11
11
  end
12
+
13
+ # We inject this here rather than on the command line, as the logic to assemble
14
+ # the list of formatters is complex, and easily broken by adding a --format
15
+ # option.
16
+ RSpec.configure do |config|
17
+ config.add_formatter 'progress' if config.formatters.empty?
18
+ config.add_formatter Respec::Formatter, ENV['RESPEC_FAILURES'] || File.expand_path(".respec_failures")
19
+ end
@@ -1,5 +1,5 @@
1
1
  module Respec
2
- VERSION = [0, 3, 0]
2
+ VERSION = [0, 4, 0]
3
3
 
4
4
  class << VERSION
5
5
  include Comparable
@@ -8,8 +8,6 @@ describe Respec::App do
8
8
  FAIL_PATH = "#{TMP}/failures.txt"
9
9
 
10
10
  Respec::App.failures_path = FAIL_PATH
11
- Respec::App.local_rspec_config_path = "#{TMP}/local.rspec"
12
- Respec::App.global_rspec_config_path = "#{TMP}/global.rspec"
13
11
 
14
12
  def write_file(path, content)
15
13
  open(path, 'w') { |f| f.print content }
@@ -53,20 +51,15 @@ describe Respec::App do
53
51
  end
54
52
 
55
53
  describe "#formatter_args" do
56
- it "should include the respec formatters" do
57
- app = Respec::App.new
58
- app.formatter_args.should == ['--require', FORMATTER_PATH, '--format', 'Respec::Formatter', '--out', FAIL_PATH]
59
- end
60
-
61
54
  it "should update the stored failures if no args are given" do
62
55
  app = Respec::App.new
63
- app.formatter_args.should == ['--require', FORMATTER_PATH, '--format', 'Respec::Formatter', '--out', FAIL_PATH]
56
+ app.formatter_args.should == [FORMATTER_PATH]
64
57
  end
65
58
 
66
59
  it "should update the stored failures if 'f' is used" do
67
60
  make_failures_file 'a.rb:1'
68
61
  app = Respec::App.new('f')
69
- app.formatter_args.should == ['--require', FORMATTER_PATH, '--format', 'Respec::Formatter', '--out', FAIL_PATH]
62
+ app.formatter_args.should == [FORMATTER_PATH]
70
63
  end
71
64
 
72
65
  it "should not update the stored failures if a numeric argument is given" do
@@ -76,63 +69,6 @@ describe Respec::App do
76
69
  end
77
70
  end
78
71
 
79
- describe "#default_formatter_args" do
80
- it "should be empty if a formatter arg was given in the respec args" do
81
- app = Respec::App.new('-f', 'specdoc')
82
- app.default_formatter_args.should == []
83
-
84
- app = Respec::App.new('--format', 'specdoc')
85
- app.default_formatter_args.should == []
86
-
87
- app = Respec::App.new('--formatter', 'specdoc')
88
- app.default_formatter_args.should == []
89
- end
90
-
91
- it "should be empty if a formatter arg was given in the raw args" do
92
- app = Respec::App.new('--', '-f', 'specdoc')
93
- app.default_formatter_args.should == []
94
-
95
- app = Respec::App.new('--', '--format', 'specdoc')
96
- app.default_formatter_args.should == []
97
-
98
- app = Respec::App.new('--', '--formatter', 'specdoc')
99
- app.default_formatter_args.should == []
100
- end
101
-
102
- it "should be empty if a formatter arg is in the local .rspec" do
103
- write_file "#{TMP}/local.rspec", '-f specdoc'
104
- app = Respec::App.new
105
- app.default_formatter_args.should == []
106
-
107
- write_file "#{TMP}/local.rspec", '--format specdoc'
108
- app = Respec::App.new
109
- app.default_formatter_args.should == []
110
-
111
- write_file "#{TMP}/local.rspec", '--formatter specdoc'
112
- app = Respec::App.new
113
- app.default_formatter_args.should == []
114
- end
115
-
116
- it "should be empty if a formatter arg is in the global .rspec" do
117
- write_file "#{TMP}/global.rspec", '-f specdoc'
118
- app = Respec::App.new
119
- app.default_formatter_args.should == []
120
-
121
- write_file "#{TMP}/gloabl.rspec", '--format specdoc'
122
- app = Respec::App.new
123
- app.default_formatter_args.should == []
124
-
125
- write_file "#{TMP}/gloabl.rspec", '--formatter specdoc'
126
- app = Respec::App.new
127
- app.default_formatter_args.should == []
128
- end
129
-
130
- it "should return the args for the progress formatter otherwise" do
131
- app = Respec::App.new
132
- app.default_formatter_args.should == ['--format', 'progress']
133
- end
134
- end
135
-
136
72
  describe "#generated_args" do
137
73
  it "should treat all arguments that start with '-' to rspec" do
138
74
  app = Respec::App.new('-a', '-b', '-c')
@@ -200,7 +136,7 @@ describe Respec::App do
200
136
  Dir.chdir tmp do
201
137
  FileUtils.touch 'Gemfile'
202
138
  app = Respec::App.new('--', '-t', 'TAG')
203
- app.command.should == ['bundle', 'exec', 'rspec', '--require', FORMATTER_PATH, '--format', 'Respec::Formatter', '--out', FAIL_PATH, '--format', 'progress', '-t', 'TAG']
139
+ app.command.should == ['bundle', 'exec', 'rspec', '-t', 'TAG', FORMATTER_PATH]
204
140
  end
205
141
  end
206
142
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: respec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -98,7 +98,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
98
  version: '0'
99
99
  segments:
100
100
  - 0
101
- hash: 667712185772310074
101
+ hash: 2310279171202373770
102
102
  required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  none: false
104
104
  requirements:
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  version: '0'
108
108
  segments:
109
109
  - 0
110
- hash: 667712185772310074
110
+ hash: 2310279171202373770
111
111
  requirements: []
112
112
  rubyforge_project:
113
113
  rubygems_version: 1.8.24