rwilcox-utility_belt 1.0.7
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/History.txt +5 -0
- data/Manifest.txt +7 -0
- data/README +356 -0
- data/bin/amazon +16 -0
- data/bin/google +7 -0
- data/bin/pastie +7 -0
- data/html/andreas00.css +449 -0
- data/html/authorship.html +86 -0
- data/html/bg.gif +0 -0
- data/html/front.jpg +0 -0
- data/html/index.html +81 -0
- data/html/menubg.gif +0 -0
- data/html/menubg2.gif +0 -0
- data/html/test.jpg +0 -0
- data/html/usage.html +304 -0
- data/lib/utility_belt/amazon_upload_shortcut.rb +25 -0
- data/lib/utility_belt/clipboard.rb +52 -0
- data/lib/utility_belt/command_history.rb +110 -0
- data/lib/utility_belt/convertable_to_file.rb +34 -0
- data/lib/utility_belt/cwd_irbrc.rb +6 -0
- data/lib/utility_belt/equipper.rb +71 -0
- data/lib/utility_belt/google.rb +33 -0
- data/lib/utility_belt/hash_math.rb +13 -0
- data/lib/utility_belt/interactive_editor.rb +78 -0
- data/lib/utility_belt/irb_options.rb +3 -0
- data/lib/utility_belt/irb_verbosity_control.rb +30 -0
- data/lib/utility_belt/is_an.rb +4 -0
- data/lib/utility_belt/language_greps.rb +28 -0
- data/lib/utility_belt/not.rb +15 -0
- data/lib/utility_belt/pastie.rb +34 -0
- data/lib/utility_belt/pipe.rb +24 -0
- data/lib/utility_belt/rails_finder_shortcut.rb +18 -0
- data/lib/utility_belt/rails_verbosity_control.rb +8 -0
- data/lib/utility_belt/string_to_proc.rb +72 -0
- data/lib/utility_belt/symbol_to_proc.rb +30 -0
- data/lib/utility_belt/wirble.rb +83 -0
- data/lib/utility_belt/with.rb +21 -0
- data/lib/utility_belt.rb +22 -0
- data/spec/convertable_to_file_spec.rb +31 -0
- data/spec/equipper_spec.rb +70 -0
- data/spec/hash_math_spec.rb +17 -0
- data/spec/interactive_editor_spec.rb +146 -0
- data/spec/language_greps_spec.rb +9 -0
- data/spec/pastie_spec.rb +92 -0
- data/spec/pipe_spec.rb +30 -0
- data/spec/spec_helper.rb +8 -0
- data/spec/string_to_proc_spec.rb +41 -0
- data/spec/utility_belt_spec.rb +4 -0
- data/utility-belt.gemspec +22 -0
- metadata +147 -0
@@ -0,0 +1,146 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require File.join(File.dirname(__FILE__), "spec_helper")
|
3
|
+
|
4
|
+
require 'spec'
|
5
|
+
require 'irb'
|
6
|
+
require 'delegate'
|
7
|
+
require File.join(File.dirname(__FILE__), '..', 'lib', 'utility_belt', 'interactive_editor')
|
8
|
+
|
9
|
+
# Using SimpleDelegator allows us to replace the constants without triggering a
|
10
|
+
# "constant redefined" warning.
|
11
|
+
module StubPlatform
|
12
|
+
ARCH = SimpleDelegator.new(:x86)
|
13
|
+
OS = SimpleDelegator.new(:unix)
|
14
|
+
IMPL = SimpleDelegator.new(:linux)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Sneak a stub Platform class into InteractiveEditor so that we don't have to
|
18
|
+
# override constants on the real Platform module
|
19
|
+
#
|
20
|
+
# P.S. This ugliness is why libraries should always prefer to expose methods
|
21
|
+
# over constants.
|
22
|
+
class InteractiveEditor
|
23
|
+
Platform = StubPlatform
|
24
|
+
end
|
25
|
+
|
26
|
+
describe InteractiveEditor, "given no clues as to what editor to use" do
|
27
|
+
before :each do
|
28
|
+
ENV.delete("VISUAL")
|
29
|
+
ENV.delete("EDITOR")
|
30
|
+
Kernel.stub!(:test).and_return(false)
|
31
|
+
File.stub!(:executable?).and_return(false)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should complain" do
|
35
|
+
lambda do
|
36
|
+
InteractiveEditor.sensible_editor
|
37
|
+
end.should raise_error
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe InteractiveEditor,
|
42
|
+
"given a Mac OS X platform and no editor environment vars" do
|
43
|
+
|
44
|
+
before :each do
|
45
|
+
ENV.delete("VISUAL")
|
46
|
+
ENV.delete("EDITOR")
|
47
|
+
@old_impl = StubPlatform::IMPL.__getobj__
|
48
|
+
StubPlatform::IMPL.__setobj__(:macosx)
|
49
|
+
end
|
50
|
+
|
51
|
+
after :each do
|
52
|
+
StubPlatform::IMPL.__setobj__(@old_impl)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should use the OS X 'open' command as the default editor" do
|
56
|
+
InteractiveEditor.sensible_editor.should == "open"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# xdg-open is a facility from the freedesktop.org, available on some recent free
|
61
|
+
# desktop operating systems (like Ubuntu). It uses the desktop environments
|
62
|
+
# filetype associations to determine what program to open a file in.
|
63
|
+
describe InteractiveEditor,
|
64
|
+
"given a Linux OS and no environment vars" do
|
65
|
+
|
66
|
+
before :each do
|
67
|
+
ENV.delete("VISUAL")
|
68
|
+
ENV.delete("EDITOR")
|
69
|
+
@old_impl = StubPlatform::IMPL.__getobj__
|
70
|
+
StubPlatform::OS.__setobj__(:linux)
|
71
|
+
File.stub!(:executable?).and_return(true)
|
72
|
+
end
|
73
|
+
|
74
|
+
after :each do
|
75
|
+
StubPlatform::IMPL.__setobj__(@old_impl)
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should attempt to use 'xdg-open' command as the default editor" do
|
79
|
+
File.should_receive(:executable?).
|
80
|
+
with("/usr/bin/xdg-open").
|
81
|
+
and_return(true)
|
82
|
+
InteractiveEditor.sensible_editor.should == "/usr/bin/xdg-open"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
# /usr/bin/sensible-editor is a Debian-ism AFAIK
|
87
|
+
describe InteractiveEditor,
|
88
|
+
"given the existence of /usr/bin/sensible-editor and no xdg-open" do
|
89
|
+
it "should use /usr/bin/sensible-editor as the default editor" do
|
90
|
+
File.should_receive(:executable?).
|
91
|
+
with("/usr/bin/xdg-open").
|
92
|
+
and_return(false)
|
93
|
+
File.should_receive(:executable?).
|
94
|
+
with("/usr/bin/sensible-editor").
|
95
|
+
and_return(true)
|
96
|
+
InteractiveEditor.sensible_editor.should == "/usr/bin/sensible-editor"
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe InteractiveEditor, "given an EDITOR environment variable" do
|
101
|
+
before :each do
|
102
|
+
File.stub!(:executable?).and_return(true)
|
103
|
+
ENV["EDITOR"] = "MY_EDITOR"
|
104
|
+
end
|
105
|
+
|
106
|
+
after :each do
|
107
|
+
ENV.delete("EDITOR")
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should use the EDITOR environment variable to determine a sensible editor" do
|
111
|
+
InteractiveEditor.sensible_editor.should == "MY_EDITOR"
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
describe InteractiveEditor, "given a VISUAL environment variable" do
|
116
|
+
before :each do
|
117
|
+
File.stub!(:executable?).and_return(true)
|
118
|
+
ENV["EDITOR"] = "MY_EDITOR"
|
119
|
+
ENV["VISUAL"] = "MY_VISUAL_EDITOR"
|
120
|
+
end
|
121
|
+
|
122
|
+
after :each do
|
123
|
+
ENV.delete("EDITOR")
|
124
|
+
ENV.delete("VISUAL")
|
125
|
+
end
|
126
|
+
|
127
|
+
it "should use the environment variable to determine a sensible editor" do
|
128
|
+
InteractiveEditor.sensible_editor.should == "MY_VISUAL_EDITOR"
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
describe InteractiveEditing, "(calling out to an external editor)" do
|
133
|
+
before :each do
|
134
|
+
@it = Object.new
|
135
|
+
@it.extend(InteractiveEditing)
|
136
|
+
@editor = stub("Editor", :edit_interactively => nil)
|
137
|
+
@editor_path = stub("Editor Path")
|
138
|
+
InteractiveEditor.stub!(:sensible_editor).and_return(@editor_path)
|
139
|
+
InteractiveEditor.stub!(:new).and_return(@editor)
|
140
|
+
end
|
141
|
+
|
142
|
+
it "should use InteractiveEditor to determine default editor" do
|
143
|
+
@it.edit_interactively
|
144
|
+
IRB.conf[:interactive_editors][@editor_path].should equal(@editor)
|
145
|
+
end
|
146
|
+
end
|
data/spec/pastie_spec.rb
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "spec_helper")
|
2
|
+
require 'rubygems'
|
3
|
+
gem 'rspec'
|
4
|
+
require 'spec'
|
5
|
+
Platform = Module.new unless Object.const_defined?('Platform')
|
6
|
+
Net = Module.new unless Object.const_defined?('Net')
|
7
|
+
|
8
|
+
require File.expand_path(File.join(File.dirname(__FILE__),'..','lib/utility_belt'))
|
9
|
+
UtilityBelt.equip(:pastie)
|
10
|
+
include UtilityBelt::Pastie
|
11
|
+
Clipboard = UtilityBelt::Clipboard unless Object.const_defined?('Clipboard')
|
12
|
+
|
13
|
+
describe "pastie being called" do
|
14
|
+
|
15
|
+
before(:all) do
|
16
|
+
Net::HTTP = mock('HTTP') unless Net.const_defined?('HTTP')
|
17
|
+
URI = mock('URI') unless Object.const_defined?('URI')
|
18
|
+
Clipboard = mock('clipboard') unless Object.const_defined?('Clipboard')
|
19
|
+
end
|
20
|
+
|
21
|
+
before(:each) do
|
22
|
+
@page = mock('page')
|
23
|
+
@page.stub!(:body).and_return('href="foo"')
|
24
|
+
Net::HTTP.stub!(:post_form).and_return(@page)
|
25
|
+
URI.stub!(:parse)
|
26
|
+
Clipboard.stub!(:read)
|
27
|
+
Clipboard.stub!(:write)
|
28
|
+
Kernel.stub!(:system)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should be available in global namespace and not blow-up with default stub/mocking" do
|
32
|
+
pastie
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should uri-parse the pastie uri" do
|
36
|
+
URI.should_receive(:parse).with("http://pastie.caboo.se/pastes/create")
|
37
|
+
pastie
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should pass the uri-parsed result into the post" do
|
41
|
+
URI.should_receive(:parse).and_return('a_uri_object')
|
42
|
+
Net::HTTP.should_receive(:post_form).with('a_uri_object', anything()).and_return(@page)
|
43
|
+
pastie
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should call system open on the pastie return" do
|
47
|
+
@page.should_receive(:body).and_return('href="returned_url"')
|
48
|
+
case Platform::IMPL
|
49
|
+
when :macosx
|
50
|
+
Kernel.should_receive(:system).with("open returned_url")
|
51
|
+
when :mswin
|
52
|
+
Kernel.should_receive(:system).with("start returned_url")
|
53
|
+
end
|
54
|
+
pastie
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should write resulting url into the clipboard" do
|
58
|
+
@page.should_receive(:body).and_return('href="returned_url"')
|
59
|
+
Clipboard.should_receive(:write).with('returned_url')
|
60
|
+
pastie
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "with no parameter it uses the clipboard" do
|
64
|
+
it "should read the clipboard" do
|
65
|
+
Clipboard.should_receive(:read)
|
66
|
+
pastie
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should put the clipboard results in the post to pastie" do
|
70
|
+
Clipboard.should_receive(:read).and_return('bar')
|
71
|
+
Net::HTTP.should_receive(:post_form).with(anything(),{"paste_parser" => "ruby",
|
72
|
+
"paste[authorization]" => "burger",
|
73
|
+
"paste[body]" => 'bar'}).and_return(@page)
|
74
|
+
pastie
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe "with a parameter instead" do
|
79
|
+
#TODO: windows/linux safer now, since no clipboard functionality?
|
80
|
+
it "should not even read the clipboard" do
|
81
|
+
Clipboard.should_not_receive(:read)
|
82
|
+
pastie "baz"
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should pass in the parameter instead" do
|
86
|
+
Net::HTTP.should_receive(:post_form).with(anything(),{"paste_parser" => "ruby",
|
87
|
+
"paste[authorization]" => "burger",
|
88
|
+
"paste[body]" => 'baz'}).and_return(@page)
|
89
|
+
pastie "baz"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
data/spec/pipe_spec.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require File.join(File.dirname(__FILE__), "spec_helper")
|
3
|
+
|
4
|
+
require 'spec'
|
5
|
+
require 'irb'
|
6
|
+
require File.join(File.dirname(__FILE__), '..', 'lib', 'utility_belt', 'pipe')
|
7
|
+
|
8
|
+
describe "String#|" do
|
9
|
+
before :each do
|
10
|
+
@pipe = stub(:pipe, :write => nil, :close_write => nil, :read => nil)
|
11
|
+
IO.stub!(:popen).and_yield(@pipe).and_return("RESULT")
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should open a pipe" do
|
15
|
+
IO.should_receive(:popen).with("COMMAND", 'r+').and_return(@pipe)
|
16
|
+
"foo" | "COMMAND"
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should write itself to the the pipe, close it, then read from it" do
|
20
|
+
@pipe.should_receive(:write).with("foo").ordered
|
21
|
+
@pipe.should_receive(:close_write).ordered
|
22
|
+
@pipe.should_receive(:read)
|
23
|
+
|
24
|
+
"foo" | "COMMAND"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should return the result of the IO.popen block" do
|
28
|
+
("foo" | "COMMAND").should == "RESULT"
|
29
|
+
end
|
30
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
# Make sure Rubygems' mangling of the path is already done before we do our own
|
2
|
+
# mangling.
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
# Ensure that when we require UtilityBelt libs they are from the files under
|
6
|
+
# test, NOT from the installed gem.
|
7
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), ".."))
|
8
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "spec_helper")
|
2
|
+
require "lib/utility_belt/string_to_proc"
|
3
|
+
describe "String to Proc" do
|
4
|
+
|
5
|
+
before(:all) do
|
6
|
+
@one2five = 1..5
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should handle simple arrow notation" do
|
10
|
+
@one2five.map(&'x -> x + 1').should eql(@one2five.map { |x| x + 1 })
|
11
|
+
@one2five.map(&'x -> x*x').should eql(@one2five.map { |x| x*x })
|
12
|
+
@one2five.inject(&'x y -> x*y').should eql(@one2five.inject { |x,y| x*y })
|
13
|
+
'x y -> x**y'.to_proc()[2,3].should eql(lambda { |x,y| x**y }[2,3])
|
14
|
+
'y x -> x**y'.to_proc()[2,3].should eql(lambda { |y,x| x**y }[2,3])
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should handle chained arrows" do
|
18
|
+
'x -> y -> x**y'.to_proc()[2][3].should eql(lambda { |x| lambda { |y| x**y } }[2][3])
|
19
|
+
'x -> y z -> y**(z-x)'.to_proc()[1][2,3].should eql(lambda { |x| lambda { |y,z| y**(z-x) } }[1][2,3])
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should handle the default parameter" do
|
23
|
+
@one2five.map(&'2**_/2').should eql(@one2five.map { |x| 2**x/2 })
|
24
|
+
@one2five.select(&'_%2==0').should eql(@one2five.select { |x| x%2==0 })
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should handle point-free notation" do
|
28
|
+
@one2five.inject(&'*').should eql(@one2five.inject { |mem, var| mem * var })
|
29
|
+
@one2five.select(&'>2').should eql(@one2five.select { |x| x>2 })
|
30
|
+
@one2five.select(&'2<').should eql(@one2five.select { |x| 2<x })
|
31
|
+
@one2five.map(&'2*').should eql(@one2five.map { |x| 2*x })
|
32
|
+
(-3..3).map(&'.abs').should eql((-3..3).map { |x| x.abs })
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should handle implied parameters as best it can" do
|
36
|
+
@one2five.inject(&'x*y').should eql(@one2five.inject(&'*'))
|
37
|
+
'x**y'.to_proc()[2,3].should eql(8)
|
38
|
+
'y**x'.to_proc()[2,3].should eql(8)
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,4 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "spec_helper")
|
2
|
+
# yeah, I know. I know! but you try to write specs for code which launches vi. most of this was
|
3
|
+
# already written by the time I started tasting the BDD Kool-Aid. HOWEVER! any new patches are
|
4
|
+
# very welcome, but MUST be accompanied by a spec or an absolutely airtight reason why not.
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = "utility_belt"
|
3
|
+
s.version = "1.0.7"
|
4
|
+
s.author = "Giles Bowkett"
|
5
|
+
s.email = "gilesb@gmail.com"
|
6
|
+
s.homepage = "http://utilitybelt.rubyforge.org"
|
7
|
+
s.rubyforge_project = "utility_belt"
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.summary = "A grab-bag of IRB power user madness."
|
10
|
+
s.files = ["bin", "bin/amazon", "bin/google", "bin/pastie", "History.txt", "html", "html/andreas00.css", "html/authorship.html", "html/bg.gif", "html/front.jpg", "html/index.html", "html/menubg.gif", "html/menubg2.gif", "html/test.jpg", "html/usage.html", "lib", "lib/utility_belt", "lib/utility_belt/amazon_upload_shortcut.rb", "lib/utility_belt/clipboard.rb", "lib/utility_belt/command_history.rb", "lib/utility_belt/convertable_to_file.rb", "lib/utility_belt/equipper.rb", "lib/utility_belt/google.rb", "lib/utility_belt/hash_math.rb", "lib/utility_belt/interactive_editor.rb", "lib/utility_belt/irb_options.rb", "lib/utility_belt/irb_verbosity_control.rb", "lib/utility_belt/is_an.rb", "lib/utility_belt/language_greps.rb", "lib/utility_belt/not.rb", "lib/utility_belt/pastie.rb", "lib/utility_belt/pipe.rb", "lib/utility_belt/rails_finder_shortcut.rb", "lib/utility_belt/rails_verbosity_control.rb", "lib/utility_belt/string_to_proc.rb", "lib/utility_belt/symbol_to_proc.rb", "lib/utility_belt/wirble.rb", "lib/utility_belt/with.rb", "lib/utility_belt.rb", "lib/utility_belt/cwd_irbrc.rb", "Manifest.txt", "README", "spec", "spec/convertable_to_file_spec.rb", "spec/equipper_spec.rb", "spec/hash_math_spec.rb", "spec/interactive_editor_spec.rb", "spec/language_greps_spec.rb", "spec/pastie_spec.rb", "spec/pipe_spec.rb", "spec/spec_helper.rb", "spec/string_to_proc_spec.rb", "spec/utility_belt_spec.rb", "utility-belt.gemspec"]
|
11
|
+
%w{amazon google pastie}.each do |command_line_utility|
|
12
|
+
s.executables << command_line_utility
|
13
|
+
end
|
14
|
+
s.require_path = "lib"
|
15
|
+
s.test_file = "spec/utility_belt_spec.rb"
|
16
|
+
s.has_rdoc = true
|
17
|
+
s.extra_rdoc_files = ["README"]
|
18
|
+
s.add_dependency("activesupport")
|
19
|
+
s.add_dependency("wirble", ">= 0.1.2")
|
20
|
+
s.add_dependency("aws-s3", ">= 0.4.0")
|
21
|
+
s.add_dependency("Platform", ">= 0.4.0")
|
22
|
+
end
|
metadata
ADDED
@@ -0,0 +1,147 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rwilcox-utility_belt
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.7
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Giles Bowkett
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-05-16 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: activesupport
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: wirble
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.1.2
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: aws-s3
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.4.0
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: Platform
|
47
|
+
type: :runtime
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.4.0
|
54
|
+
version:
|
55
|
+
description:
|
56
|
+
email: gilesb@gmail.com
|
57
|
+
executables:
|
58
|
+
- amazon
|
59
|
+
- google
|
60
|
+
- pastie
|
61
|
+
extensions: []
|
62
|
+
|
63
|
+
extra_rdoc_files:
|
64
|
+
- README
|
65
|
+
files:
|
66
|
+
- bin
|
67
|
+
- bin/amazon
|
68
|
+
- bin/google
|
69
|
+
- bin/pastie
|
70
|
+
- History.txt
|
71
|
+
- html
|
72
|
+
- html/andreas00.css
|
73
|
+
- html/authorship.html
|
74
|
+
- html/bg.gif
|
75
|
+
- html/front.jpg
|
76
|
+
- html/index.html
|
77
|
+
- html/menubg.gif
|
78
|
+
- html/menubg2.gif
|
79
|
+
- html/test.jpg
|
80
|
+
- html/usage.html
|
81
|
+
- lib
|
82
|
+
- lib/utility_belt
|
83
|
+
- lib/utility_belt/amazon_upload_shortcut.rb
|
84
|
+
- lib/utility_belt/clipboard.rb
|
85
|
+
- lib/utility_belt/command_history.rb
|
86
|
+
- lib/utility_belt/convertable_to_file.rb
|
87
|
+
- lib/utility_belt/equipper.rb
|
88
|
+
- lib/utility_belt/google.rb
|
89
|
+
- lib/utility_belt/hash_math.rb
|
90
|
+
- lib/utility_belt/interactive_editor.rb
|
91
|
+
- lib/utility_belt/irb_options.rb
|
92
|
+
- lib/utility_belt/irb_verbosity_control.rb
|
93
|
+
- lib/utility_belt/is_an.rb
|
94
|
+
- lib/utility_belt/language_greps.rb
|
95
|
+
- lib/utility_belt/not.rb
|
96
|
+
- lib/utility_belt/pastie.rb
|
97
|
+
- lib/utility_belt/pipe.rb
|
98
|
+
- lib/utility_belt/rails_finder_shortcut.rb
|
99
|
+
- lib/utility_belt/rails_verbosity_control.rb
|
100
|
+
- lib/utility_belt/string_to_proc.rb
|
101
|
+
- lib/utility_belt/symbol_to_proc.rb
|
102
|
+
- lib/utility_belt/wirble.rb
|
103
|
+
- lib/utility_belt/with.rb
|
104
|
+
- lib/utility_belt.rb
|
105
|
+
- lib/utility_belt/cwd_irbrc.rb
|
106
|
+
- Manifest.txt
|
107
|
+
- README
|
108
|
+
- spec
|
109
|
+
- spec/convertable_to_file_spec.rb
|
110
|
+
- spec/equipper_spec.rb
|
111
|
+
- spec/hash_math_spec.rb
|
112
|
+
- spec/interactive_editor_spec.rb
|
113
|
+
- spec/language_greps_spec.rb
|
114
|
+
- spec/pastie_spec.rb
|
115
|
+
- spec/pipe_spec.rb
|
116
|
+
- spec/spec_helper.rb
|
117
|
+
- spec/string_to_proc_spec.rb
|
118
|
+
- spec/utility_belt_spec.rb
|
119
|
+
- utility-belt.gemspec
|
120
|
+
has_rdoc: true
|
121
|
+
homepage: http://utilitybelt.rubyforge.org
|
122
|
+
post_install_message:
|
123
|
+
rdoc_options: []
|
124
|
+
|
125
|
+
require_paths:
|
126
|
+
- lib
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: "0"
|
132
|
+
version:
|
133
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: "0"
|
138
|
+
version:
|
139
|
+
requirements: []
|
140
|
+
|
141
|
+
rubyforge_project: utility_belt
|
142
|
+
rubygems_version: 1.2.0
|
143
|
+
signing_key:
|
144
|
+
specification_version: 2
|
145
|
+
summary: A grab-bag of IRB power user madness.
|
146
|
+
test_files:
|
147
|
+
- spec/utility_belt_spec.rb
|