toastyapps-gembox 1.1.0 → 1.1.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/Manifest.txt CHANGED
@@ -4,4 +4,8 @@ README.txt
4
4
  Rakefile
5
5
  bin/gembox
6
6
  lib/gembox.rb
7
- test/test_gembox.rb
7
+ lib/templates/dispatch.rb
8
+ lib/templates/bashrc
9
+ lib/templates/gemrc
10
+ lib/templates/shell.bash
11
+ test/test_gembox.rb
data/lib/gembox.rb CHANGED
@@ -1,63 +1,24 @@
1
1
  require 'rubygems'
2
2
  require 'yaml'
3
+ require 'erb'
3
4
 
4
5
  class Gembox
5
- VERSION = '1.1.0'
6
-
6
+ VERSION = '1.1.1'
7
+ attr_accessor :dir
7
8
  def self.create(args)
9
+
8
10
  dir = Dir.new(Dir.pwd+"/"+args.shift).path
9
11
  Dir.chdir(dir)
10
- dir = Dir.pwd
12
+
13
+ @dir = dir = Dir.pwd
14
+
11
15
  FileUtils.mkdir_p "#{dir}/usr/bin"
12
16
  FileUtils.mkdir_p "#{dir}/gems"
13
- File.open("#{dir}/.gemrc", 'w') do |f|
14
- f.puts "gempath:"
15
- f.puts " - #{dir}/gems"
16
- end
17
- File.open("#{dir}/.bashrc", "w") do |f|
18
- f.puts "PS1=\"gembox:\\w> \""
19
- f.puts "export PATH=#{dir}/usr/bin:\$PATH"
20
- f.puts "alias gem='ruby #{dir}/dispatch.rb'"
21
- f.puts "export GEM_PATH=#{dir}/gems"
22
- f.puts "export GEM_HOME=#{dir}/gems"
23
- end
24
- File.open("#{dir}/shell.bash", "w") do |f|
25
- f.puts "/usr/bin/env bash --rcfile #{dir}/.bashrc"
26
- end
27
- File.open("#{dir}/dispatch.rb", "w") do |f|
28
- f.puts "#!/usr/bin/ruby"
29
- f.puts "require 'rubygems'"
30
- f.puts "require 'yaml'"
31
- f.puts "require 'fileutils'"
32
- f.puts "args=ARGV"
33
- f.puts "command=args.shift"
34
- f.puts "case command"
35
- f.puts "when 'install'"
36
- f.puts " system(\"gem --config-file #{dir}/.gemrc #\{command\} --bindir #{dir}/usr/bin #\{ARGV.join(' ')\}\")"
37
- f.puts "when 'query'"
38
- f.puts " puts 'here'"
39
- f.puts " system(\"gem query #\{ARGV.join(' ')\}\")"
40
- f.puts "when 'symlink'"
41
- f.puts " data = YAML.load(File.open('#{dir}/gems.yaml').read)"
42
- f.puts " gem_name = args.shift"
43
- f.puts " if data[gem_name].keys.length == 1"
44
- f.puts " FileUtils.mkdir_p('#{dir}/gems/gems/')"
45
- f.puts " FileUtils.mkdir_p('#{dir}/gems/specifications/')"
46
- f.puts " version = data[gem_name].keys[0]"
47
- f.puts " gemdir = data[gem_name][version]"
48
- f.puts " gemname = gem_name+'-'+version"
49
- f.puts " gem_file = gemdir + '/gems/' + gemname"
50
- f.puts " spec_file = gemdir + '/specifications/' + gemname + '.gemspec'"
51
- f.puts " \`ln -s #\{gem_file\} #{dir}/gems/gems/#\{gemname\} && ln -s #\{spec_file\} #{dir}/gems/specifications/#\{gemname\}.gemspec\`"
52
- f.puts " elsif data[gem_name].keys.length > 1"
53
- f.puts " puts 'This gem has multiple versions. Gembox does not supporting gems with multiple versions installed yet.'"
54
- f.puts " else"
55
- f.puts " puts \"Could not find gem #\{gem_name\}\""
56
- f.puts " end"
57
- f.puts "else"
58
- f.puts " system(\"gem --config-file #{dir}/.gemrc #\{command\} #\{ARGV.join(' ')\}\")"
59
- f.puts "end"
60
- end
17
+
18
+ File.open("#{dir}/.gemrc", 'w') { |f| f.puts ERB.new(File.open(File.dirname(__FILE__)+"/templates/gemrc").read).result(binding) }
19
+ File.open("#{dir}/.bashrc", "w") { |f| f.puts ERB.new(File.open(File.dirname(__FILE__)+"/templates/bashrc").read).result(binding) }
20
+ File.open("#{dir}/shell.bash", "w") {|f| f.puts ERB.new(File.open(File.dirname(__FILE__)+"/templates/shell.bash").read).result(binding) }
21
+ File.open("#{dir}/dispatch.rb", "w") { |f| f.puts ERB.new(File.open(File.dirname(__FILE__)+"/templates/dispatch.rb").read).result(binding) }
61
22
  end
