freeze_gems 0.0.2

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/bin/freeze ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'freeze_gems'
@@ -0,0 +1,102 @@
1
+ require 'rubygems'
2
+ require 'optparse'
3
+ require 'ostruct'
4
+ require 'fileutils'
5
+ require 'rhash'
6
+
7
+ create_file = ''
8
+ install_gem = false
9
+ show_gems = false
10
+ filename = ""
11
+ gems = {}
12
+
13
+ opts = OptionParser.new do |opt|
14
+ opt.banner = "Usage: freeze_gems.rb [options]"
15
+
16
+ opt.on("-f filename", "Filename with gems should be install.") do |file|
17
+ filename = file
18
+ end
19
+
20
+ opt.on("-c filename", "Create a file with all gems installed.") do |create|
21
+ create_file = create
22
+ end
23
+
24
+ opt.on("-i", "--install", "Install all gems or execute dry run.") do |install|
25
+ install_gem = install
26
+ end
27
+
28
+ opt.on("-s", "--show", "Show all gems included in file.") do |show|
29
+ show_gems = show
30
+ end
31
+
32
+ opt.on_tail("-h", "--help", "Help") do
33
+ puts opt
34
+ exit
35
+ end
36
+ end
37
+
38
+ if ARGV.empty?
39
+ puts opts
40
+ exit
41
+ end
42
+
43
+ opts.parse!(ARGV)
44
+
45
+ init = Time.now
46
+ if !filename.empty? and create_file.empty?
47
+ if File.extname(filename).match(/\.yml|\.yaml/)
48
+ gems = YAML.load(File.read(filename))
49
+ end
50
+
51
+ if install_gem
52
+ gems.each_pair do |id, gem|
53
+ puts "Install ID: #{id} Gem: #{gem.keys.to_s}"
54
+ system %{gem install #{gem.keys.to_s} -v #{gem.values}}
55
+ end
56
+ else
57
+ gems.each_pair do |id, gem|
58
+ puts "ID: #{id}"
59
+ puts "Gem: #{gem.keys.to_s}"
60
+ puts "Gem: #{gem.values}"
61
+ end
62
+ end
63
+
64
+ puts "All gems are installed in: #{Time.now - init}"
65
+ end
66
+
67
+ if filename.empty? and !create_file.empty?
68
+ file = "/tmp/gems"
69
+ system %{gem list > #{file}}
70
+
71
+ gems = RHash.new
72
+ ids = 1
73
+ File.open(file) do |line|
74
+ while l = line.gets
75
+ gem = l.match(/([\w+|\-|\_])*\s\(/).to_s.rstrip.sub("(",'')
76
+ gem.rstrip
77
+ version = l.match(/(\d+\.\d+\.\d+)|(\d+\.\d+)/)
78
+
79
+ next if gem.match(/rvm/i) or gem.match(/freeze_gems/i)
80
+
81
+ gems[ids] = {gem.rstrip => version.to_s}
82
+ if show_gems
83
+ puts "Gem: #{gem.rstrip} (#{version})"
84
+ end
85
+ ids += 1
86
+ end
87
+ end
88
+
89
+ FileUtils.rm(file)
90
+
91
+ gems.sort!
92
+
93
+ unless create_file.match(/\.yaml|\.yml/)
94
+ create_file += '.yaml'
95
+ end
96
+
97
+ File.open(create_file, 'w') do |out|
98
+ out.puts gems.to_yaml
99
+ end
100
+ end
101
+
102
+
data/test/test.rb ADDED
@@ -0,0 +1 @@
1
+ require 'lib/rproject'
data/test/test.yml ADDED
@@ -0,0 +1,5 @@
1
+ 1:
2
+ "wxruby" : "2.0.0"
3
+ 2:
4
+ "unroller" : "1.0.0"
5
+
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: freeze_gems
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 2
10
+ version: 0.0.2
11
+ platform: ruby
12
+ authors:
13
+ - Rodrigo Mello Nardi
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-07-19 00:00:00 -03:00
19
+ default_executable: freeze
20
+ dependencies: []
21
+
22
+ description: |-
23
+ List the gems installed and generates a file.
24
+ This file will be used to install the gems on another computer. This command allow import/export of gems.
25
+ email: rodrigomellonardi@gmail.com
26
+ executables:
27
+ - freeze
28
+ extensions: []
29
+
30
+ extra_rdoc_files: []
31
+
32
+ files:
33
+ - lib/freeze_gems.rb
34
+ - test/test.rb
35
+ - test/test.yml
36
+ - bin/freeze
37
+ has_rdoc: true
38
+ homepage: http://rubyhideoutprogramming.blogspot.com/
39
+ licenses: []
40
+
41
+ post_install_message:
42
+ rdoc_options:
43
+ - --charset=UTF-8
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ hash: 3
52
+ segments:
53
+ - 0
54
+ version: "0"
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
63
+ version: "0"
64
+ requirements: []
65
+
66
+ rubyforge_project:
67
+ rubygems_version: 1.3.7
68
+ signing_key:
69
+ specification_version: 3
70
+ summary: Freeze gems
71
+ test_files:
72
+ - test/test.rb