foghorn-leghorn 1.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: de1186a335dcfb4017337328adf2798939f3835f
4
+ data.tar.gz: 42acf04bf0245a314c2c3c36977f845af4f4ec96
5
+ SHA512:
6
+ metadata.gz: a44a876f50bf1b5aca6e47ca5415791e2770b593f8e97ec908f855815c2fc1b35ad58d4ea02c227f37160aab08493e0b46c0e2485f28af40272c9d8b864797c8
7
+ data.tar.gz: 082e36910b1fd4f9a055304ab868af5f81b3c8c902989936aace14f834b20b683048592d70308f7a5e5b4cc9a1f27fd2ef5e55bdf0ea1b46fe6984813e48129b
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in foghorn.gemspec
4
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,9 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard :minitest do
5
+ # with Minitest::Unit
6
+ watch(%r{^test/(.*)\/?test_(.*)\.rb$})
7
+ watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
8
+ watch(%r{^test/test_helper\.rb$}) { 'test' }
9
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 RickR
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,27 @@
1
+ # Foghorn
2
+
3
+ Add more Foghorn Leghorn to your ruby.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'foghorn'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install foghorn
20
+
21
+ ## Contributing
22
+
23
+ 1. Fork it ( https://github.com/rickr/foghorn/fork )
24
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
25
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
26
+ 4. Push to the branch (`git push origin my-new-feature`)
27
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << 'lib/foghorn'
6
+ t.test_files = FileList['test/*_test.rb']
7
+ t.verbose = true
8
+ end
9
+
10
+ task :default => :test
11
+
Binary file
@@ -0,0 +1,24 @@
1
+ require 'foghorn'
2
+ include Foghorn::Exceptions
3
+
4
+ ###
5
+ ### Exceptions currently overrides StdError so anything
6
+ ### That inherits should give us a motivation quote from
7
+ ### Mr. Leghorn
8
+
9
+ begin
10
+ raise
11
+ rescue => e
12
+ puts e
13
+ end
14
+ puts "\n\n"
15
+
16
+ begin
17
+ raise NoMethodError, 'Custom messages are passed on a newline'
18
+ rescue => e
19
+ puts e
20
+ end
21
+ puts "\n\n"
22
+
23
+ # And this is what a stack strace would look like
24
+ 42 / 0
@@ -0,0 +1,16 @@
1
+ require 'foghorn'
2
+ include Foghorn::Methods
3
+
4
+ ### Foghorn up some puts statements
5
+ Boy.I.say "boy what's wrong with you"
6
+
7
+ ### The I class is recursive so we can repeat ourselves
8
+ I.say.I.say.I.say 'ruby is awesome'
9
+ Boy.I.say.boy "what's with you and chunky bacon"
10
+
11
+ ### go_away allows us to exit
12
+ Boy.I.say.go_away 1
13
+
14
+
15
+
16
+
@@ -0,0 +1,12 @@
1
+ require 'foghorn'
2
+ require 'minitest'
3
+ require 'minitest/autorun'
4
+ include Foghorn::Minitest
5
+
6
+ class FoghornExample < Minitest::Test
7
+ def test_pass_examples
8
+ # This is just a wrapper around assert_equal/refute_equal
9
+ i_do_declare 1, :to_be, 1
10
+ i_do_declare 1, :to_not_be, 2
11
+ end
12
+ end
data/foghorn.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'foghorn/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'foghorn-leghorn'
8
+ spec.version = Foghorn::VERSION
9
+ spec.authors = ['RickR']
10
+ spec.email = ['rick@rudelinux.org']
11
+ spec.summary = %q{Foghorn Leghorn Expections}
12
+ spec.homepage = ""
13
+ spec.license = 'MIT'
14
+
15
+ spec.files = `git ls-files -z`.split("\x0")
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ['lib']
19
+
20
+ spec.add_development_dependency 'bundler', '~> 1.7'
21
+ spec.add_development_dependency 'rake', '~> 10.0'
22
+ spec.add_development_dependency 'minitest', '~> 5.7'
23
+ spec.add_development_dependency 'guard-minitest', '~> 2.4'
24
+ spec.add_development_dependency 'guard', '~> 2.12'
25
+ end
data/lib/foghorn.rb ADDED
@@ -0,0 +1,4 @@
1
+ require 'foghorn/version'
2
+ require 'foghorn/methods'
3
+ require 'foghorn/minitest'
4
+ require 'foghorn/exceptions'
@@ -0,0 +1,9 @@
1
+ module Foghorn::Exceptions
2
+ def self.included(base)
3
+ require_relative 'exceptions/base'
4
+ require_relative 'exceptions/standard_error'
5
+
6
+ ::StandardError.include(Foghorn::Exceptions::StandardError)
7
+ end
8
+ end
9
+
@@ -0,0 +1,10 @@
1
+ class Foghorn::Exceptions::Base
2
+ def self.phrases
3
+ phrase_path = File.join(File.dirname(__FILE__), '..', 'inc', 'phrases.txt')
4
+ File.readlines(phrase_path).map(&:rstrip)
5
+ end
6
+
7
+ def self.phrase
8
+ self.phrases.sample
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ module Foghorn::Exceptions::StandardError
2
+ class ::StandardError
3
+ def to_s(*args)
4
+ foghorn_exception = "#{Foghorn::Exceptions::Base.phrase}"
5
+
6
+ # Don't print an empty message
7
+ if(!super.empty? && super != self.class.to_s)
8
+ foghorn_exception << "\n#{super}"
9
+ end
10
+ foghorn_exception
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,61 @@
1
+ Love that dog...love that dog
2
+ What's it all about boy, elucidate!
3
+ That's a joke, I say that's a joke son
4
+ Go, I say go away boy, you bother me
5
+ His muscles are as soggy as a used tea bag
6
+ I made a funny son and you're not laughin'
7
+ That boy's about as sharp as a bowling ball
8
+ I keep pitchin' ‘em and you keep missin' ‘em
9
+ That boy's as timid as a canary at a cat show
10
+ Fortunately I always keep a spare in my locker
11
+ That woman's as cold as a nudist on an iceberg
12
+ Nice mannered kid, just a little on the dumb side
13
+ That kid's about as sharp as a pound of wet liver
14
+ You're way off, I say you're way off this time son!
15
+ Nice girl, but about as sharp as a sack of wet mice
16
+ Nice boy but he's got more nerve than a bum tooth
17
+ I say, boy, pay attention when I'm talkin' to ya, boy
18
+ Pay attention, boy, I'm cuttin' but you ain't bleedin'!
19
+ Smart boy, got a mind like a steel trap – full of mice
20
+ He's so dumb he thinks a Mexican border pays rent
21
+ Hmmm, bare, I say bare as a cooch dancers midriff
22
+ Oh, that woman, got a mouth like an outboard motor
23
+ That dog's like taxes, he just don't know when to stop
24
+ That boy's as strong as an ox, and just about as smart
25
+ Now I wonder what ol' busy body widow hen is up to
26
+ Boy's gotta mouth like a cannon, always shootin' it off
27
+ This boy's more mixed up than a feather in a whirlwind
28
+ That dog, I say that dog's strictly GI – gibberin idiot that is
29
+ Don't, I say don't bother me dog, can't ya see I'm thinkin'
30
+ For-I say fortunately I always carry a spare set of feathers
31
+ That, I say that boy's just like a tatoo, gets under your skin
32
+ Kid don't quit talkin' so much he'll get his tongue sunburned
33
+ That dog, I say that dog is lower than a snake full of buckshot
34
+ That dog's as subtle as a hand grenade in a barrrel of oat meal
35
+ Boy, you cover about as much as a flapper's skirt in a high wind
36
+ Pay attention to me boy! I'm not just talkin' to hear my head roar
37
+ That's the trouble with that fool dog, always shootin' his mouth off
38
+ That's what I've been – I say, that's what I've been telling you, boy!
39
+ Now what, I say now what's that skinny old hen doin' up on the barn
40
+ That, I say that dog's busier than a centipede at a toe countin' contest
41
+ Now cut that out boy, or I'll spank you where the feathers are thinnest
42
+ Look sister is any of this filterin' through that little blue bonnet of yours
43
+ I got, I say I got this boy as fidgety as a bubble dancer with a slow leak
44
+ Stop, I say stop it boy, you're doin' alot of choppin' but no chips are flyin'
45
+ This is going to cause more confusion than a mouse in a burlesque show
46
+ You know there might, I say there just might be a market for bottled duck
47
+ What's, I say what's the big idea wrappin' a lariat around my adams apple
48
+ Fortunately I keep my feathers numbered, for, for just such an emergency
49
+ What in the, I say what in the name of Jesse James do you suppose that is
50
+ Gal reminds me of a highway between Forth Worth and Dallas – no curves
51
+ Now what, I say what's the big idea bashin' me in the bazooka that-a-way boy!
52
+ She remi – I say, she reminds me of Paul Revere's ride, a little light in the belfry
53
+ Now what, I say what's the big idea bashin' me on the noggin' with a rollin' pin!
54
+ Now who's, I say who's responsible for this unwarranted attack on my person!
55
+ This boy's making more noise than a couple of skeletons throwin' a fit on a tin roof
56
+ The snow, I say the snow's so deep the farmers have to jack up the cows so they can milk'em
57
+ What a day for trampin' through the woods...lump dum do di do do doh, doo dah, doo dah
58
+ Now that, I say that's no way for a kid to be wastin' his time, readin' that long-haired gobbledegook
59
+ It's sure, I say it's sure quiet around here, you could hear a caterpillar sneakin' across a moss bed in tennis shoes
60
+ As senior rooster 'round here, it's my duty, and my pleasure, to instruct junior roosters in the ancient art of roostery
61
+ Hey boy, what's the idea jackin' that pot up under me? Jack? Pot? Ahuh, huh...jack pot, that's a joke son, don't ya get it?
@@ -0,0 +1,39 @@
1
+ module Foghorn::Methods
2
+ # http://foghornleghornquotes.com/foghorn-leghorn-sayings/
3
+
4
+ class I
5
+ # These class methods (and aliases) allow us to
6
+ # repeat ourselves repeat ourselves without using
7
+ # method missing
8
+ def self.i
9
+ Foghorn::Methods::I
10
+ end
11
+ self.singleton_class.send(:alias_method, :I, :i) # This is kind of scary...
12
+
13
+ def self.boy
14
+ Foghorn::Methods::I
15
+ end
16
+ self.singleton_class.send(:alias_method, :Boy, :boy)
17
+
18
+ ###
19
+ ### If we get a string puts it, otherwise return our I class so
20
+ ### we can recurse
21
+ def self.say(string_or_class = nil)
22
+ if string_or_class
23
+ puts string_or_class
24
+ else
25
+ Foghorn::Methods::I
26
+ end
27
+ end
28
+ self.singleton_class.send(:alias_method, :boy, :say)
29
+
30
+ def self.go_away(exit_code = 0)
31
+ exit exit_code
32
+ end
33
+ end
34
+
35
+
36
+ # Allow us to preface our calls with these classes eg Boy.I.say
37
+ class Boy < I; end
38
+ class Go < I; end
39
+ end
@@ -0,0 +1,6 @@
1
+ module Foghorn::Minitest
2
+ def self.included(base)
3
+ require 'minitest/assertions'
4
+ require_relative 'minitest/assertions'
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ module Minitest::Assertions
2
+ def i_do_declare(act, operator, exp)
3
+ if operator.to_sym == :to_be
4
+ assert_equal(exp, act) if operator == :to_be
5
+ elsif operator.to_sym == :to_not_be
6
+ refute_equal(exp, act) if operator == :to_not_be
7
+ else
8
+ fail 'Operator not in :to_be or :to_not_be'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module Foghorn
2
+ VERSION = '1.0.1'
3
+ end
@@ -0,0 +1,57 @@
1
+ require_relative 'test_helper'
2
+ include Foghorn::Exceptions
3
+
4
+ class ExceptionsTests < Minitest::Test
5
+ def setup
6
+ @phrases = Foghorn::Exceptions::Base.phrases
7
+ end
8
+
9
+ def test_phrase_provided
10
+ assert_includes(@phrases, Foghorn::Exceptions::Base.phrase)
11
+ end
12
+
13
+ ###
14
+ ### phrases are returned ending with \n
15
+ def test_exception_message_includes_phrase
16
+ exception = assert_raises do
17
+ 1 / 0
18
+ end
19
+ phrase = exception.to_s.split("\n").first
20
+ assert_includes(@phrases, phrase)
21
+ end
22
+
23
+ def test_existing_messages_remain
24
+ exception = assert_raises do
25
+ [1, 2, 3].first(4, 5)
26
+ end
27
+ arg_error = exception.to_s.split("\n").last
28
+ assert_equal('wrong number of arguments (2 for 1)', arg_error)
29
+ end
30
+
31
+ def test_custom_message_is_used
32
+ exception = assert_raises do
33
+ raise TypeError, 'this is a custom message'
34
+ end
35
+ custom_message = exception.to_s.split("\n").last
36
+ assert_equal 'this is a custom message', custom_message
37
+ end
38
+
39
+ def test_message_equals_to_s
40
+ exception = assert_raises do
41
+ 1 / 0
42
+ end
43
+ assert_equal exception.to_s.split("\n")[1..-1], exception.message.split("\n")[1..-1]
44
+ end
45
+
46
+ def test_no_second_line_if_no_message
47
+ exception = assert_raises do
48
+ raise NameError
49
+ end
50
+ assert_equal 1, exception.message.lines.count
51
+
52
+ exception = assert_raises do
53
+ raise IOError, 'With a message'
54
+ end
55
+ assert_equal 2, exception.message.lines.count
56
+ end
57
+ end
@@ -0,0 +1,41 @@
1
+ require_relative 'test_helper'
2
+ include Foghorn::Methods
3
+
4
+ class MethodsTests < Minitest::Test
5
+ def test_i_say_puts_a_string
6
+ assert_respond_to I, :say
7
+ assert_output("test\n"){I.say('test')}
8
+
9
+ assert_output("test\n"){Boy.I.say('test')}
10
+ assert_output("test\n"){Boy.i.say('test')}
11
+ end
12
+
13
+ def test_i_say_recursive
14
+ test_string = "test string!\n"
15
+ assert_output(test_string){ I.say.i.say test_string }
16
+ assert_output(test_string){ I.say.i.say.i.say test_string }
17
+ assert_output(test_string){ Boy.I.say.boy test_string }
18
+
19
+ # We can call the I method in the I class as well
20
+ assert_output(test_string){ I.say.I.say test_string }
21
+ assert_output(test_string){ I.say.I.say.I.say test_string }
22
+
23
+ # Chaining I's
24
+ assert_output(test_string){ I.I.I.say test_string }
25
+
26
+ # Chaining Boy's
27
+ assert_output(test_string){ Boy.I.say.Boy.i.say test_string }
28
+ assert_output(test_string){ Boy.I.say.Boy.i.say.boy.i.say test_string }
29
+ end
30
+
31
+ def test_go_away
32
+ ret = assert_raises(SystemExit){I.say.go_away 0}
33
+ assert_equal 0, ret.status
34
+
35
+ ret = assert_raises(SystemExit){I.say.go_away 1}
36
+ assert_equal 1, ret.status
37
+
38
+ ret = assert_raises(SystemExit){Boy.I.say.go_away 1}
39
+ assert_equal 1, ret.status
40
+ end
41
+ end
@@ -0,0 +1,18 @@
1
+ require_relative 'test_helper'
2
+ include Foghorn::Minitest
3
+
4
+ class MinitestTests < Minitest::Test
5
+ def test_i_do_declare
6
+ test_var = 'string'
7
+
8
+ assert(i_do_declare true, :to_be, true)
9
+ assert(i_do_declare 1, :to_be, 1)
10
+ assert(i_do_declare test_var, :to_be, 'string')
11
+
12
+ refute(i_do_declare false, :to_not_be, true)
13
+ refute(i_do_declare 1, :to_not_be, 2)
14
+ refute(i_do_declare test_var, :to_not_be, 'not_string')
15
+
16
+ assert_raises{i_do_declare false, :invalid, true}
17
+ end
18
+ end
@@ -0,0 +1,4 @@
1
+ require 'minitest'
2
+ require 'minitest/autorun'
3
+ require File.expand_path('../../lib/foghorn.rb', __FILE__)
4
+ include Foghorn::Methods
@@ -0,0 +1,7 @@
1
+ require_relative 'test_helper'
2
+
3
+ class VersionTests < Minitest::Test
4
+ def test_version_is_defined
5
+ assert Foghorn::VERSION, 'No version'
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: foghorn-leghorn
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - RickR
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-07-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.7'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: guard-minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.4'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.4'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.12'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.12'
83
+ description:
84
+ email:
85
+ - rick@rudelinux.org
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - ".gitignore"
91
+ - Gemfile
92
+ - Guardfile
93
+ - LICENSE.txt
94
+ - README.md
95
+ - Rakefile
96
+ - docs/Foghorn_Leghorn.png
97
+ - examples/foghorn_exceptions.rb
98
+ - examples/foghorn_methods.rb
99
+ - examples/foghorn_minitest.rb
100
+ - foghorn.gemspec
101
+ - lib/foghorn.rb
102
+ - lib/foghorn/exceptions.rb
103
+ - lib/foghorn/exceptions/base.rb
104
+ - lib/foghorn/exceptions/standard_error.rb
105
+ - lib/foghorn/inc/phrases.txt
106
+ - lib/foghorn/methods.rb
107
+ - lib/foghorn/minitest.rb
108
+ - lib/foghorn/minitest/assertions.rb
109
+ - lib/foghorn/version.rb
110
+ - test/exceptions_test.rb
111
+ - test/methods_test.rb
112
+ - test/minitest_test.rb
113
+ - test/test_helper.rb
114
+ - test/version_test.rb
115
+ homepage: ''
116
+ licenses:
117
+ - MIT
118
+ metadata: {}
119
+ post_install_message:
120
+ rdoc_options: []
121
+ require_paths:
122
+ - lib
123
+ required_ruby_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ requirements: []
134
+ rubyforge_project:
135
+ rubygems_version: 2.4.5
136
+ signing_key:
137
+ specification_version: 4
138
+ summary: Foghorn Leghorn Expections
139
+ test_files:
140
+ - test/exceptions_test.rb
141
+ - test/methods_test.rb
142
+ - test/minitest_test.rb
143
+ - test/test_helper.rb
144
+ - test/version_test.rb
145
+ has_rdoc: