chicken_little 0.1.0.beta1
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/.gitignore +5 -0
- data/Gemfile +4 -0
- data/LICENSE +19 -0
- data/README.markdown +38 -0
- data/Rakefile +2 -0
- data/autotest/discover.rb +1 -0
- data/bin/chicken_little +6 -0
- data/chicken_little.gemspec +25 -0
- data/lib/chicken_little/commandable_settings.rb +11 -0
- data/lib/chicken_little/exceptions.rb +21 -0
- data/lib/chicken_little/patch.rb +82 -0
- data/lib/chicken_little/version.rb +3 -0
- data/lib/chicken_little.rb +3 -0
- metadata +84 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Copyright (c) 2011 Mike Bethany
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
5
|
+
in the Software without restriction, including without limitation the rights
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
8
|
+
furnished to do so, subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
11
|
+
all copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
THE SOFTWARE.
|
data/README.markdown
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
# Chicken Little
|
2
|
+
|
3
|
+
A simple hack to disable the incredibly annoying deprecation warnings for `Gem::Specification#default_executable=` when using the `gem` command.
|
4
|
+
|
5
|
+
### Usage
|
6
|
+
|
7
|
+
**Installing:**
|
8
|
+
|
9
|
+
To install from a command line run:
|
10
|
+
|
11
|
+
$ chicken_little
|
12
|
+
|
13
|
+
If you like to being verbose you can run:
|
14
|
+
|
15
|
+
$ chicken_little install
|
16
|
+
|
17
|
+
**Uninstalling:**
|
18
|
+
When they come to their senses and realize the ridiculous deprecation warnings makes it virtually impossible to work you can uninstall Chicken Little by running:
|
19
|
+
|
20
|
+
$ chicken_little uninstall
|
21
|
+
|
22
|
+
**Checking Install Status:**
|
23
|
+
To check if it's already installed run:
|
24
|
+
|
25
|
+
$ chicken_little installed?
|
26
|
+
|
27
|
+
|
28
|
+
### What's it do?
|
29
|
+
|
30
|
+
Chicken Little hard patches the Rubygems library changing a single line of code so warning messages aren't printed for the `Gem::Specification#default_executable=` messsage.
|
31
|
+
|
32
|
+
It doesn't stop any other deprecation warnings, just the hostile, anti-user default\_executable one.
|
33
|
+
|
34
|
+
### Notes
|
35
|
+
|
36
|
+
If you're using RVM you'll need to run this for each gemset.
|
37
|
+
|
38
|
+
Also, as would be expected, you'll need to re-run Chicken Little every time you update the `gem` app.
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Autotest.add_discovery {"rspec2"}
|
data/bin/chicken_little
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "chicken_little/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "chicken_little"
|
7
|
+
s.version = ChickenLittle::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.required_ruby_version = '>= 1.9.2'
|
10
|
+
s.authors = ["Mike Bethany"]
|
11
|
+
s.email = ["mikbe.tk@gmail.com"]
|
12
|
+
s.homepage = "http://mikbe.tk"
|
13
|
+
s.summary = %q{Disables the annoying Gem::Specification#default_executable= warnings when running `gem`.}
|
14
|
+
s.description = %q{A simple hack to disable the incredibly annoying deprecation warnings for Gem::Specification#default_executable= when using the `gem` command.}
|
15
|
+
|
16
|
+
s.license = 'MIT'
|
17
|
+
|
18
|
+
s.add_dependency("bundler")
|
19
|
+
s.add_dependency("commandable")
|
20
|
+
|
21
|
+
s.files = `git ls-files`.split("\n")
|
22
|
+
s.test_files = `git ls-files -- {spec}/*`.split("\n")
|
23
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
24
|
+
s.require_paths = ["lib"]
|
25
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# Configure Commandable
|
2
|
+
require 'commandable'
|
3
|
+
Commandable.color_output = true
|
4
|
+
Commandable.verbose_parameters = false
|
5
|
+
Commandable.app_exe = "chicken_little"
|
6
|
+
Commandable.app_info =
|
7
|
+
"""
|
8
|
+
\e[92mChicken Little\e[0m - Disables the annoying deprication warnings from the gem command.
|
9
|
+
It's only been tested on OS X and Linux but I know it won't work on Windows.
|
10
|
+
Copyright (c) 2011 Mike Bethany
|
11
|
+
"""
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module ChickenLittle
|
2
|
+
|
3
|
+
class GemFileNotFound < StandardError
|
4
|
+
def initialize(msg = "I couldn't figure out where to start looking for the RubyGems install.")
|
5
|
+
super(msg)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class SpecFileNotFound < StandardError
|
10
|
+
def initialize(msg = "Could not find specification.rb file")
|
11
|
+
super(msg)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class SpecFileNotWritable < StandardError
|
16
|
+
def initialize(msg = "You do not have permission to write to the specification.rb file.\nTry running using the sudo command: sudo chiken_little [option]")
|
17
|
+
super(msg)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
module ChickenLittle
|
2
|
+
|
3
|
+
Uncommented_Line = "deprecate :default_executable"
|
4
|
+
|
5
|
+
class Patch
|
6
|
+
extend Commandable
|
7
|
+
|
8
|
+
command "Disables the annoying deprication warnings from the gem command", :default, :xor
|
9
|
+
def install
|
10
|
+
supported?
|
11
|
+
return "Chicken Little is already installed" if installed?
|
12
|
+
new_spec_file = spec_file_contents.collect { |line| line.index(Uncommented_Line) ? "##{line.strip}\n" : line}
|
13
|
+
save_spec_file(new_spec_file)
|
14
|
+
if installed?
|
15
|
+
"Chicken Little installed successfully."
|
16
|
+
else
|
17
|
+
"Install failed. No idea why."
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
command "Removes the Chicken Little patch", :xor
|
22
|
+
def uninstall
|
23
|
+
supported?
|
24
|
+
return "Chicken Little isn't installed" unless installed?
|
25
|
+
new_spec_file = spec_file_contents.collect { |line| line.index(Uncommented_Line) ? line.delete("#") : line}
|
26
|
+
save_spec_file(new_spec_file)
|
27
|
+
unless installed?
|
28
|
+
"Chicken Little uninstalled successfully."
|
29
|
+
else
|
30
|
+
"Uninstall failed. No idea why."
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
command "Checks to see if Chicken Little is already installed", :xor
|
35
|
+
def installed?
|
36
|
+
spec_file_contents.select { |line| line.strip.start_with?(Uncommented_Line) }.empty?
|
37
|
+
end
|
38
|
+
|
39
|
+
command "Lets you know if it can be installed"
|
40
|
+
def supported?
|
41
|
+
raise ChickenLittle::GemFileNotFound unless gem_file_found?
|
42
|
+
raise ChickenLittle::SpecFileNotFound unless spec_file_found?
|
43
|
+
raise ChickenLittle::SpecFileNotWritable unless spec_file_writable?
|
44
|
+
"Looks good. Chicken Little can find and modify the necessary files."
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def gem_file_path
|
50
|
+
@gem_file ||= `which gem`.chomp
|
51
|
+
@gem_file_path ||= File.symlink?(@gem_file) ? File.readlink(@gem_file) : @gem_file
|
52
|
+
end
|
53
|
+
|
54
|
+
def spec_file_path
|
55
|
+
@spec_file_path ||= File.expand_path(gem_file_path + "/../../lib/ruby/site_ruby/1.9.1/rubygems/specification.rb")
|
56
|
+
end
|
57
|
+
|
58
|
+
def spec_file_contents
|
59
|
+
File.readlines(spec_file_path)
|
60
|
+
end
|
61
|
+
|
62
|
+
def gem_file_found?
|
63
|
+
File.exist?(gem_file_path)
|
64
|
+
end
|
65
|
+
|
66
|
+
def spec_file_found?
|
67
|
+
File.exist?(spec_file_path)
|
68
|
+
end
|
69
|
+
|
70
|
+
def spec_file_writable?
|
71
|
+
File.writable?(spec_file_path)
|
72
|
+
end
|
73
|
+
|
74
|
+
def save_spec_file(spec_file_lines)
|
75
|
+
File.open(spec_file_path, "w") do |file|
|
76
|
+
spec_file_lines.each {|line| file.write(line)}
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
metadata
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: chicken_little
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0.beta1
|
5
|
+
prerelease: 6
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Mike Bethany
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-05-12 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: &2157694020 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *2157694020
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: commandable
|
27
|
+
requirement: &2157693560 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *2157693560
|
36
|
+
description: A simple hack to disable the incredibly annoying deprecation warnings
|
37
|
+
for Gem::Specification#default_executable= when using the `gem` command.
|
38
|
+
email:
|
39
|
+
- mikbe.tk@gmail.com
|
40
|
+
executables:
|
41
|
+
- chicken_little
|
42
|
+
extensions: []
|
43
|
+
extra_rdoc_files: []
|
44
|
+
files:
|
45
|
+
- .gitignore
|
46
|
+
- Gemfile
|
47
|
+
- LICENSE
|
48
|
+
- README.markdown
|
49
|
+
- Rakefile
|
50
|
+
- autotest/discover.rb
|
51
|
+
- bin/chicken_little
|
52
|
+
- chicken_little.gemspec
|
53
|
+
- lib/chicken_little.rb
|
54
|
+
- lib/chicken_little/commandable_settings.rb
|
55
|
+
- lib/chicken_little/exceptions.rb
|
56
|
+
- lib/chicken_little/patch.rb
|
57
|
+
- lib/chicken_little/version.rb
|
58
|
+
homepage: http://mikbe.tk
|
59
|
+
licenses:
|
60
|
+
- MIT
|
61
|
+
post_install_message:
|
62
|
+
rdoc_options: []
|
63
|
+
require_paths:
|
64
|
+
- lib
|
65
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 1.9.2
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>'
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 1.3.1
|
77
|
+
requirements: []
|
78
|
+
rubyforge_project:
|
79
|
+
rubygems_version: 1.8.1
|
80
|
+
signing_key:
|
81
|
+
specification_version: 3
|
82
|
+
summary: Disables the annoying Gem::Specification#default_executable= warnings when
|
83
|
+
running `gem`.
|
84
|
+
test_files: []
|