gem-release 0.0.1 → 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/README.textile +5 -0
- data/lib/gem_release/version.rb +1 -1
- data/lib/rubygems_plugin.rb +49 -0
- metadata +4 -4
- data/lib/rubygems/commands/gem_release.rb +0 -20
data/README.textile
ADDED
data/lib/gem_release/version.rb
CHANGED
data/lib/rubygems_plugin.rb
CHANGED
|
@@ -1,3 +1,52 @@
|
|
|
1
1
|
require 'rubygems/command_manager'
|
|
2
|
+
require 'rubygems/commands/build_command'
|
|
3
|
+
require 'rubygems/commands/push_command'
|
|
4
|
+
|
|
5
|
+
class Gem::Commands::ReleaseCommand < Gem::Command
|
|
6
|
+
def initialize
|
|
7
|
+
super 'release', 'Build a gem from a gemspec and push to rubygems.org'
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def arguments # :nodoc:
|
|
11
|
+
"GEMSPEC_FILE optional (will use the first *.gemspec if not specified)"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def usage # :nodoc:
|
|
15
|
+
"#{program_name} [GEMSPEC_FILE]"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def execute
|
|
19
|
+
file_name = build
|
|
20
|
+
push(file_name)
|
|
21
|
+
remove(filename)
|
|
22
|
+
say "All done, thanks buddy."
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def build
|
|
26
|
+
command = Gem::Commands::BuildCommand.new
|
|
27
|
+
command.handle_options([gemspec])
|
|
28
|
+
command.execute
|
|
29
|
+
command.load_gemspecs(gemspec).first.file_name
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def push(filename)
|
|
33
|
+
command = Gem::Commands::PushCommand.new
|
|
34
|
+
command.handle_options([filename])
|
|
35
|
+
command.execute
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def remove(filename)
|
|
39
|
+
`rm #{file_name}`
|
|
40
|
+
say "Deleting left over gem file #{filename}"
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def gemspec
|
|
44
|
+
@gemspec ||= begin
|
|
45
|
+
gemspec = Array(options[:args]).first
|
|
46
|
+
gemspec ||= Dir['*.gemspec'].first
|
|
47
|
+
gemspec || raise("No gemspec found or given.")
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
2
51
|
|
|
3
52
|
Gem::CommandManager.instance.register_command :release
|
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
7
|
- 0
|
|
8
|
-
-
|
|
9
|
-
version: 0.0.
|
|
8
|
+
- 2
|
|
9
|
+
version: 0.0.2
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- Sven Fuchs
|
|
@@ -18,7 +18,7 @@ date: 2010-04-03 00:00:00 +02:00
|
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies: []
|
|
20
20
|
|
|
21
|
-
description: Release your ruby gems with ease.
|
|
21
|
+
description: Release your ruby gems with ease. (What a bold statement for such a tiny plugin ...)
|
|
22
22
|
email: svenfuchs@artweb-design.de
|
|
23
23
|
executables: []
|
|
24
24
|
|
|
@@ -28,8 +28,8 @@ extra_rdoc_files: []
|
|
|
28
28
|
|
|
29
29
|
files:
|
|
30
30
|
- lib/gem_release/version.rb
|
|
31
|
-
- lib/rubygems/commands/gem_release.rb
|
|
32
31
|
- lib/rubygems_plugin.rb
|
|
32
|
+
- README.textile
|
|
33
33
|
has_rdoc: true
|
|
34
34
|
homepage: http://github.com/svenfuchs/gem-release
|
|
35
35
|
licenses: []
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
class Gem::Commands::ReleaseCommand < Gem::Command
|
|
2
|
-
def initialize
|
|
3
|
-
super 'release', 'Build a gem from a gemspec and push to rubygems.org'
|
|
4
|
-
end
|
|
5
|
-
|
|
6
|
-
def arguments # :nodoc:
|
|
7
|
-
"GEMSPEC_FILE optional (will use the first *.gemspec if not specified)"
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def usage # :nodoc:
|
|
11
|
-
"#{program_name} [GEMSPEC_FILE]"
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def execute
|
|
15
|
-
p args
|
|
16
|
-
exit
|
|
17
|
-
BuildCommand.new.execute
|
|
18
|
-
PushCommand.new.execute
|
|
19
|
-
end
|
|
20
|
-
end
|