alias 0.2.0
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/CHANGELOG.rdoc +16 -0
- data/LICENSE.txt +22 -0
- data/README.rdoc +88 -0
- data/Rakefile +50 -0
- data/VERSION.yml +4 -0
- data/lib/alias.rb +85 -0
- data/lib/alias/console.rb +20 -0
- data/lib/alias/creator.rb +112 -0
- data/lib/alias/creators/any_to_instance_method_creator.rb +22 -0
- data/lib/alias/creators/class_method_creator.rb +19 -0
- data/lib/alias/creators/class_to_instance_method_creator.rb +25 -0
- data/lib/alias/creators/constant_creator.rb +11 -0
- data/lib/alias/creators/instance_method_creator.rb +19 -0
- data/lib/alias/manager.rb +140 -0
- data/lib/alias/util.rb +86 -0
- data/lib/alias/validator.rb +94 -0
- data/test/alias_test.rb +63 -0
- data/test/aliases.yml +15 -0
- data/test/any_to_instance_method_creator_test.rb +39 -0
- data/test/class_method_creator_test.rb +42 -0
- data/test/class_to_instance_method_creator_test.rb +48 -0
- data/test/console_test.rb +60 -0
- data/test/constant_creator_test.rb +38 -0
- data/test/creator_test.rb +29 -0
- data/test/instance_method_creator_test.rb +41 -0
- data/test/manager_test.rb +105 -0
- data/test/test_helper.rb +31 -0
- data/test/util_test.rb +42 -0
- data/test/validator_test.rb +72 -0
- metadata +95 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper.rb')
|
2
|
+
|
3
|
+
class Alias::Creators::AnyToInstanceMethodCreatorTest < Test::Unit::TestCase
|
4
|
+
context "AnyToInstanceMethodCreator" do
|
5
|
+
before(:each) { @manager = Alias::Manager.new }
|
6
|
+
|
7
|
+
def expect_aliases(hash)
|
8
|
+
arr = Alias::Creators::AnyToInstanceMethodCreator.maps_config(hash)
|
9
|
+
Alias::Creators::AnyToInstanceMethodCreator.expects(:generates_aliases).with(arr).returns('')
|
10
|
+
end
|
11
|
+
|
12
|
+
def create_aliases(hash)
|
13
|
+
@manager.create_aliases(:any_to_instance_method, hash)
|
14
|
+
end
|
15
|
+
|
16
|
+
test "deletes invalid classes" do
|
17
|
+
expect_aliases 'String'=>{'String.to_s'=>'s'}
|
18
|
+
create_aliases 'String'=>{'String.to_s'=>'s'}, 'AnotherString'=>{'String.to_s'=>'s'}
|
19
|
+
end
|
20
|
+
|
21
|
+
test "deletes existing method aliases" do
|
22
|
+
expect_aliases 'String'=>{'Date.commercial'=>'s'}
|
23
|
+
create_aliases 'String'=>{'Date.civil'=>'strip', 'Date.commercial'=>'s'}
|
24
|
+
end
|
25
|
+
|
26
|
+
test "creates aliases" do
|
27
|
+
Kernel.eval %[
|
28
|
+
class ::SomeClass
|
29
|
+
def self.cap; 'itup'; end
|
30
|
+
end
|
31
|
+
module ::SomeModule; end
|
32
|
+
]
|
33
|
+
create_aliases 'SomeModule'=>{'SomeClass.cap.to_sym'=>'c', 'SomeClass.cap.gsub'=>'gsub'}
|
34
|
+
obj = Object.new.extend SomeModule
|
35
|
+
SomeClass.cap.to_sym.should == obj.c
|
36
|
+
SomeClass.cap.gsub('cap','smack') == obj.gsub('cap','smack')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper.rb')
|
2
|
+
|
3
|
+
class Alias::Creators::ClassMethodCreatorTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
context "ClassMethodCreator" do
|
6
|
+
before(:each) { @manager = Alias::Manager.new }
|
7
|
+
def expect_aliases(hash)
|
8
|
+
arr = Alias::Creators::ClassMethodCreator.maps_config(hash)
|
9
|
+
Alias::Creators::ClassMethodCreator.expects(:generates_aliases).with(arr).returns('')
|
10
|
+
end
|
11
|
+
|
12
|
+
def create_aliases(hash)
|
13
|
+
@manager.create_aliases(:class_method, hash)
|
14
|
+
end
|
15
|
+
|
16
|
+
test "deletes invalid class method keys" do
|
17
|
+
expect_aliases "Array"=>{}, "String"=>{'yaml_new'=>'yn'}
|
18
|
+
create_aliases 'String'=>{'yaml_new'=>'yn'},'Array'=>{'blah'=>'bl'}
|
19
|
+
end
|
20
|
+
|
21
|
+
test "deletes invalid classes" do
|
22
|
+
expect_aliases "String"=>{'yaml_new'=>'yn'}
|
23
|
+
create_aliases 'String'=>{'yaml_new'=>'yn'},'Blah'=>{'new'=>'n'}
|
24
|
+
end
|
25
|
+
|
26
|
+
test "deletes existing class method aliases" do
|
27
|
+
expect_aliases 'Date'=>{'valid_time?'=>'vt'}
|
28
|
+
create_aliases 'Date'=>{'civil_to_jd'=>'civil', 'valid_time?'=>'vt'}
|
29
|
+
end
|
30
|
+
|
31
|
+
test "creates class method aliases" do
|
32
|
+
Kernel.eval %[
|
33
|
+
class ::SampleClass
|
34
|
+
def self.cap; 'itup'; end
|
35
|
+
end
|
36
|
+
]
|
37
|
+
hash1 = {'SampleClass'=>{:cap=>:capohow}, 'Array'=>{:blah=>:bl}}
|
38
|
+
@manager.create_aliases(:class_method, hash1)
|
39
|
+
SampleClass.capohow.should == SampleClass.cap
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper.rb')
|
2
|
+
|
3
|
+
class Alias::Creators::ClassToInstanceMethodCreatorTest < Test::Unit::TestCase
|
4
|
+
context "ClassToInstanceMethodCreator" do
|
5
|
+
before(:each) { @manager = Alias::Manager.new }
|
6
|
+
|
7
|
+
def expect_aliases(hash)
|
8
|
+
arr = Alias::Creators::ClassToInstanceMethodCreator.maps_config(hash)
|
9
|
+
Alias::Creators::ClassToInstanceMethodCreator.expects(:generates_aliases).with(arr).returns('')
|
10
|
+
end
|
11
|
+
|
12
|
+
def create_aliases(hash)
|
13
|
+
@manager.create_aliases(:class_to_instance_method, hash)
|
14
|
+
end
|
15
|
+
|
16
|
+
test "deletes invalid to classes" do
|
17
|
+
expect_aliases 'String'=>{'String.to_s'=>'s'}
|
18
|
+
create_aliases 'String'=>{'AnotherString.name'=>'n', 'String.to_s'=>'s'}
|
19
|
+
end
|
20
|
+
|
21
|
+
test "deletes invalid classes" do
|
22
|
+
expect_aliases 'String'=>{'String.to_s'=>'s'}
|
23
|
+
create_aliases 'String'=>{'String.to_s'=>'s'}, 'AnotherString'=>{'String.to_s'=>'s'}
|
24
|
+
end
|
25
|
+
|
26
|
+
test "deletes existing method aliases" do
|
27
|
+
expect_aliases 'String'=>{'Date.commercial'=>'s'}
|
28
|
+
create_aliases 'String'=>{'Date.civil'=>'strip', 'Date.commercial'=>'s'}
|
29
|
+
end
|
30
|
+
|
31
|
+
test "deletes invalid to methods" do
|
32
|
+
expect_aliases 'String'=>{'Date.civil'=>'c'}
|
33
|
+
create_aliases 'String'=>{'Date.civil'=>'c', 'Date.uncivil'=>'uc'}
|
34
|
+
end
|
35
|
+
|
36
|
+
test "creates aliases" do
|
37
|
+
Kernel.eval %[
|
38
|
+
class ::SampleClass
|
39
|
+
def self.cap; 'itup'; end
|
40
|
+
end
|
41
|
+
module ::SampleModule; end
|
42
|
+
]
|
43
|
+
create_aliases 'SampleModule'=>{'SampleClass.cap'=>'c', 'Sampleclass.dap'=>'d'}
|
44
|
+
obj = Object.new.extend SampleModule
|
45
|
+
SampleClass.cap.should == obj.c
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper.rb')
|
2
|
+
|
3
|
+
class Alias::ConsoleTest < Test::Unit::TestCase
|
4
|
+
before(:all) { @console = Object.new.extend(Alias::Console) }
|
5
|
+
|
6
|
+
test "create_aliases doesn't save failed alias creation" do
|
7
|
+
capture_stderr { @console.create_aliases :blah, {} }
|
8
|
+
Alias.manager.instance_eval("@created_aliases").should == {}
|
9
|
+
end
|
10
|
+
|
11
|
+
test "create_aliases takes partial creator names" do
|
12
|
+
Alias.manager.expects(:create_aliases).with(:instance_method, {}, anything)
|
13
|
+
@console.create_aliases(:in, {})
|
14
|
+
end
|
15
|
+
|
16
|
+
test "search_aliases lists aliases if given nothing" do
|
17
|
+
Alias.manager.expects(:all_aliases)
|
18
|
+
@console.search_aliases
|
19
|
+
end
|
20
|
+
|
21
|
+
context "save_aliases" do
|
22
|
+
before(:all) { eval "module ::Bluh; def blah; end; end" }
|
23
|
+
before(:each) { Alias.manager.instance_eval("@created_aliases = nil") }
|
24
|
+
|
25
|
+
test "saves created aliases" do
|
26
|
+
hash = {"Bluh"=>{"blah"=>"bl"}}
|
27
|
+
@console.create_aliases :instance_method, hash
|
28
|
+
File.expects(:exists?).returns(false)
|
29
|
+
Alias.expects(:save_to_file).with("#{ENV['HOME']}/.alias.yml", {:aliases=>{:instance_method=>hash}}.to_yaml)
|
30
|
+
capture_stdout { @console.save_aliases }.should =~ /Save/
|
31
|
+
end
|
32
|
+
|
33
|
+
test "saves to given file" do
|
34
|
+
hash = {"Bluh"=>{"blah"=>"b"}}
|
35
|
+
@console.create_aliases :instance_method, hash
|
36
|
+
Alias.expects(:save_to_file).with("explicit", {:aliases=>{:instance_method=>hash}}.to_yaml)
|
37
|
+
capture_stdout { @console.save_aliases('explicit') }.should =~ /explicit/
|
38
|
+
end
|
39
|
+
|
40
|
+
test "prints message if nothing to save" do
|
41
|
+
capture_stdout { @console.save_aliases }.should =~ /Didn't save/
|
42
|
+
end
|
43
|
+
|
44
|
+
test "saves aliases to config/alias.yml if config/ exists" do
|
45
|
+
File.expects(:directory?).returns(true)
|
46
|
+
@console.create_aliases :instance_method, {"Bluh"=>{"blah"=>"b2"}}
|
47
|
+
Alias.expects(:save_to_file).with("config/alias.yml", anything)
|
48
|
+
capture_stdout { @console.save_aliases }
|
49
|
+
end
|
50
|
+
|
51
|
+
test "merges existing aliases with created aliases" do
|
52
|
+
hash = {"Bluh"=>{"blah"=>"b3"}}
|
53
|
+
@console.create_aliases :instance_method, hash
|
54
|
+
Alias.expects(:read_config_file).returns({:aliases=>{:instance_method=>{"Bluh"=>{"bling"=>"bl"}}}})
|
55
|
+
Alias.expects(:save_to_file).with("#{ENV['HOME']}/.alias.yml",
|
56
|
+
{:aliases=>{:instance_method=>{"Bluh"=>{'bling'=>'bl', 'blah'=>'b3'}}}}.to_yaml)
|
57
|
+
capture_stdout { @console.save_aliases }
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper.rb')
|
2
|
+
|
3
|
+
class Alias::Creators::ConstantCreatorTest < Test::Unit::TestCase
|
4
|
+
context "AliasConstantCreator" do
|
5
|
+
before(:each) { @manager = Alias::Manager.new }
|
6
|
+
|
7
|
+
def create_aliases(hash, options={})
|
8
|
+
@manager.create_aliases(:constant, hash, options)
|
9
|
+
end
|
10
|
+
|
11
|
+
def expect_aliases(hash)
|
12
|
+
arr = Alias::Creators::ConstantCreator.maps_config(hash)
|
13
|
+
Alias::Creators::ConstantCreator.expects(:generates_aliases).with(arr).returns('')
|
14
|
+
end
|
15
|
+
|
16
|
+
test "deletes existing aliases" do
|
17
|
+
expect_aliases "Array"=>'Ar'
|
18
|
+
create_aliases "Alias::Creators::ConstantCreator"=>"Alias::Creator", "Array"=>"Ar"
|
19
|
+
end
|
20
|
+
|
21
|
+
test "deletes existing aliases unless force option" do
|
22
|
+
h1 = {"Alias::Creators::ConstantCreator"=>"Alias::Creator", "Array"=>"Ar"}
|
23
|
+
expect_aliases h1
|
24
|
+
create_aliases h1, :force=>true
|
25
|
+
end
|
26
|
+
|
27
|
+
test "deletes invalid classes" do
|
28
|
+
eval "module ::Bling; end"
|
29
|
+
expect_aliases 'Array'=>'Ar'
|
30
|
+
create_aliases "Blah"=>"Bling", "Array"=>"Ar"
|
31
|
+
end
|
32
|
+
|
33
|
+
test "creates aliases" do
|
34
|
+
create_aliases 'Time'=>'T'
|
35
|
+
::Time.should == ::T
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper.rb')
|
2
|
+
|
3
|
+
module Alias
|
4
|
+
class CreatorTest < Test::Unit::TestCase
|
5
|
+
context "invalid creator" do
|
6
|
+
before(:all) { eval "class Alias::TestCreator < Alias::Creator; end"}
|
7
|
+
test "raises AbstractMethodError if map not defined" do
|
8
|
+
assert_raises(Creator::AbstractMethodError) {
|
9
|
+
TestCreator.maps_config({})
|
10
|
+
}
|
11
|
+
end
|
12
|
+
|
13
|
+
test "raises AbstractMethodError if generate not defined" do
|
14
|
+
assert_raises(Creator::AbstractMethodError) {
|
15
|
+
TestCreator.generates_aliases([])
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
test "raises ArgumentError when no validator is given" do
|
20
|
+
assert_raises(ArgumentError) { TestCreator.valid :name }
|
21
|
+
end
|
22
|
+
|
23
|
+
test "prints error and deletes validator when invalid one is given" do
|
24
|
+
capture_stderr { TestCreator.valid(:name, :if=>:blah) }.should =~ /not set/
|
25
|
+
TestCreator.validators[:name].should == nil
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper.rb')
|
2
|
+
|
3
|
+
class Alias::Creators::InstanceMethodCreatorTest < Test::Unit::TestCase
|
4
|
+
context "InstanceMethodCreator" do
|
5
|
+
before(:each) { @manager = Alias::Manager.new }
|
6
|
+
def expect_aliases(hash)
|
7
|
+
arr = Alias::Creators::InstanceMethodCreator.maps_config(hash)
|
8
|
+
Alias::Creators::InstanceMethodCreator.expects(:generates_aliases).with(arr).returns('')
|
9
|
+
end
|
10
|
+
|
11
|
+
def create_aliases(hash)
|
12
|
+
@manager.create_aliases(:instance_method, hash)
|
13
|
+
end
|
14
|
+
|
15
|
+
test "deletes existing instance method aliases" do
|
16
|
+
expect_aliases "String"=>{"strip"=>"st"}
|
17
|
+
create_aliases 'String'=>{'strip'=>'st', 'chomp'=>'chop'}
|
18
|
+
end
|
19
|
+
|
20
|
+
test "deletes invalid classes" do
|
21
|
+
expect_aliases "String"=>{'strip','st'}
|
22
|
+
create_aliases "String"=>{'strip','st'}, 'Blah'=>{'map'=>'m'}
|
23
|
+
end
|
24
|
+
|
25
|
+
test "deletes invalid instance method keys" do
|
26
|
+
expect_aliases "Array"=>{}, "String"=>{"strip"=>"st"}
|
27
|
+
create_aliases 'String'=>{'strip'=>'st'},'Array'=>{'blah', 'bl'}
|
28
|
+
end
|
29
|
+
|
30
|
+
test "creates aliases" do
|
31
|
+
Kernel.eval %[
|
32
|
+
class ::SampleClass
|
33
|
+
def whoop; 'WHOOP'; end
|
34
|
+
end
|
35
|
+
]
|
36
|
+
obj = SampleClass.new
|
37
|
+
create_aliases 'SampleClass'=>{:whoop=>:can_of_wass, :blah=>:bl}
|
38
|
+
SampleClass.new.whoop.should == SampleClass.new.can_of_wass
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper.rb')
|
2
|
+
|
3
|
+
class Alias::ManagerTest < Test::Unit::TestCase
|
4
|
+
before(:each) { @manager = Alias::Manager.new}
|
5
|
+
|
6
|
+
context "create_aliases" do
|
7
|
+
before(:all) { eval %[class Alias::Creators::ValidTestCreator < Alias::Creator; map { [] }; generate { ' '}; end]}
|
8
|
+
def create_aliases(options={})
|
9
|
+
@manager.create_aliases :valid_test, {}, options
|
10
|
+
end
|
11
|
+
|
12
|
+
test "creates aliases" do
|
13
|
+
Kernel.expects(:eval).with(' ')
|
14
|
+
create_aliases
|
15
|
+
end
|
16
|
+
|
17
|
+
test "doesn't create aliases with pretend option" do
|
18
|
+
Kernel.expects(:eval).never
|
19
|
+
capture_stdout { create_aliases :pretend=>true }.should == "\n \n"
|
20
|
+
end
|
21
|
+
|
22
|
+
test "with manager's verbose sets creator's verbose" do
|
23
|
+
@manager.verbose = true
|
24
|
+
create_aliases
|
25
|
+
@manager.creators[:valid_test].verbose.should == true
|
26
|
+
end
|
27
|
+
|
28
|
+
test "with manager's verbose array sets creator's verbose" do
|
29
|
+
@manager.verbose = [:valid_test]
|
30
|
+
create_aliases
|
31
|
+
@manager.creators[:valid_test].verbose.should == true
|
32
|
+
end
|
33
|
+
|
34
|
+
test "with manager's verbose array doesn't set creator's verbose" do
|
35
|
+
@manager.verbose = [:another]
|
36
|
+
create_aliases
|
37
|
+
@manager.creators[:valid_test].verbose.should == false
|
38
|
+
end
|
39
|
+
|
40
|
+
test "with manager's force sets creator's force" do
|
41
|
+
@manager.force = true
|
42
|
+
create_aliases
|
43
|
+
@manager.creators[:valid_test].force.should == true
|
44
|
+
end
|
45
|
+
|
46
|
+
test "with manager's force array sets creator's force" do
|
47
|
+
@manager.force = [:valid_test]
|
48
|
+
create_aliases
|
49
|
+
@manager.creators[:valid_test].force.should == true
|
50
|
+
end
|
51
|
+
|
52
|
+
test "with manager's force array doesn't set creators force" do
|
53
|
+
@manager.force = [:another]
|
54
|
+
create_aliases
|
55
|
+
@manager.creators[:valid_test].force.should == false
|
56
|
+
end
|
57
|
+
|
58
|
+
test "force option sets force in creator object" do
|
59
|
+
create_aliases :force=>true
|
60
|
+
@manager.creators[:valid_test].force.should == true
|
61
|
+
end
|
62
|
+
|
63
|
+
test "verbose option sets verbose in creator object" do
|
64
|
+
create_aliases :verbose=>true
|
65
|
+
@manager.creators[:valid_test].verbose.should == true
|
66
|
+
end
|
67
|
+
|
68
|
+
test "prints error if nonexistent creator given" do
|
69
|
+
capture_stderr {@manager.create_aliases :blah, {} }.should =~ /not found/
|
70
|
+
end
|
71
|
+
|
72
|
+
test "prints error if necessary creator methods not defined" do
|
73
|
+
eval "class Alias::Creators::BlingCreator < Alias::Creator; end"
|
74
|
+
capture_stderr { @manager.create_aliases :bling, {} }.should =~ /BlingCreator/
|
75
|
+
end
|
76
|
+
|
77
|
+
test "prints error if aliases fail to create" do
|
78
|
+
eval "class Alias::Creators::Bling2Creator < Alias::Creator; map {[]}; generate { 'blah' }; end"
|
79
|
+
capture_stderr { @manager.create_aliases :bling2, {} }.should =~ /failed to create aliases/
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
context "search" do
|
84
|
+
before(:each) {
|
85
|
+
@manager.instance_variable_set "@creators", {:constant=>Alias::Creators::ConstantCreator.new}
|
86
|
+
@manager.stubs(:all_aliases).returns([{:name=>'Array', :alias=>'A'}, {:name=>'Abbrev', :alias=>'B'}])
|
87
|
+
}
|
88
|
+
|
89
|
+
test "key and symbol value" do
|
90
|
+
@manager.search(:name=>:Array).should == [{:name=>'Array', :alias=>'A'}]
|
91
|
+
end
|
92
|
+
|
93
|
+
test "with key and string value" do
|
94
|
+
@manager.search(:name=>'A').should == [{:name=>'Array', :alias=>'A'}, {:name=>'Abbrev', :alias=>'B'}]
|
95
|
+
end
|
96
|
+
|
97
|
+
test "with a string" do
|
98
|
+
@manager.search('Array').should == [{:name=>'Array', :alias=>'A'}]
|
99
|
+
end
|
100
|
+
|
101
|
+
test "with multiple search terms" do
|
102
|
+
@manager.search(:name=>'A', :alias=>'A').should == [{:name=>'Array', :alias=>'A'}]
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'context' #gem install jeremymcanally-context -s http://gems.github.com
|
4
|
+
require 'mocha' #gem install mocha
|
5
|
+
require 'matchy' #gem install jeremymcanally-matchy -s http://gems.github.com
|
6
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
7
|
+
require 'alias'
|
8
|
+
|
9
|
+
class Test::Unit::TestCase
|
10
|
+
def capture_stdout(&block)
|
11
|
+
original_stdout = $stdout
|
12
|
+
$stdout = fake = StringIO.new
|
13
|
+
begin
|
14
|
+
yield
|
15
|
+
ensure
|
16
|
+
$stdout = original_stdout
|
17
|
+
end
|
18
|
+
fake.string
|
19
|
+
end
|
20
|
+
|
21
|
+
def capture_stderr(&block)
|
22
|
+
original_stderr = $stderr
|
23
|
+
$stderr = fake = StringIO.new
|
24
|
+
begin
|
25
|
+
yield
|
26
|
+
ensure
|
27
|
+
$stderr = original_stderr
|
28
|
+
end
|
29
|
+
fake.string
|
30
|
+
end
|
31
|
+
end
|
data/test/util_test.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper.rb')
|
2
|
+
|
3
|
+
module Alias
|
4
|
+
class UtilTest < Test::Unit::TestCase
|
5
|
+
test "any_const_get fetches simple class" do
|
6
|
+
Util.any_const_get("Array").should == Array
|
7
|
+
end
|
8
|
+
|
9
|
+
test "any_const_get fetches nested class" do
|
10
|
+
eval "module ::Somemodule; class Someclass; end; end"
|
11
|
+
Util.any_const_get("Somemodule::Someclass").should == Somemodule::Someclass
|
12
|
+
end
|
13
|
+
|
14
|
+
test "any_const_get returns nil for nonexistent class" do
|
15
|
+
Util.any_const_get("NonexistentClass").should == nil
|
16
|
+
end
|
17
|
+
|
18
|
+
test "slice only returns valid keys given" do
|
19
|
+
Util.slice({:a=>1,:b=>2}, :a, :c).should == {:a=>1}
|
20
|
+
end
|
21
|
+
|
22
|
+
test "slice_off! returns given keys but takes them off existing hash" do
|
23
|
+
h = {:a=>1, :b=>2}
|
24
|
+
Util.slice_off!(h, :a, :c).should == {:a=>1}
|
25
|
+
h.should == {:b=>2}
|
26
|
+
end
|
27
|
+
|
28
|
+
test "camelize should uppercase non-underscored string" do
|
29
|
+
Util.camelize('man').should == 'Man'
|
30
|
+
end
|
31
|
+
|
32
|
+
test "camelize should camelize underscored string" do
|
33
|
+
Util.camelize('some_test').should == 'SomeTest'
|
34
|
+
end
|
35
|
+
|
36
|
+
test "make_shortest_aliases" do
|
37
|
+
eval "::Y = 'some value'"
|
38
|
+
expected_hash = {"Yo"=>"Y", "Man"=>"M", "Cool"=>"C", 'Yay'=>'Ya'}
|
39
|
+
Util.make_shortest_aliases(['Yo','Yay','Cool','Man']).should == expected_hash
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|