sr-mg 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.mkd +51 -0
- data/lib/mg.rb +38 -32
- data/test/mg_test.rb +13 -12
- metadata +4 -3
data/README.mkd
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
mg
|
2
|
+
==
|
3
|
+
|
4
|
+
A a minimalist way to create [gems](http://rubygems.org) and publish
|
5
|
+
them to [Rubyforge](http://rubyforge.org) using
|
6
|
+
[Rake](http://rake.rubyforge.org).
|
7
|
+
|
8
|
+
Usage
|
9
|
+
-----
|
10
|
+
|
11
|
+
In your Rakefile:
|
12
|
+
|
13
|
+
require "mg"
|
14
|
+
|
15
|
+
MG.new("foo.gemspec")
|
16
|
+
|
17
|
+
The following tasks are now available:
|
18
|
+
|
19
|
+
rake install
|
20
|
+
Build and install as local gem
|
21
|
+
|
22
|
+
rake package
|
23
|
+
Build gem tarball into dist/
|
24
|
+
|
25
|
+
rake rubyforge
|
26
|
+
Publish the current release on Rubyforge
|
27
|
+
|
28
|
+
rake rubyforge:gem
|
29
|
+
Publish gem and tarball to rubyforge
|
30
|
+
|
31
|
+
rake rubyforge:git
|
32
|
+
Push to gitosis@rubyforge.org:foo.git
|
33
|
+
|
34
|
+
Licence
|
35
|
+
-------
|
36
|
+
|
37
|
+
Written by [Ryan Tomayko](http://tomayko.com/about), extracted
|
38
|
+
by [Simon Rozet](http://atonie.org).
|
39
|
+
|
40
|
+
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
41
|
+
Version 2, December 2004
|
42
|
+
|
43
|
+
Copyright (C) 2009 Ryan Tomayko and Simon Rozet
|
44
|
+
Everyone is permitted to copy and distribute verbatim or modified
|
45
|
+
copies of this license document, and changing it is allowed as long
|
46
|
+
as the name is changed.
|
47
|
+
|
48
|
+
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
49
|
+
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
50
|
+
|
51
|
+
0. You just DO WHAT THE FUCK YOU WANT TO.
|
data/lib/mg.rb
CHANGED
@@ -11,22 +11,26 @@ class MG < Rake::TaskLib
|
|
11
11
|
define_tasks
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
Thread.new { spec = eval("$SAFE = 3\n#{data}") }.join
|
22
|
-
spec
|
23
|
-
end
|
24
|
-
end
|
14
|
+
def name
|
15
|
+
spec.name
|
16
|
+
end
|
17
|
+
|
18
|
+
def group
|
19
|
+
spec.rubyforge_project
|
20
|
+
end
|
25
21
|
|
26
|
-
|
27
|
-
|
22
|
+
# Load the gemspec using the same limitations as github
|
23
|
+
def spec
|
24
|
+
@spec ||= begin
|
25
|
+
require "rubygems/specification"
|
26
|
+
data = File.read(gemspec)
|
27
|
+
spec = nil
|
28
|
+
Thread.new { spec = eval("$SAFE = 3\n#{data}") }.join
|
29
|
+
spec
|
28
30
|
end
|
31
|
+
end
|
29
32
|
|
33
|
+
private
|
30
34
|
def package(ext="")
|
31
35
|
"dist/#{spec.name}-#{spec.version}" + ext
|
32
36
|
end
|
@@ -40,25 +44,6 @@ class MG < Rake::TaskLib
|
|
40
44
|
sh "gem install #{package(".gem")}"
|
41
45
|
end
|
42
46
|
|
43
|
-
desc "Publish the current release on Rubyforge"
|
44
|
-
task :rubyforge => ["rubyforge:gem", "rubyforge:tarball", "rubyforge:git"]
|
45
|
-
|
46
|
-
namespace :rubyforge do
|
47
|
-
desc "Publish gem and tarball to rubyforge"
|
48
|
-
task :gem => package(".gem") do
|
49
|
-
sh "rubyforge add_release #{name} #{name} #{spec.version} #{package('.gem')}"
|
50
|
-
end
|
51
|
-
|
52
|
-
task :tarball => package(".tar.gz") do
|
53
|
-
sh "rubyforge add_file #{name} #{name} #{spec.version} #{package('.tar.gz')}"
|
54
|
-
end
|
55
|
-
|
56
|
-
desc "Push to gitosis@rubyforge.org:#{name}.git"
|
57
|
-
task :git do
|
58
|
-
sh "git push gitosis@rubyforge.org:#{name}.git master"
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
47
|
desc "Build gem tarball into dist/"
|
63
48
|
task :package => %w(.gem .tar.gz).map { |ext| package(ext) }
|
64
49
|
|
@@ -75,5 +60,26 @@ class MG < Rake::TaskLib
|
|
75
60
|
sh "gem build #{name}.gemspec"
|
76
61
|
mv File.basename(f.name), f.name
|
77
62
|
end
|
63
|
+
|
64
|
+
if group
|
65
|
+
desc "Publish the current release on Rubyforge"
|
66
|
+
task :rubyforge => ["rubyforge:gem", "rubyforge:tarball", "rubyforge:git"]
|
67
|
+
|
68
|
+
namespace :rubyforge do
|
69
|
+
desc "Publish gem and tarball to rubyforge"
|
70
|
+
task :gem => package(".gem") do
|
71
|
+
sh "rubyforge add_release #{group} #{name} #{spec.version} #{package('.gem')}"
|
72
|
+
end
|
73
|
+
|
74
|
+
task :tarball => package(".tar.gz") do
|
75
|
+
sh "rubyforge add_file #{group} #{name} #{spec.version} #{package('.tar.gz')}"
|
76
|
+
end
|
77
|
+
|
78
|
+
desc "Push to gitosis@rubyforge.org:#{name}.git"
|
79
|
+
task :git do
|
80
|
+
sh "git push gitosis@rubyforge.org:#{name}.git master"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
78
84
|
end
|
79
85
|
end
|
data/test/mg_test.rb
CHANGED
@@ -2,25 +2,26 @@ require "test/unit"
|
|
2
2
|
require File.dirname(__FILE__) + "/../lib/mg"
|
3
3
|
|
4
4
|
class MGTest < Test::Unit::TestCase
|
5
|
-
include Rake
|
6
|
-
|
7
5
|
def setup
|
8
|
-
|
6
|
+
MG.new(File.dirname(__FILE__) + "/../mg.gemspec")
|
9
7
|
end
|
10
8
|
|
11
9
|
def test_tasks
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
10
|
+
assert task_defined?(:install)
|
11
|
+
assert task_defined?(:package)
|
12
|
+
assert task_defined?("dist/mg-0.0.2.gem")
|
13
|
+
assert task_defined?("dist/mg-0.0.2.tar.gz")
|
14
|
+
assert ! task_defined?(:rubyforge)
|
15
|
+
end
|
17
16
|
|
18
|
-
|
19
|
-
|
17
|
+
def test_with_rubyforge_project
|
18
|
+
# TODO assert_task_defined :rubyforge
|
19
|
+
# TODO assert_equal ["rubyforge:gem", "rubyforge:tarball", "rubyforge:git"],
|
20
|
+
# TODO Rake::Task["rubyforge"].prerequisites
|
20
21
|
end
|
21
22
|
|
22
23
|
private
|
23
|
-
def
|
24
|
-
|
24
|
+
def task_defined?(task_name)
|
25
|
+
Rake::Task.task_defined?(task_name)
|
25
26
|
end
|
26
27
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sr-mg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simon Rozet
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-03-
|
12
|
+
date: 2009-03-18 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -31,6 +31,7 @@ extensions: []
|
|
31
31
|
extra_rdoc_files: []
|
32
32
|
|
33
33
|
files:
|
34
|
+
- README.mkd
|
34
35
|
- lib/mg.rb
|
35
36
|
- test/mg_test.rb
|
36
37
|
has_rdoc: false
|
@@ -58,6 +59,6 @@ rubyforge_project:
|
|
58
59
|
rubygems_version: 1.2.0
|
59
60
|
signing_key:
|
60
61
|
specification_version: 2
|
61
|
-
summary:
|
62
|
+
summary: Minimalist Gem
|
62
63
|
test_files:
|
63
64
|
- test/mg_test.rb
|