cadre 0.3.0 → 0.3.1

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: a9e2122d49a1283dd0fb1b8689e442a7aadd5295
4
- data.tar.gz: 135da7249f117d1ac890d667345174ed9d8141a8
3
+ metadata.gz: a25f0e84a0418dbdee6abf6ce0c9be69e0830a82
4
+ data.tar.gz: 4a2ff3bc4326c9041ac499ee5e37804c5a961a88
5
5
  SHA512:
6
- metadata.gz: b3850022b7425a780e6909c8424fb01eb0678afdae67d2f23d23de816c1c837a0c031b0fc61b8bc8bb3096760a6c6fa0bdba67936194b5d76c9a97f5898da2d8
7
- data.tar.gz: 6e3ef88ff40578b282457560312d48824a0d80ca82ed44aa7b9a26b28a7a15efa0494f06677c39d6c1bcaad0970fde55d7ae775a9a42364ab716fb014b8489fa
6
+ metadata.gz: 10885f2739a644f50c53f287d067eaee6433f6d13f3b450c3cbbf5b59c5155f27cdbdcba44b400c69a1cc24e074e6619e862da802c98968d05714b708a910ecb
7
+ data.tar.gz: d24ad7d72999c2859f7bf6170cc0cb89c0a51163cdaec8787295380fc8d1d96dde3bcf1ea75b5b8e9fb4debe0e905de8a387ea6896458552febc8388cfc3df1a
@@ -0,0 +1,54 @@
1
+ require 'cadre/notifier'
2
+ require 'rspec/core/formatters/base_formatter'
3
+
4
+ rspec_pid = Process.pid
5
+ at_exit do
6
+ if Process.pid == rspec_pid and not($!.nil? or $!.is_a?(SystemExit))
7
+ message = "Exception:\n#{$!.inspect}\n#{Dir.pwd}"
8
+ Cadre::Notifier.get.new do |notifier|
9
+ notifier.summary = "Spec run exited unexpectedly"
10
+ notifier.message = message
11
+ notifier.expire_time = 5000
12
+ notifier.sound = "error"
13
+ end.go
14
+ end
15
+ end
16
+
17
+ module Cadre
18
+ module RSpec3
19
+ class NotifyOnCompleteFormatter
20
+ def notify_message(duration, example_count, failure_count, pending_count)
21
+ "Total duration: #{duration}\n Total: #{example_count}\n Failed: #{failure_count}\n Pending: #{pending_count}\n\nFinished at #{Time.now}"
22
+ end
23
+
24
+ ::RSpec::Core::Formatters.register self, :dump_summary
25
+
26
+ def initialize(output)
27
+ end
28
+
29
+ def dump_summary(summary)
30
+ duration = summary.duration
31
+ example_count = summary.examples.length
32
+ failure_count = summary.failed_examples.length
33
+ pending_count = summary.pending_examples.length
34
+
35
+ notifier = Cadre::Notifier.get.new
36
+
37
+ if duration < 20
38
+ notifier.transient = true
39
+ notifier.summary = "Finished spec run"
40
+ notifier.message = notify_message(duration, example_count, failure_count, pending_count)
41
+ else
42
+ notifier.summary = "Finished long spec run"
43
+ notifier.message = notify_message(duration, example_count, failure_count, pending_count)
44
+ end
45
+ if failure_count > 0
46
+ notifier.sound = "failure"
47
+ else
48
+ notifier.sound = "success"
49
+ end
50
+ notifier.go
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,62 @@
1
+ # !!! Lifted wholesale from
2
+ # https://wincent.com/blog/running-rspec-specs-from-inside-vim
3
+ require 'rspec/core/formatters/base_text_formatter'
4
+ require 'cadre/config'
5
+
6
+ module Cadre
7
+ module RSpec3
8
+ class QuickfixFormatter
9
+
10
+ # TODO: vim-side function for printing progress (if that's even possible)
11
+ #
12
+ def initialize(output)
13
+ @config = Config.new(Valise, "quickfix")
14
+ @output = File::open(@config.output_path, "w")
15
+ end
16
+ attr_reader :output, :config
17
+
18
+ ::RSpec::Core::Formatters.register self, :example_failed, :example_pending
19
+
20
+ def example_failed(notification)
21
+ example = notification.example
22
+
23
+ exception = example.execution_result.exception
24
+ paths = exception.backtrace.map do |frame|
25
+ format_caller frame
26
+ end.compact
27
+ paths = paths[0..config.backtrace_limit]
28
+ message = "#{example.full_description}: #{format_message exception.message}"
29
+ paths.each do |path|
30
+ output.puts "#{path}: [FAIL] #{message}"
31
+ end
32
+ end
33
+
34
+ def example_pending(example)
35
+ return unless config.include_pending?
36
+ example = notification.example
37
+
38
+ message = format_message example.execution_result[:pending_message]
39
+ path = format_caller example.location
40
+ output.puts "#{path}: [PEND] #{message}" if path
41
+ end
42
+
43
+ def dump_summary(duration, example_count, failure_count, pending_count)
44
+ @duration = duration
45
+ @example_count = example_count
46
+ @failure_count = failure_count
47
+ @pending_count = pending_count
48
+ end
49
+
50
+ private
51
+
52
+ def format_caller(caller_info)
53
+ RSpec.configuration.backtrace_formatter.backtrace_line(caller_info.to_s.split(':in `block').first)
54
+ end
55
+
56
+ def format_message(msg)
57
+ # NOTE: may consider compressing all whitespace here
58
+ msg.gsub("\n", ' ')[0,40]
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,26 @@
1
+ module Cadre::RSpec3
2
+ class TrueFeelingsFormatter < RSpec::Core::Formatters::BaseFormatter
3
+ include ::RSpec::Core::Formatters::ConsoleCodes
4
+
5
+ ::RSpec::Core::Formatters.register self, :example_passed, :example_failed
6
+
7
+ def initialize(output)
8
+ super
9
+ @any_fails_yet = false
10
+ end
11
+
12
+ def example_failed(notification)
13
+ @any_fails_yet = true
14
+ end
15
+
16
+ def example_passed(example)
17
+ unless @any_fails_yet
18
+ super
19
+ else
20
+ output.print wrap("u", :failure)
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ Uuu = Cadre::RSpec3::TrueFeelingsFormatter
@@ -0,0 +1,3 @@
1
+ require 'cadre/rspec3/notify-on-complete-formatter'
2
+ require 'cadre/rspec3/quickfix-formatter'
3
+ require 'cadre/rspec3/true-feelings-formatter'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cadre
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Judson Lester
@@ -87,6 +87,10 @@ files:
87
87
  - lib/cadre/rspec/quickfix-formatter.rb
88
88
  - lib/cadre/rspec/notify-on-complete-formatter.rb
89
89
  - lib/cadre/rspec/true-feelings-formatter.rb
90
+ - lib/cadre/rspec3.rb
91
+ - lib/cadre/rspec3/quickfix-formatter.rb
92
+ - lib/cadre/rspec3/notify-on-complete-formatter.rb
93
+ - lib/cadre/rspec3/true-feelings-formatter.rb
90
94
  - lib/cadre/config.rb
91
95
  - lib/cadre/command-line.rb
92
96
  - lib/cadre/valise.rb
@@ -107,7 +111,7 @@ rdoc_options:
107
111
  - --main
108
112
  - doc/README
109
113
  - --title
110
- - cadre-0.3.0 Documentation
114
+ - cadre-0.3.1 Documentation
111
115
  require_paths:
112
116
  - lib/
113
117
  required_ruby_version: !ruby/object:Gem::Requirement