specific_install 0.2.7 → 0.2.8
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.
- checksums.yaml +8 -8
- data/Rakefile +7 -0
- data/lib/rubygems/commands/specific_install_command.rb +94 -50
- data/lib/specific_install/version.rb +1 -1
- data/spec/spec_helper.rb +10 -0
- data/spec/specific_install_spec.rb +209 -0
- data/specific_install.gemspec +3 -0
- metadata +49 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MWNmNjQ1MTg3NDk1OWU0ZmFhYWMwYzE3ZGUyYmQxOTlmOTc1OGFhMQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NzUxMTM1ZmZhNTM1YmI2OTU0YTIxNzczY2YyYWE5N2FkZDJmNjc5ZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ODhlMDE5NjRhNTI1NmZmMmRkMzIwM2JlYzg0OTRmNTc5ZGFiN2Y4MmM0YTg1
|
10
|
+
YzVjYjAwNTI5ZDIxNzczNDU4YmUzMzE2YTM2MzhiNzE2OTM5ZGRiNzBmMDFl
|
11
|
+
NThkYjdjMjBhMTYwMjAzNzQyMjIzMTAzYWI1ZWMxOTY0MmI4ZTk=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MTI2MzEwYzkwYmNhZWU2ZjlmOGZhZWQyNTAwOTBlZTQ2ZjI0ZTJkMzc0NjM5
|
14
|
+
NzBlMzQ1NDMzNjMyMjQ3ZjljZjdlODJlMjJhMjRiYjQ0NzNkYWNkMjQwMGFj
|
15
|
+
Mjk1YmMzOTRkYTdiMjUyMDJkNzRjNDg5Mjc0ODE1N2RmYjJkNDQ=
|
data/Rakefile
CHANGED
@@ -1,19 +1,20 @@
|
|
1
1
|
require 'rubygems/command_manager'
|
2
2
|
require 'rubygems/dependency_installer'
|
3
|
-
require 'rubygems/builder'
|
4
3
|
require 'tempfile'
|
5
4
|
require 'backports'
|
6
5
|
require 'fileutils'
|
7
6
|
require 'open-uri'
|
8
7
|
|
9
8
|
class Gem::Commands::SpecificInstallCommand < Gem::Command
|
9
|
+
attr_accessor :output
|
10
10
|
|
11
11
|
def description
|
12
12
|
"Allows you to install an 'edge' gem straight from its github repository or from a web site"
|
13
13
|
end
|
14
14
|
|
15
|
-
def initialize
|
15
|
+
def initialize(output=STDOUT)
|
16
16
|
super 'specific_install', description
|
17
|
+
@output = output
|
17
18
|
|
18
19
|
add_option('-l', '--location LOCATION', arguments) do |location|
|
19
20
|
options[:location] = location
|
@@ -26,7 +27,7 @@ class Gem::Commands::SpecificInstallCommand < Gem::Command
|
|
26
27
|
end
|
27
28
|
|
28
29
|
def arguments
|
29
|
-
"LOCATION like http://github.com/rdp/ruby_tutorials_core or git://github.com/rdp/ruby_tutorials_core.git or http://host/gem_name.gem"
|
30
|
+
"LOCATION like http://github.com/rdp/ruby_tutorials_core or git://github.com/rdp/ruby_tutorials_core.git or http://host/gem_name.gem\n" +
|
30
31
|
"BRANCH (optional) like beta, or new-feature"
|
31
32
|
end
|
32
33
|
|
@@ -35,64 +36,74 @@ class Gem::Commands::SpecificInstallCommand < Gem::Command
|
|
35
36
|
end
|
36
37
|
|
37
38
|
def execute
|
38
|
-
|
39
|
-
|
40
|
-
|
39
|
+
@loc ||= set_location
|
40
|
+
@branch ||= set_branch if set_branch
|
41
|
+
if @loc.nil?
|
42
|
+
raise ArgumentError, "No location received. Use `gem specific_install -l http://example.com/rdp/specific_install`"
|
41
43
|
end
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
# http://host/gem_name.gem
|
48
|
-
# rdp/specific_install
|
49
|
-
dir = Dir.mktmpdir
|
50
|
-
begin
|
51
|
-
loc = options[:location]
|
52
|
-
case loc
|
53
|
-
when /^http(.*)\.gem$/
|
54
|
-
Dir.chdir dir do
|
55
|
-
say "downloading #{loc}"
|
56
|
-
gem_name = loc.split("/").last
|
57
|
-
download(loc, gem_name)
|
58
|
-
|
59
|
-
if install_gemspec
|
60
|
-
success_message
|
61
|
-
else
|
62
|
-
puts "failed"
|
63
|
-
end
|
64
|
-
end
|
65
|
-
when /\.git$/
|
66
|
-
say 'git installing from ' + loc
|
44
|
+
Dir.mktmpdir do |dir|
|
45
|
+
@dir = dir
|
46
|
+
determine_source_and_install
|
47
|
+
end
|
48
|
+
end
|
67
49
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
50
|
+
def determine_source_and_install
|
51
|
+
case @loc
|
52
|
+
when /^https?(.*)\.gem$/
|
53
|
+
install_gem
|
54
|
+
when /\.git$/
|
55
|
+
install_git
|
56
|
+
when %r(.*/.*)
|
57
|
+
install_shorthand
|
58
|
+
else
|
59
|
+
warn 'Error: must end with .git to be a git repository' +
|
60
|
+
'or be in shorthand form: rdp/specific_install'
|
61
|
+
end
|
62
|
+
end
|
72
63
|
|
73
|
-
|
74
|
-
|
64
|
+
def install_gem
|
65
|
+
Dir.chdir @dir do
|
66
|
+
output.puts "downloading #{@loc}"
|
67
|
+
download(@loc, gem_name)
|
68
|
+
|
69
|
+
if install_gemspec
|
70
|
+
success_message
|
75
71
|
else
|
76
|
-
puts
|
77
|
-
'or be in shorthand form: rdp/specific_install'
|
72
|
+
output.puts "Failed"
|
78
73
|
end
|
79
|
-
ensure
|
80
|
-
FileUtils.rm_rf dir
|
81
74
|
end
|
75
|
+
end
|
82
76
|
|
77
|
+
def gem_name
|
78
|
+
@gem_name ||= @loc.split("/").last
|
83
79
|
end
|
84
80
|
|
85
|
-
|
81
|
+
def install_git
|
82
|
+
output.puts 'git installing from ' + @loc
|
83
|
+
|
84
|
+
redirect_for_specs = ENV.fetch( "SPECIFIC_INSTALL_SPEC" ) { "" }
|
85
|
+
system("git clone #{@loc} #{@dir} #{redirect_for_specs}")
|
86
|
+
install_from_git(@dir)
|
87
|
+
end
|
88
|
+
|
89
|
+
def install_shorthand
|
90
|
+
output.puts "Installing from git@github.com:#{@loc}.git"
|
91
|
+
|
92
|
+
redirect_for_specs = ENV.fetch( "SPECIFIC_INSTALL_SPEC" ) { "" }
|
93
|
+
system("git clone git@github.com:#{@loc}.git #{@dir} #{redirect_for_specs}")
|
94
|
+
install_from_git(@dir)
|
95
|
+
end
|
86
96
|
|
87
97
|
def download( full_url, output_name )
|
88
98
|
File.open(output_name, "wb") do |output_file|
|
89
|
-
|
99
|
+
uri = URI.parse(full_url)
|
100
|
+
output_file.write(uri.read)
|
90
101
|
end
|
91
102
|
end
|
92
103
|
|
93
104
|
def install_from_git(dir)
|
94
105
|
Dir.chdir dir do
|
95
|
-
change_to_branch(
|
106
|
+
change_to_branch(@branch) if @branch
|
96
107
|
['', 'rake gemspec', 'rake gem', 'rake build', 'rake package'].each do |command|
|
97
108
|
system command
|
98
109
|
if install_gemspec
|
@@ -103,21 +114,54 @@ class Gem::Commands::SpecificInstallCommand < Gem::Command
|
|
103
114
|
end
|
104
115
|
end
|
105
116
|
|
117
|
+
def set_location
|
118
|
+
options[:location] || options[:args][0]
|
119
|
+
end
|
120
|
+
|
121
|
+
def set_branch
|
122
|
+
options[:branch] || options[:args][1]
|
123
|
+
end
|
124
|
+
|
106
125
|
def success_message
|
107
|
-
puts 'Successfully installed'
|
126
|
+
output.puts 'Successfully installed'
|
108
127
|
end
|
109
128
|
|
110
129
|
def install_gemspec
|
111
|
-
|
130
|
+
gem = find_or_build_gem
|
131
|
+
|
132
|
+
inst = Gem::DependencyInstaller.new
|
133
|
+
inst.install gem
|
134
|
+
end
|
135
|
+
|
136
|
+
def find_or_build_gem
|
137
|
+
if gemspec_exists?
|
112
138
|
gemspec = Gem::Specification.load(gemspec_file)
|
113
|
-
|
114
|
-
elsif
|
139
|
+
Gem::Package.build gemspec
|
140
|
+
elsif gemfile
|
141
|
+
gemfile
|
142
|
+
else
|
143
|
+
raise ArgumentError, "Can't find gemspec or gem"
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
def gemspec_file(name = "*.gemspec")
|
148
|
+
Dir[name][0]
|
149
|
+
end
|
150
|
+
|
151
|
+
def gemspec_exists?(name = "*.gemspec")
|
152
|
+
if gemspec_file(name)
|
153
|
+
File.exists?(gemspec_file(name))
|
115
154
|
else
|
116
155
|
false
|
117
156
|
end
|
157
|
+
end
|
118
158
|
|
119
|
-
|
120
|
-
|
159
|
+
def gemfile(name = '**/*.gem')
|
160
|
+
if Dir[name].empty?
|
161
|
+
false
|
162
|
+
else
|
163
|
+
Dir[name][0]
|
164
|
+
end
|
121
165
|
end
|
122
166
|
|
123
167
|
def change_to_branch(branch)
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,209 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'stringio'
|
3
|
+
require 'open3'
|
4
|
+
|
5
|
+
describe Gem::Commands::SpecificInstallCommand do
|
6
|
+
before do
|
7
|
+
module Kernel
|
8
|
+
alias_method :real_system, :system
|
9
|
+
|
10
|
+
def system(cmd)
|
11
|
+
'system "#{cmd}"'
|
12
|
+
end
|
13
|
+
|
14
|
+
def puts(cmd)
|
15
|
+
cmd
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
after do
|
21
|
+
module Kernel
|
22
|
+
alias_method :system, :real_system
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
subject { Gem::Commands::SpecificInstallCommand.new(StringIO.new) }
|
27
|
+
describe "#gem_name" do
|
28
|
+
it "sets gem_name from location" do
|
29
|
+
subject.instance_variable_set(:@loc, "stuff/foo/bar")
|
30
|
+
expect(subject.gem_name).to eq("bar")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "disable #install_from_git" do
|
35
|
+
before do
|
36
|
+
class Gem::Commands::SpecificInstallCommand
|
37
|
+
def install_from_git(dir)
|
38
|
+
dir
|
39
|
+
end
|
40
|
+
end
|
41
|
+
subject.instance_variable_set(:@dir, "foo")
|
42
|
+
end
|
43
|
+
describe "#install_git" do
|
44
|
+
before do
|
45
|
+
subject.instance_variable_set(:@loc, "bar")
|
46
|
+
end
|
47
|
+
it "sends correct command to system" do
|
48
|
+
subject.should_receive(:system).with(/git clone bar foo/)
|
49
|
+
subject.install_git
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "#install_shorthand" do
|
54
|
+
it "formats the shorthand into a git repo" do
|
55
|
+
subject.instance_variable_set(:@loc, "bar/zoz")
|
56
|
+
subject.should_receive(:system).with(%r{git clone git@github.com:bar/zoz.git foo})
|
57
|
+
subject.install_shorthand
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe "#success_message" do
|
63
|
+
it "returns correct message" do
|
64
|
+
subject.output.should_receive(:puts).with('Successfully installed')
|
65
|
+
subject.success_message
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe "#install_gemspec" do
|
70
|
+
context "when no gemspec or gem" do
|
71
|
+
xit "returns false" do
|
72
|
+
expect( subject.install_gemspec ).to eq(false)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "#gemspec_exists?" do
|
78
|
+
it "response true to when exists" do
|
79
|
+
expect( subject.gemspec_exists? ).to be_true
|
80
|
+
end
|
81
|
+
|
82
|
+
it "responds false when not present" do
|
83
|
+
expect( subject.gemspec_exists?("*.gemNOTPRESENT") ).to be_false
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "#gemfile" do
|
88
|
+
it "response false when not existing" do
|
89
|
+
expect( subject.gemfile("*.gemNOTPRESENT") ).to be_false
|
90
|
+
end
|
91
|
+
it "response true to when exists" do
|
92
|
+
expect( subject.gemfile("**/*.gem") ).to be_true
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
describe "#determine_source_and_install" do
|
97
|
+
it "executes http gem requests" do
|
98
|
+
subject.instance_variable_set(:@loc, "http://example.com/rad.gem")
|
99
|
+
subject.should_receive(:install_gem)
|
100
|
+
subject.determine_source_and_install
|
101
|
+
end
|
102
|
+
it "executes https gem requests" do
|
103
|
+
subject.instance_variable_set(:@loc, "https://example.com/rad.gem")
|
104
|
+
subject.should_receive(:install_gem)
|
105
|
+
subject.determine_source_and_install
|
106
|
+
end
|
107
|
+
it "executes https git install requests" do
|
108
|
+
subject.instance_variable_set(:@loc, "https://example.com/rad.git")
|
109
|
+
subject.should_receive(:install_git)
|
110
|
+
subject.determine_source_and_install
|
111
|
+
end
|
112
|
+
it "executes git url git install requests" do
|
113
|
+
subject.instance_variable_set(:@loc, "git@github.com:example/rad.git")
|
114
|
+
subject.should_receive(:install_git)
|
115
|
+
subject.determine_source_and_install
|
116
|
+
end
|
117
|
+
it "executes shorthand github install requests" do
|
118
|
+
subject.instance_variable_set(:@loc, "example/rad")
|
119
|
+
subject.should_receive(:install_shorthand)
|
120
|
+
subject.determine_source_and_install
|
121
|
+
end
|
122
|
+
it "executes shorthand github install requests" do
|
123
|
+
subject.instance_variable_set(:@loc, "example")
|
124
|
+
subject.should_receive(:warn)
|
125
|
+
subject.determine_source_and_install
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
describe "#set_location" do
|
130
|
+
it "sets from options[location]" do
|
131
|
+
subject.options[:location] = "example"
|
132
|
+
expect( subject.set_location ).to eq("example")
|
133
|
+
end
|
134
|
+
it "sets from options[args]" do
|
135
|
+
subject.options[:location] = nil
|
136
|
+
subject.options[:args] = ["args"]
|
137
|
+
expect( subject.set_location ).to eq("args")
|
138
|
+
end
|
139
|
+
it "sets neither and results in nil" do
|
140
|
+
subject.options[:location] = nil
|
141
|
+
subject.options[:args] = []
|
142
|
+
expect( subject.set_location ).to be_nil
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
describe "#execute" do
|
147
|
+
it "raises error when no location received" do
|
148
|
+
subject.options[:location] = nil
|
149
|
+
subject.options[:args] = []
|
150
|
+
expect{ subject.execute }.to raise_error(ArgumentError)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
155
|
+
|
156
|
+
|
157
|
+
describe "Integration Tests" do
|
158
|
+
|
159
|
+
$STDOUT = StringIO.new
|
160
|
+
let(:output) { StringIO.new }
|
161
|
+
subject { Gem::Commands::SpecificInstallCommand.new(output) }
|
162
|
+
before(:all) do
|
163
|
+
# ENV.store( "SPECIFIC_INSTALL_SPEC", '2&> /dev/null' )
|
164
|
+
end
|
165
|
+
before(:each) do
|
166
|
+
`gem uninstall specific_install --executables 2&> /dev/null`
|
167
|
+
`rake install 2&> /dev/null`
|
168
|
+
end
|
169
|
+
|
170
|
+
after(:all) do
|
171
|
+
`gem uninstall specific_install --executables 2&> /dev/null`
|
172
|
+
`gem install specific_install`
|
173
|
+
ENV.delete( "SPECIFIC_INSTALL_SPEC" )
|
174
|
+
end
|
175
|
+
|
176
|
+
context "working URIs" do
|
177
|
+
it "installs from https" do
|
178
|
+
url = "https://github.com/rdp/specific_install.git"
|
179
|
+
subject.instance_variable_set(:@loc, url)
|
180
|
+
subject.options[:args] = []
|
181
|
+
stdout, status = Open3.capture2 "gem specific_install #{url}"
|
182
|
+
expect(stdout).to match(/Successfully installed/)
|
183
|
+
end
|
184
|
+
it "installs from http" do
|
185
|
+
url = "http://github.com/rdp/specific_install.git"
|
186
|
+
subject.instance_variable_set(:@loc, url)
|
187
|
+
subject.options[:args] = []
|
188
|
+
stdout, status = Open3.capture2 "gem specific_install #{url}"
|
189
|
+
expect(stdout).to match(/Successfully installed/)
|
190
|
+
end
|
191
|
+
it "installs from shorthand" do
|
192
|
+
url = "rdp/specific_install"
|
193
|
+
subject.instance_variable_set(:@loc, url)
|
194
|
+
subject.options[:args] = []
|
195
|
+
stdout, status = Open3.capture2 "gem specific_install #{url}"
|
196
|
+
expect(stdout).to match(/Successfully installed/)
|
197
|
+
end
|
198
|
+
it "installs from git" do
|
199
|
+
url = "git@github.com:zph/buff.git"
|
200
|
+
stdout, status = Open3.capture2 "gem specific_install #{url}"
|
201
|
+
expect(stdout).to match(/Successfully installed/)
|
202
|
+
end
|
203
|
+
it "installs from packaged gem" do
|
204
|
+
url = "https://rubygems.org/downloads/specific_install-0.2.7.gem"
|
205
|
+
stdout, status = Open3.capture2 "gem specific_install #{url}"
|
206
|
+
expect(stdout).to match(/Successfully installed/)
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
data/specific_install.gemspec
CHANGED
@@ -26,4 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.add_development_dependency 'sane'
|
27
27
|
s.add_development_dependency "bundler", "~> 1.3"
|
28
28
|
s.add_development_dependency "rake"
|
29
|
+
s.add_development_dependency "rspec"
|
30
|
+
s.add_development_dependency "simplecov"
|
31
|
+
s.add_development_dependency "simplecov-vim"
|
29
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: specific_install
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roger Pack
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backports
|
@@ -80,6 +80,48 @@ dependencies:
|
|
80
80
|
- - ! '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: simplecov
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: simplecov-vim
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ! '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
83
125
|
description: rubygems plugin that allows you you to install a gem from from its github
|
84
126
|
repository (like 'edge'), or from an arbitrary URL
|
85
127
|
email: rogerdpack@gmail.com
|
@@ -95,6 +137,8 @@ files:
|
|
95
137
|
- lib/rubygems/commands/specific_install_command.rb
|
96
138
|
- lib/rubygems_plugin.rb
|
97
139
|
- lib/specific_install/version.rb
|
140
|
+
- spec/spec_helper.rb
|
141
|
+
- spec/specific_install_spec.rb
|
98
142
|
- specific_install.gemspec
|
99
143
|
homepage: https://github.com/rdp/specific_install
|
100
144
|
licenses:
|
@@ -121,5 +165,7 @@ signing_key:
|
|
121
165
|
specification_version: 4
|
122
166
|
summary: rubygems plugin that allows you you to install a gem from from its github
|
123
167
|
repository (like 'edge'), or from an arbitrary URL
|
124
|
-
test_files:
|
168
|
+
test_files:
|
169
|
+
- spec/spec_helper.rb
|
170
|
+
- spec/specific_install_spec.rb
|
125
171
|
has_rdoc:
|