62
23
 
63
24
  def self.shell(args)
@@ -86,9 +47,7 @@ class Gembox
86
47
  end
87
48
  end
88
49
  end
89
- File.open("gems.yaml", "w") do |f|
90
- f.puts gemdata.to_yaml
91
- end
50
+ File.open("gems.yaml", "w") { |f| f.puts gemdata.to_yaml }
92
51
  system("sh shell.bash")
93
52
  end
94
53
 
@@ -0,0 +1,5 @@
1
+ PS1="gembox:\w> "
2
+ export PATH=<%= @dir %>/usr/bin:$PATH
3
+ alias gem='ruby <%= @dir %>/dispatch.rb'
4
+ export GEM_PATH=<%= @dir %>/gems
5
+ export GEM_HOME=<%= @dir %>/gems
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/ruby
2
+ require 'rubygems'
3
+ require 'yaml'
4
+ require 'fileutils'
5
+ args=ARGV
6
+ command=args.shift
7
+ case command
8
+ when 'install'
9
+ system("gem --config-file <%= @dir %>/.gemrc #{command} --bindir <%= @dir %>/usr/bin #{ARGV.join(' ')}")
10
+ when 'query'
11
+ puts 'here'
12
+ system("gem query #{ARGV.join(' ')}")
13
+ when 'symlink'
14
+ data = YAML.load(File.open('<%= @dir %>/gems.yaml').read)
15
+ gem_name = args.shift
16
+ if data[gem_name].keys.length == 1
17
+ FileUtils.mkdir_p('<%= @dir %>/gems/gems/')
18
+ FileUtils.mkdir_p('<%= @dir %>/gems/specifications/')
19
+ version = data[gem_name].keys[0]
20
+ gemdir = data[gem_name][version]
21
+ gemname = gem_name+'-'+version
22
+ gem_file = gemdir + '/gems/' + gemname
23
+ spec_file = gemdir + '/specifications/' + gemname + '.gemspec'
24
+ `ln -s #{gem_file} <%= @dir %>/gems/gems/#{gemname} && ln -s #{spec_file} <%= @dir %>/gems/specifications/#{gemname}.gemspec`
25
+ elsif data[gem_name].keys.length > 1
26
+ puts 'This gem has multiple versions. Gembox does not supporting gems with multiple versions installed yet.'
27
+ else
28
+ puts "Could not find gem #{gem_name}"
29
+ end
30
+ else
31
+ system("gem --config-file <%= @dir %>/.gemrc #{command} #{ARGV.join(' ')}")
32
+ end
@@ -0,0 +1,2 @@
1
+ gempath:
2
+ - <%= @dir %>/gems
@@ -0,0 +1 @@
1
+ /usr/bin/env bash --rcfile <%= @dir %>/.bashrc
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toastyapps-gembox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Mongeau
@@ -30,6 +30,10 @@ files:
30
30
  - Rakefile
31
31
  - bin/gembox
32
32
  - lib/gembox.rb
33
+ - lib/templates/dispatch.rb
34
+ - lib/templates/bashrc
35
+ - lib/templates/gemrc
36
+ - lib/templates/shell.bash
33
37
  - test/test_gembox.rb
34
38
  has_rdoc: true
35
39
  homepage: http://www.halogenandtoast.com