yertle_formatter 0.0.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 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