gem-release 0.0.8 → 0.0.9
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/lib/gem_release/command_options.rb +16 -4
- data/lib/gem_release/version.rb +1 -1
- data/lib/rubygems/commands/{init_command.rb → bootstrap_command.rb} +19 -17
- data/lib/rubygems/commands/gemspec_command.rb +22 -0
- data/lib/rubygems/commands/release_command.rb +9 -8
- data/lib/rubygems/commands/tag_command.rb +2 -3
- data/lib/rubygems_plugin.rb +2 -1
- metadata +5 -4
@@ -1,11 +1,23 @@
|
|
1
1
|
module GemRelease
|
2
2
|
module CommandOptions
|
3
|
+
def initialize(*args)
|
4
|
+
@arguments = ''
|
5
|
+
super
|
6
|
+
end
|
7
|
+
|
3
8
|
def option(key, short, description)
|
4
|
-
|
5
|
-
default =
|
6
|
-
|
7
|
-
|
9
|
+
options = self.class::OPTIONS
|
10
|
+
default = options[key]
|
11
|
+
|
12
|
+
if String === default
|
13
|
+
long = "--#{key} #{key.to_s.upcase}"
|
14
|
+
args = [short, long, String, "#{description} (defaults to #{default})"]
|
15
|
+
else
|
16
|
+
long = "--[no-]#{key}"
|
17
|
+
args = [short, long, "#{description} (defaults to #{default})"]
|
8
18
|
end
|
19
|
+
|
20
|
+
add_option(*args) { |value, options| options[key] = value }
|
9
21
|
end
|
10
22
|
end
|
11
23
|
end
|
data/lib/gem_release/version.rb
CHANGED
@@ -1,26 +1,21 @@
|
|
1
1
|
require 'gem_release/helpers'
|
2
|
+
require 'rubygems/commands/gemspec_command'
|
2
3
|
|
3
|
-
class Gem::Commands::
|
4
|
-
include GemRelease
|
4
|
+
class Gem::Commands::BootstrapCommand < Gem::Command
|
5
|
+
include GemRelease, Gem::Commands
|
5
6
|
include Helpers, CommandOptions
|
6
7
|
|
7
|
-
OPTIONS = {
|
8
|
-
:gemspec => true,
|
9
|
-
:scaffold => false,
|
10
|
-
:github => false
|
11
|
-
}
|
8
|
+
OPTIONS = { :gemspec => true, :strategy => 'git', :scaffold => false, :github => false }
|
12
9
|
|
13
10
|
attr_reader :arguments, :usage
|
14
11
|
|
15
12
|
def initialize
|
16
|
-
super '
|
13
|
+
super 'bootstrap', 'Bootstrap a new gem source repository', OPTIONS
|
17
14
|
|
18
15
|
option :gemspec, '-g', 'Generate a .gemspec'
|
16
|
+
option :strategy, '-f', 'Strategy for collecting files [glob|git] in .gemspec'
|
19
17
|
option :scaffold, '-s', 'Scaffold lib/[gem_name]/version.rb README test/'
|
20
|
-
option :github, '-h', '
|
21
|
-
|
22
|
-
@arguments = ''
|
23
|
-
@usage = "#{program_name}"
|
18
|
+
option :github, '-h', 'Bootstrap a git repo, create on github and push'
|
24
19
|
end
|
25
20
|
|
26
21
|
def execute
|
@@ -29,21 +24,28 @@ class Gem::Commands::InitCommand < Gem::Command
|
|
29
24
|
create_repo if options[:github]
|
30
25
|
end
|
31
26
|
|
27
|
+
def write_gemspec
|
28
|
+
GemspecCommand.new.invoke
|
29
|
+
end
|
30
|
+
|
32
31
|
def write_scaffold
|
32
|
+
say 'scaffolding lib/ README test/'
|
33
33
|
`mkdir lib test`
|
34
34
|
`touch README`
|
35
|
-
|
35
|
+
write_version
|
36
36
|
end
|
37
|
-
|
38
|
-
def
|
39
|
-
|
37
|
+
|
38
|
+
def write_version
|
39
|
+
version = Version.new(options)
|
40
|
+
say "Creating #{version.filename}"
|
41
|
+
version.write
|
40
42
|
end
|
41
43
|
|
42
44
|
def create_repo
|
43
45
|
options = { :login => github_user, :token => github_token, :name => gem_name }
|
44
46
|
options = options.map { |name, value| "-F '#{name}=#{value}'" }.join(' ')
|
45
47
|
|
46
|
-
say '
|
48
|
+
say 'Bootstrapializing git repository'
|
47
49
|
`git init`
|
48
50
|
|
49
51
|
say 'Staging files'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'gem_release/helpers'
|
2
|
+
|
3
|
+
class Gem::Commands::GemspecCommand < Gem::Command
|
4
|
+
include GemRelease
|
5
|
+
include Helpers, CommandOptions
|
6
|
+
|
7
|
+
OPTIONS = { :strategy => 'git' }
|
8
|
+
|
9
|
+
attr_reader :arguments, :usage
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
super 'bootstrap', 'Bootstrap a new gem source repository', OPTIONS
|
13
|
+
|
14
|
+
option :strategy, '-f', 'Strategy for collecting files [glob|git] in .gemspec'
|
15
|
+
end
|
16
|
+
|
17
|
+
def execute
|
18
|
+
gemspec = Gemspec.new(options)
|
19
|
+
say "Creating #{gemspec.filename}"
|
20
|
+
gemspec.write
|
21
|
+
end
|
22
|
+
end
|
@@ -4,16 +4,17 @@ require 'rubygems/commands/tag_command'
|
|
4
4
|
require 'gem_release/helpers'
|
5
5
|
|
6
6
|
class Gem::Commands::ReleaseCommand < Gem::Command
|
7
|
-
include GemRelease
|
7
|
+
include GemRelease, Gem::Commands
|
8
|
+
include Helpers, CommandOptions
|
9
|
+
|
10
|
+
OPTIONS = { :tag => false }
|
8
11
|
|
9
12
|
attr_reader :arguments, :usage
|
10
13
|
|
11
14
|
def initialize
|
12
|
-
super
|
13
|
-
|
14
|
-
|
15
|
-
end
|
16
|
-
@arguments = "gemspec - optional gemspec file, will use the first *.gemspec if not specified"
|
15
|
+
super 'release', 'Build a gem from a gemspec and push to rubygems.org'
|
16
|
+
option :tag, '-t', 'Create a git tag and push --tags to origin'
|
17
|
+
@arguments = "gemspec - optional gemspec file name, will use the first *.gemspec if not specified"
|
17
18
|
@usage = "#{program_name} [gemspec]"
|
18
19
|
end
|
19
20
|
|
@@ -22,7 +23,7 @@ class Gem::Commands::ReleaseCommand < Gem::Command
|
|
22
23
|
push
|
23
24
|
remove
|
24
25
|
tag if options[:tag]
|
25
|
-
say "All
|
26
|
+
say "All is good, thanks buddy.\n"
|
26
27
|
end
|
27
28
|
|
28
29
|
protected
|
@@ -39,7 +40,7 @@ class Gem::Commands::ReleaseCommand < Gem::Command
|
|
39
40
|
`rm #{gem_filename}`
|
40
41
|
say "Deleting left over gem file #{gem_filename}"
|
41
42
|
end
|
42
|
-
|
43
|
+
|
43
44
|
def tag
|
44
45
|
TagCommand.new.invoke
|
45
46
|
end
|
@@ -1,14 +1,13 @@
|
|
1
1
|
require 'gem_release/helpers'
|
2
2
|
|
3
3
|
class Gem::Commands::TagCommand < Gem::Command
|
4
|
-
include GemRelease
|
4
|
+
include GemRelease
|
5
|
+
include Helpers, CommandOptions
|
5
6
|
|
6
7
|
attr_reader :arguments, :usage
|
7
8
|
|
8
9
|
def initialize
|
9
10
|
super 'tag', 'Create a git tag and push --tags to origin'
|
10
|
-
@arguments = ''
|
11
|
-
@usage = "#{program_name}"
|
12
11
|
end
|
13
12
|
|
14
13
|
def execute
|
data/lib/rubygems_plugin.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rubygems/command_manager'
|
2
2
|
require 'gem_release'
|
3
3
|
|
4
|
-
Gem::CommandManager.instance.register_command :
|
4
|
+
Gem::CommandManager.instance.register_command :gemspec
|
5
|
+
Gem::CommandManager.instance.register_command :bootstrap
|
5
6
|
Gem::CommandManager.instance.register_command :release
|
6
7
|
Gem::CommandManager.instance.register_command :tag
|
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
|
+
- 9
|
9
|
+
version: 0.0.9
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Sven Fuchs
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-04-
|
17
|
+
date: 2010-04-05 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
@@ -37,7 +37,8 @@ files:
|
|
37
37
|
- lib/gem_release/templates/gemspec.erb
|
38
38
|
- lib/gem_release/templates/version.erb
|
39
39
|
- lib/gem_release/version.rb
|
40
|
-
- lib/rubygems/commands/
|
40
|
+
- lib/rubygems/commands/bootstrap_command.rb
|
41
|
+
- lib/rubygems/commands/gemspec_command.rb
|
41
42
|
- lib/rubygems/commands/release_command.rb
|
42
43
|
- lib/rubygems/commands/tag_command.rb
|
43
44
|
- lib/rubygems_plugin.rb
|