salvage 0.1.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 07d1b7febe57845675c6aca0feecf443fde713bd
4
+ data.tar.gz: 303d650630008c01dad6046dfefcd1c4d3ece77f
5
+ SHA512:
6
+ metadata.gz: 86056f2c7d5438c347b47b202a4f1af3c718230a5fc085443ada9aefa268bea4f8250c916042ee2e12c90ce81561d48808587cdbac59f523a99f669ff4851050
7
+ data.tar.gz: 4933cfe10e0b83169bee66e9350973d844e3a7358b5d1a6628bd79a9ab226acab20e58aa2bdbdc886cbd5856178eb844ea69e0fd29bad869ad2fc5a3408a47fd
data/bin/salvage.rb ADDED
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'salvage/server'
4
+
5
+ command = ARGV.first
6
+
7
+ def server_command
8
+ server = Salvage::Server.new(8089)
9
+ server.run
10
+ end
11
+
12
+ def list_command
13
+ Salvage::Server.new(8089)
14
+
15
+ gem_versions = Hash.new{|h, k| h[k] = [] }
16
+ Gem::Specification.each do |gem|
17
+ gem_versions[gem.name] << gem.version
18
+ end
19
+
20
+ gem_versions.sort_by{|name, _| name }.each do |(name, versions)|
21
+ version_strs = versions.sort.reverse.join(', ')
22
+ puts "#{name} (#{version_strs})"
23
+ end
24
+ end
25
+
26
+
27
+ case command
28
+ when 'server', nil
29
+ server_command
30
+ when 'list'
31
+ list_command
32
+ else
33
+ puts "Unknown command #{command.inspect}. Valid commands are: server, list."
34
+ end
@@ -0,0 +1,25 @@
1
+ module Salvage
2
+ class Rvm
3
+ def initialize(rvm_path = default_rvm_path)
4
+ @rvm_path = rvm_path
5
+ end
6
+
7
+ def gem_dirs
8
+ search_glob = File.join(gems_base, '*', '**', 'specifications')
9
+ Dir[search_glob].map{|dir| File.dirname(dir) }
10
+ end
11
+
12
+
13
+ private
14
+
15
+ attr_reader :rvm_path
16
+
17
+ def gems_base
18
+ File.join(rvm_path, 'gems')
19
+ end
20
+
21
+ def default_rvm_path
22
+ ENV['rvm_path']
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ require 'rubygems/server'
2
+ require 'salvage/rvm'
3
+
4
+ module Salvage
5
+ class Server
6
+
7
+ def initialize(port)
8
+ @server = Gem::Server.new rvm.gem_dirs, port, false
9
+ end
10
+
11
+ def run
12
+ server.run
13
+ end
14
+
15
+
16
+ private
17
+
18
+ attr_accessor :server
19
+
20
+ def rvm
21
+ @rvm ||= Salvage::Rvm.new
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,5 @@
1
+ module Salvage
2
+ module Version
3
+ STRING = '0.1.0'
4
+ end
5
+ end
data/lib/salvage.rb ADDED
@@ -0,0 +1,4 @@
1
+ module Salvage
2
+ end
3
+
4
+ require 'salvage/rvm'
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: salvage
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Pablo Brasero
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-09-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: Run a Rubygems server that provides gems installed in any RVM environment
28
+ in the machine
29
+ email: pablo@pablobm.com
30
+ executables:
31
+ - salvage.rb
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - bin/salvage.rb
36
+ - lib/salvage.rb
37
+ - lib/salvage/rvm.rb
38
+ - lib/salvage/server.rb
39
+ - lib/salvage/version.rb
40
+ homepage: https://rubygems.org/gems/salvage
41
+ licenses:
42
+ - MIT
43
+ metadata: {}
44
+ post_install_message:
45
+ rdoc_options: []
46
+ require_paths:
47
+ - lib
48
+ required_ruby_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ requirements: []
59
+ rubyforge_project:
60
+ rubygems_version: 2.2.2
61
+ signing_key:
62
+ specification_version: 4
63
+ summary: Make available gems installed in any of your Ruby environments
64
+ test_files: []
65
+ has_rdoc: