yertle_formatter 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d9adda953589b6451c5fce9e5ce135fbe4f7e7c5
4
+ data.tar.gz: 29cfe6d9574ae4f7fd7e6476bdaba2a8357b08f3
5
+ SHA512:
6
+ metadata.gz: d499e65800aa3767b0e7dae45b6d4288780bc54a0828dd725678fef6cee93cb9548590668d9732a02c815dd04e7081757efe86503bbdb960bd81934ce45c36ec
7
+ data.tar.gz: ad9422336dd78b638165bb456e9ba6b85d114281c4ceb3f0db19d5a46d152ecfcdf283dfb5f25552e3835dcb6832d65e231a9917097faef309c7d106fc8644f9
data/.gitignore ADDED
@@ -0,0 +1,23 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
23
+ .ruby-*
data/.hound.yml ADDED
@@ -0,0 +1,2 @@
1
+ ruby:
2
+ enabled: true
data/.pullreview.yml ADDED
@@ -0,0 +1,6 @@
1
+ rules:
2
+ ignore:
3
+ - missing_class_documentation
4
+ - missing_method_documentation
5
+ - prefer_single_quoted_strings
6
+ - use_a_logger
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - "2.2"
4
+ - "2.1.5"
5
+ - "2.0.0-p598"
6
+ - "1.9.3-p551"
7
+ script: bundle exec rspec spec
8
+ sudo: false
9
+ cache: bundler
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in yertle_formatter.gemspec
4
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,37 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ # Uncomment and set this to only include directories you want to watch
5
+ #
6
+ # directories %(app lib config test spec feature)
7
+
8
+ # Note: The cmd option is now required due to the increasing number of ways
9
+ # rspec may be run, below are examples of the most common uses.
10
+ # * bundler: 'bundle exec rspec'
11
+ # * bundler binstubs: 'bin/rspec'
12
+ # * spring: 'bin/rsspec' (This will use spring if running and you have
13
+ # installed the spring binstubs per the docs)
14
+ # * zeus: 'zeus rspec' (requires the server to be started separetly)
15
+ # * 'just' rspec: 'rspec'
16
+ guard :rspec, cmd: 'bundle exec rspec' do
17
+ watch(%r{^spec/.+_spec\.rb$})
18
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
19
+ watch('spec/spec_helper.rb') { "spec" }
20
+
21
+ # Rails example
22
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
23
+ watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
24
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
25
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
26
+ watch('config/routes.rb') { "spec/routing" }
27
+ watch('app/controllers/application_controller.rb') { "spec/controllers" }
28
+ watch('spec/rails_helper.rb') { "spec" }
29
+
30
+ # Capybara features specs
31
+ watch(%r{^app/views/(.+)/.*\.(erb|haml|slim)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
32
+
33
+ # Turnip features and steps
34
+ watch(%r{^spec/acceptance/(.+)\.feature$})
35
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
36
+ end
37
+
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Ed Gibbs
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,53 @@
1
+ # YertleFormatter
2
+ [![Build Status](https://travis-ci.org/edgibbs/yertle_formatter.svg?branch=master)](https://travis-ci.org/edgibbs/yertle_formatter)
3
+ [![Coverage Status](https://img.shields.io/coveralls/edgibbs/yertle_formatter.svg)](https://coveralls.io/r/edgibbs/yertle_formatter?branch=master)
4
+ [![Code Climate](https://codeclimate.com/github/edgibbs/yertle_formatter/badges/gpa.svg)](https://codeclimate.com/github/edgibbs/yertle_formatter)
5
+ [![PullReview stats](https://www.pullreview.com/github/edgibbs/yertle_formatter/badges/master.svg?)](https://www.pullreview.com/github/edgibbs/yertle_formatter/reviews/master)
6
+
7
+ ![Yertle Screen Shot](yertle_screenshot.png)
8
+
9
+ An RSpec 3 formatter for highlighting slow specs. Slow specs are marked with turtles (:turtle:) and a summary of slow specs are returned at the end of the run.
10
+
11
+ ## Usage
12
+
13
+ Basic usage is like any other RSpec formatter:
14
+
15
+ rspec --format YertleFormatter
16
+
17
+ Or to make it the default add the following to your .rspec file:
18
+
19
+ require --format YertleFormatter
20
+
21
+ It defaults to defining slow specs as slower than 0.2 seconds. You can modify this by setting an environment varaible:
22
+
23
+ YERTLE_SLOW_TIME=1.0
24
+
25
+ Or you can add the use a configurable flag for yertle_slow_time in your RSpec configuration:
26
+
27
+ ```ruby
28
+ RSpec.configure do |config|
29
+ config.yertle_slow_time = 1.0
30
+ end
31
+ ```
32
+
33
+ ## Installation
34
+
35
+ Add this line to your application's Gemfile:
36
+
37
+ gem 'yertle_formatter'
38
+
39
+ And then execute:
40
+
41
+ $ bundle
42
+
43
+ Or install it yourself as:
44
+
45
+ $ gem install yertle_formatter
46
+
47
+ ## Contributing
48
+
49
+ 1. Fork it ( https://github.com/[my-github-username]/yertle_formatter/fork )
50
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
51
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
52
+ 4. Push to the branch (`git push origin my-new-feature`)
53
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
data/lib/version.rb ADDED
@@ -0,0 +1 @@
1
+ VERSION = "0.0.1"
@@ -0,0 +1,62 @@
1
+ require "rspec/core/formatters/base_text_formatter"
2
+
3
+ class YertleFormatter < RSpec::Core::Formatters::BaseTextFormatter
4
+ RSpec::Core::Formatters.register self, :example_passed, :dump_summary
5
+
6
+ attr_reader :slow_specs
7
+
8
+ def example_passed(notification)
9
+ if slow_spec?(notification.example)
10
+ @slow_specs = true
11
+ print_turtle
12
+ else
13
+ print_dot
14
+ end
15
+ end
16
+
17
+ def dump_summary(summary_notification)
18
+ super(summary_notification)
19
+ summarize_slow_specs(summary_notification) if slow_specs
20
+ end
21
+
22
+ private
23
+
24
+ def slow_spec?(example)
25
+ example.metadata[:execution_result].run_time > threshold
26
+ end
27
+
28
+ def print_turtle
29
+ output.print "\u{1f422} "
30
+ end
31
+
32
+ def print_dot
33
+ output.print "."
34
+ end
35
+
36
+ def threshold
37
+ slow_time_environment_variable || RSpec.configuration.yertle_slow_time || 0.1
38
+ end
39
+
40
+ def slow_time_environment_variable
41
+ ENV["YERTLE_SLOW_TIME"] ? ENV["YERTLE_SLOW_TIME"].to_f : nil
42
+ end
43
+
44
+ def summarize_slow_specs(summary_notification)
45
+ output.puts "\n------"
46
+ slow_spec_examples(summary_notification).each do |example|
47
+ slow_test_description = <<-SLOW_TEST_OUTPUT
48
+ "#{example.full_description}" #{example.metadata[:execution_result].run_time} seconds
49
+ #{example.location}
50
+ SLOW_TEST_OUTPUT
51
+ output.puts slow_test_description
52
+ end
53
+ end
54
+
55
+ def slow_spec_examples(summary_notification)
56
+ summary_notification.examples.select do |example|
57
+ slow_spec?(example)
58
+ end.sort do |example_1, example_2|
59
+ example_2.metadata[:execution_result].run_time <=> example_1.metadata[:execution_result].run_time
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,12 @@
1
+ require "coveralls"
2
+
3
+ Coveralls.wear!
4
+
5
+ Dir[File.join(".", "lib", "**/*.rb")].each do |file|
6
+ require file
7
+ end
8
+
9
+ RSpec.configure do |configuration|
10
+ configuration.add_setting :yertle_slow_time
11
+ configuration.yertle_slow_time = 0.1
12
+ end
@@ -0,0 +1,161 @@
1
+ require "spec_helper"
2
+
3
+ shared_examples "a slow test" do |run_time|
4
+ it "displays a turtle emoji" do
5
+ execution_result.send(:run_time=, run_time)
6
+ formatter.example_passed(notification)
7
+ expect(output.string).to eq("\u{1f422} ")
8
+ end
9
+
10
+ it "sets slow specs flag to true" do
11
+ execution_result.send(:run_time=, run_time)
12
+ formatter.example_passed(notification)
13
+ expect(formatter.slow_specs).to be true
14
+ end
15
+ end
16
+
17
+ shared_examples "a fast test" do |run_time|
18
+ it "displays the default dot" do
19
+ execution_result.send(:run_time=, run_time)
20
+ expect(output).to receive(:print).with(".")
21
+ formatter.example_passed(notification)
22
+ end
23
+
24
+ it "leaves slow specs flag as false" do
25
+ execution_result.send(:run_time=, run_time)
26
+ formatter.example_passed(notification)
27
+ expect(formatter.slow_specs).to be_falsey
28
+ end
29
+ end
30
+
31
+ describe YertleFormatter do
32
+ let(:output) { StringIO.new }
33
+ let(:formatter) { YertleFormatter.new(output) }
34
+ let(:notification) { instance_double("RSpec::Core::Notifications::ExampleNotification") }
35
+ let(:execution_result) { RSpec::Core::Example::ExecutionResult.new }
36
+ let(:example) { RSpec::Core::Example.new(RSpec::Core::AnonymousExampleGroup, "description", {}) }
37
+
38
+ before do
39
+ RSpec.configuration.yertle_slow_time = nil
40
+ ENV.delete("YERTLE_SLOW_TIME")
41
+ end
42
+
43
+ describe "#example_passed" do
44
+ before do
45
+ allow(example).to receive(:metadata) { { execution_result: execution_result } }
46
+ allow(notification).to receive(:example) { example }
47
+ end
48
+
49
+ context "with YERTLE_SLOW_TIME configured" do
50
+ before do
51
+ ENV["YERTLE_SLOW_TIME"] = "0.4"
52
+ end
53
+
54
+ it_behaves_like "a slow test", 0.5
55
+
56
+ it_behaves_like "a fast test", 0.3
57
+ end
58
+
59
+ context "with yertle_slow_time configured" do
60
+ before do
61
+ RSpec.configuration.yertle_slow_time = 0.2
62
+ end
63
+
64
+ it_behaves_like "a slow test", 0.3
65
+
66
+ it_behaves_like "a fast test", 0.1
67
+ end
68
+
69
+ context "with YERTLE_SLOW_TIME and yertle_slow_time configured" do
70
+ before do
71
+ ENV["YERTLE_SLOW_TIME"] = "0.4"
72
+ RSpec.configuration.yertle_slow_time = 0.1
73
+ end
74
+
75
+ context "uses the environment variable setting" do
76
+ it_behaves_like "a slow test", 0.5
77
+
78
+ it_behaves_like "a fast test", 0.3
79
+ end
80
+ end
81
+
82
+ context "with no yertle_slow_time or YERTLE_SLOW_TIME configured" do
83
+ it_behaves_like "a slow test", 0.2
84
+
85
+ it_behaves_like "a fast test", 0.01
86
+ end
87
+ end
88
+
89
+ describe "#dump_summary" do
90
+ let(:fast_example) { RSpec::Core::Example.new(RSpec::Core::AnonymousExampleGroup, "Fast Test Description", {}) }
91
+ let(:fast_execution_result) { RSpec::Core::Example::ExecutionResult.new }
92
+ let(:fast_metadata) { { execution_result: fast_execution_result } }
93
+ let(:slow_example) { RSpec::Core::Example.new(RSpec::Core::AnonymousExampleGroup, "Slow Test Description", {}) }
94
+ let(:slow_execution_result) { RSpec::Core::Example::ExecutionResult.new }
95
+ let(:slow_metadata) { { execution_result: slow_execution_result } }
96
+ let(:slower_example) { RSpec::Core::Example.new(RSpec::Core::AnonymousExampleGroup, "Slower Test Description", {}) }
97
+ let(:slower_execution_result) { RSpec::Core::Example::ExecutionResult.new }
98
+ let(:slower_metadata) { { execution_result: slower_execution_result } }
99
+ let(:summary_notification) do
100
+ notification = RSpec::Core::Notifications::SummaryNotification.new
101
+ notification.examples = [fast_example, slow_example, slower_example]
102
+ notification.duration = 9
103
+ notification.load_time = 5
104
+ notification.failed_examples = []
105
+ notification.pending_examples = []
106
+ notification
107
+ end
108
+
109
+ context "with slow tests" do
110
+ let(:final_output) do
111
+ <<-FINAL_OUTPUT
112
+
113
+ Finished in 9 seconds (files took 5 seconds to load)
114
+ 3 examples, 0 failures
115
+
116
+ ------
117
+ " Slower Test Description" 0.3 seconds
118
+ ./spec/yertle_formatter_spec.rb:96
119
+ " Slow Test Description" 0.2 seconds
120
+ ./spec/yertle_formatter_spec.rb:93
121
+ FINAL_OUTPUT
122
+ end
123
+
124
+ before do
125
+ formatter.instance_variable_set(:@slow_specs, true)
126
+ allow(fast_example).to receive(:metadata) { fast_metadata }
127
+ fast_execution_result.send(:run_time=, 0.01)
128
+ allow(slow_example).to receive(:metadata) { slow_metadata }
129
+ slow_execution_result.send(:run_time=, 0.2)
130
+ allow(slower_example).to receive(:metadata) { slower_metadata }
131
+ slower_execution_result.send(:run_time=, 0.3)
132
+ end
133
+
134
+ it "displays a sorted list of the slow tests after the default summary" do
135
+ formatter.dump_summary(summary_notification)
136
+ expect(output.string).to eq(final_output)
137
+ end
138
+ end
139
+
140
+ context "with no slow tests" do
141
+ let(:final_output) do
142
+ <<-FINAL_OUTPUT
143
+
144
+ Finished in 9 seconds (files took 5 seconds to load)
145
+ 2 examples, 0 failures
146
+ FINAL_OUTPUT
147
+ end
148
+
149
+ before do
150
+ summary_notification.examples = [fast_example, fast_example]
151
+ allow(fast_example).to receive(:metadata) { fast_metadata }
152
+ fast_execution_result.send(:run_time=, 0.01)
153
+ end
154
+
155
+ it "displays just the default summary and a separator" do
156
+ formatter.dump_summary(summary_notification)
157
+ expect(output.string).to eq(final_output)
158
+ end
159
+ end
160
+ end
161
+ end
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "yertle_formatter"
8
+ spec.version = VERSION
9
+ spec.authors = ["Ed Gibbs"]
10
+ spec.email = ["edward_gibbs@yahoo.com"]
11
+ spec.summary = %q{An RSpec 3 formatter highlighting slow specs.}
12
+ spec.description = %q{Slow specs are marked with turtles and a summary of slow specs are returned at the end of the run.}
13
+ spec.homepage = "https://github.com/edgibbs/yertle_formatter"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency 'rspec', '>=3.0.0'
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.6"
24
+ spec.add_development_dependency "rake"
25
+ spec.add_development_dependency "pry"
26
+ spec.add_development_dependency "pry-nav"
27
+ spec.add_development_dependency "coveralls"
28
+ spec.add_development_dependency "guard-rspec"
29
+ end
Binary file
metadata ADDED
@@ -0,0 +1,160 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yertle_formatter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ed Gibbs
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 3.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 3.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.6'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry-nav
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: coveralls
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard-rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Slow specs are marked with turtles and a summary of slow specs are returned
112
+ at the end of the run.
113
+ email:
114
+ - edward_gibbs@yahoo.com
115
+ executables: []
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - ".gitignore"
120
+ - ".hound.yml"
121
+ - ".pullreview.yml"
122
+ - ".travis.yml"
123
+ - Gemfile
124
+ - Guardfile
125
+ - LICENSE.txt
126
+ - README.md
127
+ - Rakefile
128
+ - lib/version.rb
129
+ - lib/yertle_formatter.rb
130
+ - spec/spec_helper.rb
131
+ - spec/yertle_formatter_spec.rb
132
+ - yertle_formatter.gemspec
133
+ - yertle_screenshot.png
134
+ homepage: https://github.com/edgibbs/yertle_formatter
135
+ licenses:
136
+ - MIT
137
+ metadata: {}
138
+ post_install_message:
139
+ rdoc_options: []
140
+ require_paths:
141
+ - lib
142
+ required_ruby_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ requirements: []
153
+ rubyforge_project:
154
+ rubygems_version: 2.4.4
155
+ signing_key:
156
+ specification_version: 4
157
+ summary: An RSpec 3 formatter highlighting slow specs.
158
+ test_files:
159
+ - spec/spec_helper.rb
160
+ - spec/yertle_formatter_spec.rb