rvm-completion 0.2.0 → 0.2.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.
- data/README.rdoc +12 -1
- data/VERSION +1 -1
- data/rvm-completion.gemspec +6 -2
- data/test/helper.rb +45 -33
- data/test/rvm_mock_environment.rb +34 -0
- data/test/test_installer.rb +18 -0
- metadata +8 -4
data/README.rdoc
CHANGED
@@ -4,14 +4,25 @@ Provides you with bash completion for the Ruby Version Manager by Wayne Seguin,
|
|
4
4
|
including completion of installed Rubies and available gemsets for currently active
|
5
5
|
Ruby.
|
6
6
|
|
7
|
-
|
7
|
+
The ruby and gemset name completion also accepts parts of the name via regular
|
8
|
+
expression matching, so typing 'rvm use 299' will match to 'rvm use ruby-1.8.7-p299'
|
9
|
+
|
10
|
+
== Install via gems
|
8
11
|
|
9
12
|
$ gem install rvm-completion
|
10
13
|
$ install-rvm-completion
|
11
14
|
|
12
15
|
Then add the following line to your bash profile (~/.profile or ~/.bashrc):
|
16
|
+
|
13
17
|
complete -C $rvm_scripts_path/rvm-completion.rb -o default rvm
|
18
|
+
|
19
|
+
== Manual install
|
20
|
+
|
21
|
+
You can also install manually by grabbing the rvm-completion.rb file inside the lib
|
22
|
+
directory, placing it somewhere on your local machine, making it executable with
|
23
|
+
chmod +x and adding the following to your bash profile:
|
14
24
|
|
25
|
+
complete -C THE/PATH/TO/rvm-completion.rb -o default rvm
|
15
26
|
|
16
27
|
== Note on Patches/Pull Requests
|
17
28
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
data/rvm-completion.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rvm-completion}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Christoph Olszowka"]
|
@@ -29,11 +29,13 @@ Gem::Specification.new do |s|
|
|
29
29
|
"lib/rvm-completion.rb",
|
30
30
|
"rvm-completion.gemspec",
|
31
31
|
"test/helper.rb",
|
32
|
+
"test/rvm_mock_environment.rb",
|
33
|
+
"test/test_installer.rb",
|
32
34
|
"test/test_rvm-completion.rb"
|
33
35
|
]
|
34
36
|
s.homepage = %q{http://github.com/colszowka/rvm-completion}
|
35
37
|
s.post_install_message = %q{
|
36
|
-
To install rvm completion v0.2.
|
38
|
+
To install rvm completion v0.2.1, please run 'install-rvm-completion' in your terminal now!
|
37
39
|
|
38
40
|
}
|
39
41
|
s.rdoc_options = ["--charset=UTF-8"]
|
@@ -42,6 +44,8 @@ To install rvm completion v0.2.0, please run 'install-rvm-completion' in your te
|
|
42
44
|
s.summary = %q{bash completion for Ruby Version Manager}
|
43
45
|
s.test_files = [
|
44
46
|
"test/helper.rb",
|
47
|
+
"test/rvm_mock_environment.rb",
|
48
|
+
"test/test_installer.rb",
|
45
49
|
"test/test_rvm-completion.rb"
|
46
50
|
]
|
47
51
|
|
data/test/helper.rb
CHANGED
@@ -6,41 +6,13 @@ require 'fileutils'
|
|
6
6
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
7
7
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
8
8
|
require 'rvm-completion'
|
9
|
-
|
10
|
-
# Define path to tmp directory
|
11
|
-
tmp_root = File.expand_path(File.join(File.dirname(__FILE__), '../tmp'))
|
12
|
-
|
13
|
-
# Set environment vars used in completion to test-specific ones
|
14
|
-
ENV['rvm_rubies_path'] = File.join(tmp_root, 'rubies')
|
15
|
-
ENV['rvm_gems_path'] = File.join(tmp_root, 'gems')
|
16
|
-
ENV['rvm_gemset_separator'] = '@'
|
17
|
-
|
18
|
-
# Clean up and prepare test folders
|
19
|
-
FileUtils.rm_rf(tmp_root) if File.exist?(tmp_root)
|
20
|
-
|
21
|
-
def mock_gemset(ruby_name, gemset_name=nil)
|
22
|
-
if gemset_name.nil?
|
23
|
-
FileUtils.mkdir_p(File.join(ENV['rvm_gems_path'], "#{ruby_name}"))
|
24
|
-
else
|
25
|
-
FileUtils.mkdir_p(File.join(ENV['rvm_gems_path'], "#{ruby_name}#{ENV['rvm_gemset_separator']}#{gemset_name}"))
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
FileUtils.mkdir_p(File.join(ENV['rvm_rubies_path'], 'default'))
|
30
|
-
|
31
|
-
["macruby-0.6", "rbx-1.0.1-20100603", "ree-1.8.7-2010.02", "ruby-1.8.7-p174",
|
32
|
-
"ruby-1.8.7-p299", "ruby-1.9.1-p378", "ruby-1.9.2-rc2"].each do |ruby_name|
|
33
|
-
FileUtils.mkdir_p(File.join(ENV['rvm_rubies_path'], ruby_name))
|
34
|
-
mock_gemset(ruby_name)
|
35
|
-
mock_gemset(ruby_name, 'global')
|
36
|
-
end
|
37
|
-
|
38
|
-
class RVMCompletion
|
39
|
-
# Required for mocking gemsets based upon selected ruby
|
40
|
-
attr_writer :current_ruby_path
|
41
|
-
end
|
9
|
+
require 'rvm_mock_environment'
|
42
10
|
|
43
11
|
class Test::Unit::TestCase
|
12
|
+
# Fake the path to a ruby install used in rvm. This is required since
|
13
|
+
# normally, the completion resorts to the shell command 'which ruby' to
|
14
|
+
# determine this, which obviously is not reproducible in unit tests across
|
15
|
+
# environmente. Will create all mocked gemsets specified in options[:gemsets] array
|
44
16
|
def self.using_ruby(ruby_name, options={})
|
45
17
|
options = {:gemsets => []}.merge(options)
|
46
18
|
options[:gemsets].each do |gemset|
|
@@ -54,6 +26,9 @@ class Test::Unit::TestCase
|
|
54
26
|
end
|
55
27
|
end
|
56
28
|
|
29
|
+
# Processes the completion for the given comp line(s) and yields the
|
30
|
+
# shoulda context. If used after using_ruby will use that ruby with a mocked
|
31
|
+
# bin path
|
57
32
|
def self.completion_for(*comp_lines)
|
58
33
|
comp_lines.each do |comp_line|
|
59
34
|
context "Completion for '#{comp_line}'" do
|
@@ -77,6 +52,7 @@ class Test::Unit::TestCase
|
|
77
52
|
end
|
78
53
|
end
|
79
54
|
|
55
|
+
# Asserts the completion stored in subject includes the given values (and only those)
|
80
56
|
def self.should_include(*values)
|
81
57
|
should "return #{values.length} completions" do
|
82
58
|
assert_equal values.length, subject.length
|
@@ -89,9 +65,45 @@ class Test::Unit::TestCase
|
|
89
65
|
end
|
90
66
|
end
|
91
67
|
|
68
|
+
# Asserts that no completions are returned in subject
|
92
69
|
def self.should_include_nothing
|
93
70
|
should "include nothing in completion" do
|
94
71
|
assert_equal 0, subject.length
|
95
72
|
end
|
96
73
|
end
|
74
|
+
|
75
|
+
def self.with_rvm_scripts_path(path)
|
76
|
+
context "with rvm scripts path set to #{path}" do
|
77
|
+
setup { ENV['rvm_scripts_path'] = path }
|
78
|
+
yield
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.running_install_script
|
83
|
+
context "running the install script" do
|
84
|
+
setup do
|
85
|
+
@output = `#{File.join(File.dirname(__FILE__), '../bin/install-rvm-completion')}`
|
86
|
+
end
|
87
|
+
subject { @output }
|
88
|
+
yield
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def self.should_print(message)
|
93
|
+
should "print '#{message}'" do
|
94
|
+
assert_match(/#{message}/, subject)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def self.should_not_have_copied_the_script
|
99
|
+
should "not have copied the completion script" do
|
100
|
+
assert !File.exist?(File.join(ENV['rvm_scripts_path'], 'rvm-completion.rb'))
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def self.should_have_copied_the_script
|
105
|
+
should "have copied the completion script" do
|
106
|
+
assert File.exist?(File.join(ENV['rvm_scripts_path'], 'rvm-completion.rb'))
|
107
|
+
end
|
108
|
+
end
|
97
109
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Set up a faked rvm environment for tests
|
2
|
+
|
3
|
+
# Define path to tmp directory
|
4
|
+
tmp_root = File.expand_path(File.join(File.dirname(__FILE__), '../tmp'))
|
5
|
+
|
6
|
+
# Set environment vars used in completion to test-specific ones
|
7
|
+
ENV['rvm_rubies_path'] = File.join(tmp_root, 'rubies')
|
8
|
+
ENV['rvm_gems_path'] = File.join(tmp_root, 'gems')
|
9
|
+
ENV['rvm_gemset_separator'] = '@'
|
10
|
+
|
11
|
+
# Clean up and prepare test folders
|
12
|
+
FileUtils.rm_rf(tmp_root) if File.exist?(tmp_root)
|
13
|
+
|
14
|
+
def mock_gemset(ruby_name, gemset_name=nil)
|
15
|
+
if gemset_name.nil?
|
16
|
+
FileUtils.mkdir_p(File.join(ENV['rvm_gems_path'], "#{ruby_name}"))
|
17
|
+
else
|
18
|
+
FileUtils.mkdir_p(File.join(ENV['rvm_gems_path'], "#{ruby_name}#{ENV['rvm_gemset_separator']}#{gemset_name}"))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
FileUtils.mkdir_p(File.join(ENV['rvm_rubies_path'], 'default'))
|
23
|
+
|
24
|
+
["macruby-0.6", "rbx-1.0.1-20100603", "ree-1.8.7-2010.02", "ruby-1.8.7-p174",
|
25
|
+
"ruby-1.8.7-p299", "ruby-1.9.1-p378", "ruby-1.9.2-rc2"].each do |ruby_name|
|
26
|
+
FileUtils.mkdir_p(File.join(ENV['rvm_rubies_path'], ruby_name))
|
27
|
+
mock_gemset(ruby_name)
|
28
|
+
mock_gemset(ruby_name, 'global')
|
29
|
+
end
|
30
|
+
|
31
|
+
class RVMCompletion
|
32
|
+
# Required for mocking gemsets based upon selected ruby
|
33
|
+
attr_writer :current_ruby_path
|
34
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestInstaller < Test::Unit::TestCase
|
4
|
+
with_rvm_scripts_path '' do
|
5
|
+
running_install_script do
|
6
|
+
should_print 'Failed to find rvm scripts path - is rvm installed correctly?'
|
7
|
+
should_not_have_copied_the_script
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
with_rvm_scripts_path File.expand_path(File.join(File.dirname(__FILE__), '../tmp')) do
|
12
|
+
running_install_script do
|
13
|
+
should_print "Success! rvm completion"
|
14
|
+
should_print "If you didn't do so before, please add the following line at the end of your"
|
15
|
+
should_have_copied_the_script
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rvm-completion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Christoph Olszowka
|
@@ -52,6 +52,8 @@ files:
|
|
52
52
|
- lib/rvm-completion.rb
|
53
53
|
- rvm-completion.gemspec
|
54
54
|
- test/helper.rb
|
55
|
+
- test/rvm_mock_environment.rb
|
56
|
+
- test/test_installer.rb
|
55
57
|
- test/test_rvm-completion.rb
|
56
58
|
has_rdoc: true
|
57
59
|
homepage: http://github.com/colszowka/rvm-completion
|
@@ -59,7 +61,7 @@ licenses: []
|
|
59
61
|
|
60
62
|
post_install_message: |+
|
61
63
|
|
62
|
-
To install rvm completion v0.2.
|
64
|
+
To install rvm completion v0.2.1, please run 'install-rvm-completion' in your terminal now!
|
63
65
|
|
64
66
|
rdoc_options:
|
65
67
|
- --charset=UTF-8
|
@@ -92,4 +94,6 @@ specification_version: 3
|
|
92
94
|
summary: bash completion for Ruby Version Manager
|
93
95
|
test_files:
|
94
96
|
- test/helper.rb
|
97
|
+
- test/rvm_mock_environment.rb
|
98
|
+
- test/test_installer.rb
|
95
99
|
- test/test_rvm-completion.rb
|