gemify 0.2.2 → 0.2.3
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/gemify +6 -1
- data/lib/gemify.rb +20 -10
- metadata +2 -2
data/bin/gemify
CHANGED
data/lib/gemify.rb
CHANGED
@@ -1,17 +1,19 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
require 'rubygems/builder'
|
2
3
|
require 'yaml'
|
3
4
|
|
4
5
|
class Gemify
|
5
6
|
class Exit < StandardError;end
|
7
|
+
MANIFEST = ["MANIFEST", "Manifest.txt", ".manifest"]
|
6
8
|
REQUIRED = [:name, :summary, :version]
|
7
9
|
OPTIONAL = [:author, :email, :homepage, :rubyforge_project, :dependencies]
|
8
10
|
ALL = REQUIRED+OPTIONAL
|
9
11
|
REPLACE = {:rubyforge_project => "RubyForge project"}
|
10
12
|
def initialize
|
11
13
|
@settings = {}
|
12
|
-
@
|
14
|
+
@bin = Dir["bin/**/*"]
|
13
15
|
|
14
|
-
if
|
16
|
+
if files.empty?
|
15
17
|
puts "Can't find anything to make a gem out of..."
|
16
18
|
raise Exit
|
17
19
|
end
|
@@ -23,6 +25,14 @@ class Gemify
|
|
23
25
|
@result = "Can't read .gemified"
|
24
26
|
end
|
25
27
|
|
28
|
+
def files
|
29
|
+
@files ||= if m=MANIFEST.detect{|x|File.exist?(x)}
|
30
|
+
File.read(m).split(/\r?\n/)
|
31
|
+
else
|
32
|
+
@bin + Dir["lib/**/*"]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
26
36
|
def main
|
27
37
|
loop do
|
28
38
|
menu
|
@@ -49,15 +59,15 @@ class Gemify
|
|
49
59
|
when 1
|
50
60
|
puts "Write all your dependencies here, split by ENTER and"
|
51
61
|
puts "press ENTER twice when you're done:"
|
52
|
-
@dependencies = $stdin.gets($/*2).strip.split($/)
|
53
|
-
@dependencies
|
62
|
+
@settings[:dependencies] = $stdin.gets($/*2).strip.split($/)
|
63
|
+
@settings.delete(:dependencies) if @settings[:dependencies].empty?
|
54
64
|
@result = "Updated 'dependencies'"
|
55
65
|
next
|
56
66
|
when 2
|
57
67
|
save
|
58
68
|
next
|
59
69
|
when 3
|
60
|
-
@result = "Included files:#{$/}" +
|
70
|
+
@result = "Included files:#{$/}" + files.join($/)
|
61
71
|
next
|
62
72
|
end
|
63
73
|
|
@@ -85,19 +95,19 @@ class Gemify
|
|
85
95
|
|
86
96
|
def build
|
87
97
|
Gem::Builder.new(Gem::Specification.new do |s|
|
98
|
+
(@settings.delete(:dependencies)||[]).each do |dep|
|
99
|
+
s.add_dependency dep
|
100
|
+
end
|
101
|
+
|
88
102
|
@settings.each { |key, value| s.send("#{key}=",value) }
|
89
103
|
s.platform = Gem::Platform::RUBY
|
90
|
-
s.files =
|
104
|
+
s.files = files
|
91
105
|
s.bindir = "bin"
|
92
106
|
s.require_path = "lib"
|
93
107
|
|
94
108
|
unless @bin.empty?
|
95
109
|
s.executables = @bin.map{|x|x[4..-1]}
|
96
110
|
end
|
97
|
-
|
98
|
-
(@dependencies||[]).each do |dep|
|
99
|
-
s.add_dependency dep
|
100
|
-
end
|
101
111
|
end).build
|
102
112
|
raise Exit
|
103
113
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Magnus Holm
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-03-23 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|