rtask 009 → 010
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/History.txt +8 -0
- data/README.txt +15 -4
- data/bin/rtask +4 -1
- data/lib/rtask.rb +51 -16
- data/lib/rtask/gem.rb +22 -0
- data/lib/rtask/spec.rb +46 -0
- data/lib/rtask/ui.rb +10 -0
- data/lib/rtask/ui/curses.rb +327 -0
- data/rtask.gemspec +38 -0
- metadata +25 -7
data/History.txt
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
== 010: 2008-07-10
|
2
|
+
* yhara:
|
3
|
+
* patch for new rubyforge(1.0.0) interface
|
4
|
+
* check to exist zip file
|
5
|
+
* Keita Yamaguchi:
|
6
|
+
* added gem editor(curses version)
|
7
|
+
* removed gemify dependency
|
8
|
+
|
1
9
|
== 009: 2008-04-22
|
2
10
|
* Keita Yamaguchi:
|
3
11
|
* Fixed publish task
|
data/README.txt
CHANGED
@@ -4,15 +4,23 @@ Author:: Keita Yamaguchi(山口 慶太) <keita.yamaguchi@gmail.com>
|
|
4
4
|
Copyright:: © Keita Yamaguchi, 2008. All rights reserved.
|
5
5
|
License:: Ruby License
|
6
6
|
|
7
|
-
RTask provides easy way to release
|
7
|
+
RTask provides easy way to release RubyGems packages. This also provides useful Rake tasks for releasing packages and uploading documents.
|
8
8
|
|
9
9
|
== Usage
|
10
10
|
|
11
11
|
See {the document}[http://github.com/keita/rtask/wikis] for details.
|
12
12
|
|
13
|
+
=== Edit gemspec
|
14
|
+
|
15
|
+
RTask creates a gem by gemspec file.
|
16
|
+
|
17
|
+
% rtask
|
18
|
+
|
19
|
+
The gem generated by RTask contains files included in Manifest.txt.
|
20
|
+
|
13
21
|
=== How to release packages
|
14
22
|
|
15
|
-
First, you should setup rubyforge
|
23
|
+
First, you should setup rubyforge. Next, let's run rtask command.
|
16
24
|
|
17
25
|
% rtask -r
|
18
26
|
|
@@ -28,11 +36,14 @@ It's all.
|
|
28
36
|
|
29
37
|
% rtask -c
|
30
38
|
|
39
|
+
== Contributers
|
40
|
+
|
41
|
+
* yhara(http://github.com/yhara)
|
42
|
+
|
31
43
|
== Links
|
32
44
|
|
33
45
|
* RTask
|
34
46
|
* {RubyForge}[http://rubyforge.org/projects/rtask/]
|
35
47
|
* {GitHub}[http://github.com/keita/rtask/tree/master]
|
36
|
-
*
|
37
|
-
* author's blog(written in Japanese)
|
48
|
+
* Author's blog(written in Japanese)
|
38
49
|
* {¬¬日常日記}[http://d.hatena.ne.jp/keita_yamaguchi/]
|
data/bin/rtask
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require "rubygems"
|
4
4
|
require "rtask"
|
5
|
+
require "rtask/ui"
|
5
6
|
require "optparse"
|
6
7
|
|
7
8
|
$task = RTask.new(:use => :all)
|
@@ -62,5 +63,7 @@ OptionParser.new(nil, 24) do |opt|
|
|
62
63
|
puts RTask::VERSION; exit
|
63
64
|
end
|
64
65
|
|
65
|
-
opt.parse
|
66
|
+
opt.parse(ARGV)
|
66
67
|
end
|
68
|
+
|
69
|
+
RTask::UI.start($task, :curses) unless ARGV.size > 0
|
data/lib/rtask.rb
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'rubyforge'
|
3
|
-
require 'gemify'
|
4
3
|
|
5
|
-
# == Usage
|
6
|
-
#
|
7
|
-
# % gemify
|
8
|
-
#
|
9
|
-
# Second, add RTask in your Rakefile:
|
4
|
+
# == Usage for Rake users
|
5
|
+
# RTask in your Rakefile:
|
10
6
|
# require 'rubygems'
|
11
7
|
# require 'rtask'
|
12
8
|
# RTask.new
|
@@ -24,18 +20,20 @@ require 'gemify'
|
|
24
20
|
# rake tgz # Create the tgz package
|
25
21
|
#
|
26
22
|
class RTask
|
27
|
-
VERSION = "
|
23
|
+
VERSION = "010"
|
28
24
|
MESSAGE = Hash.new
|
29
25
|
|
30
|
-
attr_reader :project, :package, :version
|
26
|
+
attr_reader :spec, :project, :package, :version
|
31
27
|
|
32
28
|
def initialize(config={:use => :all})
|
29
|
+
@spec = init_spec
|
30
|
+
@spec.files = manifest
|
33
31
|
@rubyforge = ::RubyForge.new
|
32
|
+
@rubyforge.configure
|
34
33
|
@user = @rubyforge.userconfig
|
35
|
-
@
|
36
|
-
@
|
37
|
-
@
|
38
|
-
@version = @gemify[:version]
|
34
|
+
@project = @spec.rubyforge_project
|
35
|
+
@package = @spec.name
|
36
|
+
@version = @spec.version
|
39
37
|
@lib_version = config[:version]
|
40
38
|
if config.has_key?(:use)
|
41
39
|
list = config[:use]
|
@@ -45,6 +43,40 @@ class RTask
|
|
45
43
|
yield self if block_given?
|
46
44
|
end
|
47
45
|
|
46
|
+
# Initialize gem specification.
|
47
|
+
def init_spec
|
48
|
+
# if .rtask exists
|
49
|
+
if File.exist?(".rtask")
|
50
|
+
return YAML.load(File.read(".rtask"))
|
51
|
+
end
|
52
|
+
|
53
|
+
# if gemspec exists
|
54
|
+
Dir.glob("*.gemspec") do |spec|
|
55
|
+
return RTask::Spec.new(::Gem::Specification.load(spec))
|
56
|
+
end
|
57
|
+
|
58
|
+
# if .gemified exists
|
59
|
+
if File.exist?(".gemified")
|
60
|
+
data = YAML.load(File.read(".gemified"))
|
61
|
+
spec = ::Gem::Specification.new
|
62
|
+
spec.summary = data[:summary]
|
63
|
+
spec.email = data[:email]
|
64
|
+
spec.name = data[:name]
|
65
|
+
spec.homepage = data[:homepage]
|
66
|
+
spec.version = data[:version]
|
67
|
+
spec.rubyforge_project = data[:rubyforge_project]
|
68
|
+
# assume gemify's "dependencies" are runtime dependencies
|
69
|
+
data[:dependencies].each do |dep|
|
70
|
+
spec.add_runtime_dependency dep
|
71
|
+
end
|
72
|
+
spec.authors << data[:author]
|
73
|
+
return RTask::Spec.new(spec)
|
74
|
+
end
|
75
|
+
|
76
|
+
# no specification
|
77
|
+
return RTask::Spec.new
|
78
|
+
end
|
79
|
+
|
48
80
|
# define task
|
49
81
|
def self.define_task(description, rule)
|
50
82
|
name = rule
|
@@ -120,9 +152,9 @@ class RTask
|
|
120
152
|
gem = filename + ".gem"
|
121
153
|
tgz = filename + ".tgz"
|
122
154
|
zip = filename + ".zip"
|
123
|
-
if File.exist?(gem) and File.exist?(tgz)
|
155
|
+
if File.exist?(gem) and File.exist?(tgz) and File.exist?(zip)
|
124
156
|
@rubyforge.add_release @project, @package, @version, gem, tgz, zip
|
125
|
-
puts "Released #{gem} and #{
|
157
|
+
puts "Released #{gem}, #{tgz}, and #{zip}"
|
126
158
|
else
|
127
159
|
puts "Please make gem and tgz files first: rake gem tgz"
|
128
160
|
exit
|
@@ -136,7 +168,7 @@ class RTask
|
|
136
168
|
|
137
169
|
# Task for creating gem
|
138
170
|
def gem
|
139
|
-
|
171
|
+
Gem.build(@spec)
|
140
172
|
end
|
141
173
|
|
142
174
|
define_task "Create the gem package", :gem
|
@@ -168,7 +200,7 @@ class RTask
|
|
168
200
|
private
|
169
201
|
|
170
202
|
def manifest
|
171
|
-
manifest = Dir.glob("*
|
203
|
+
manifest = Dir.glob("*manifest*", File::FNM_CASEFOLD).first
|
172
204
|
unless manifest
|
173
205
|
puts "Please make manifest"
|
174
206
|
exit
|
@@ -176,3 +208,6 @@ class RTask
|
|
176
208
|
File.read(manifest).split("\n")
|
177
209
|
end
|
178
210
|
end
|
211
|
+
|
212
|
+
require "rtask/spec"
|
213
|
+
require "rtask/gem"
|
data/lib/rtask/gem.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require "rubygems/specification"
|
2
|
+
|
3
|
+
class RTask
|
4
|
+
module Gem
|
5
|
+
def self.build(spec)
|
6
|
+
::Gem::Builder.new(spec).build
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.gemspec(spec)
|
10
|
+
spec.gemspec
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# for showing gem specs
|
16
|
+
module Gem
|
17
|
+
class Dependency
|
18
|
+
def to_s
|
19
|
+
@name.to_s
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/rtask/spec.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
require "delegate"
|
2
|
+
|
3
|
+
class RTask
|
4
|
+
class Spec < DelegateClass(::Gem::Specification)
|
5
|
+
def initialize(gem_spec = ::Gem::Specification.new)
|
6
|
+
super(gem_spec)
|
7
|
+
end
|
8
|
+
|
9
|
+
def attributes
|
10
|
+
__getobj__.class.attribute_names
|
11
|
+
end
|
12
|
+
|
13
|
+
def bool_attributes
|
14
|
+
[:has_rdoc]
|
15
|
+
end
|
16
|
+
|
17
|
+
def standard
|
18
|
+
__getobj__.class.required_attributes +
|
19
|
+
[:authors, :email, :homepage, :rubyforge_project, :description,
|
20
|
+
:has_rdoc, :dependencies ] -
|
21
|
+
[:rubygems_version, :specification_version, :date, :require_paths]
|
22
|
+
end
|
23
|
+
|
24
|
+
def required
|
25
|
+
::Gem::Specification.attribute_names.each do |name|
|
26
|
+
::Gem::Specification.required_attribute?()
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def array
|
31
|
+
::Gem::Specification.array_attributes
|
32
|
+
end
|
33
|
+
|
34
|
+
def type_of(name)
|
35
|
+
if array.include?(name)
|
36
|
+
return :array
|
37
|
+
elsif bool.include?(name)
|
38
|
+
return :bool
|
39
|
+
else
|
40
|
+
return :string
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
alias :bool :bool_attributes
|
45
|
+
end
|
46
|
+
end
|
data/lib/rtask/ui.rb
ADDED
@@ -0,0 +1,327 @@
|
|
1
|
+
require "delegate"
|
2
|
+
require "cursesx"
|
3
|
+
require "readline"
|
4
|
+
require "termios"
|
5
|
+
|
6
|
+
module RTask::UI
|
7
|
+
class CursesInterface
|
8
|
+
include ::Curses
|
9
|
+
|
10
|
+
def initialize(rtask)
|
11
|
+
@rtask = rtask
|
12
|
+
end
|
13
|
+
|
14
|
+
def start
|
15
|
+
# init curses
|
16
|
+
init_screen; start_color; cbreak; noecho; nl
|
17
|
+
|
18
|
+
# init color
|
19
|
+
define_color :banner, :white, :blue
|
20
|
+
define_color :attribute, :blue, :black
|
21
|
+
define_color :current_position, :red, :black
|
22
|
+
define_color :required, :red, :black
|
23
|
+
define_color :usage, :white, :blue
|
24
|
+
|
25
|
+
# start the main window
|
26
|
+
@main = stdscr
|
27
|
+
@main.instance_variable_set(:@spec, @rtask.spec)
|
28
|
+
@main.extend Main
|
29
|
+
@main.start
|
30
|
+
end
|
31
|
+
|
32
|
+
module Main
|
33
|
+
attr_reader :spec
|
34
|
+
|
35
|
+
def self.extended(obj)
|
36
|
+
obj.instance_eval do
|
37
|
+
@awin = subwin maxy-7, maxx, 4, 0, Attribute
|
38
|
+
@bwin = subwin 4, maxx, 0, 0, Banner
|
39
|
+
@dwin = subwin 1, maxx, maxy-1, 0, Display
|
40
|
+
@uwin = subwin 1, maxx, maxy-2, 0, Usage
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# Start to render main window.
|
45
|
+
def start
|
46
|
+
draw; @awin.start
|
47
|
+
end
|
48
|
+
|
49
|
+
# Draw windows.
|
50
|
+
def draw
|
51
|
+
clear; children.each {|win| win.draw }
|
52
|
+
end
|
53
|
+
|
54
|
+
# Show the message.
|
55
|
+
def message(msg); @dwin << msg; end
|
56
|
+
|
57
|
+
# Input.
|
58
|
+
def input(msg, val=""); @dwin.input(msg, val); end
|
59
|
+
|
60
|
+
# Wait to input a character.
|
61
|
+
def input_char(msg); @dwin.input_char(msg); end
|
62
|
+
end
|
63
|
+
|
64
|
+
# Hedding banner.
|
65
|
+
module Banner
|
66
|
+
def draw
|
67
|
+
clear
|
68
|
+
attron(color(:banner)) do
|
69
|
+
self << "RTask: gemspec editor".center(maxx)
|
70
|
+
end
|
71
|
+
setpos(2, 0)
|
72
|
+
addstr "Edit .gemspec"
|
73
|
+
refresh
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
# Display window for showing messages.
|
78
|
+
module Display
|
79
|
+
def draw; clear; end
|
80
|
+
|
81
|
+
# Show the message.
|
82
|
+
def <<(msg)
|
83
|
+
clear
|
84
|
+
setpos(0, 0)
|
85
|
+
addstr(msg.to_s.ljust(maxx))
|
86
|
+
refresh
|
87
|
+
end
|
88
|
+
|
89
|
+
# Wait to input a line.
|
90
|
+
def input(msg, val = "")
|
91
|
+
clear
|
92
|
+
setpos(0, 0)
|
93
|
+
refresh
|
94
|
+
|
95
|
+
# setup io config
|
96
|
+
tio = Termios.getattr(STDIN)
|
97
|
+
tio.lflag |= Termios::ECHO
|
98
|
+
Termios.setattr(STDIN, Termios::TCSANOW, tio)
|
99
|
+
|
100
|
+
# read
|
101
|
+
Readline::HISTORY << val.to_s
|
102
|
+
res = Readline.readline("> #{msg}: ")
|
103
|
+
|
104
|
+
# restore io config
|
105
|
+
tio.lflag &= ~Termios::ECHO
|
106
|
+
Termios.setattr(STDIN, Termios::TCSANOW, tio)
|
107
|
+
|
108
|
+
return res
|
109
|
+
end
|
110
|
+
|
111
|
+
# Wait to input a character.
|
112
|
+
def input_char(msg)
|
113
|
+
clear
|
114
|
+
setpos(0, 0)
|
115
|
+
addstr("> #{msg}: ")
|
116
|
+
refresh
|
117
|
+
return echo { getch }
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
# Attribute list window.
|
122
|
+
module Attribute
|
123
|
+
|
124
|
+
def self.extended(obj)
|
125
|
+
obj.instance_eval do
|
126
|
+
# doesn't show all
|
127
|
+
@show_all = false
|
128
|
+
# gem spec
|
129
|
+
@spec = parent.spec
|
130
|
+
# displayed top item
|
131
|
+
@top = 0
|
132
|
+
# selected position
|
133
|
+
@position = 0
|
134
|
+
# width
|
135
|
+
@key_width = @spec.attributes.inject(0) do |m, n|
|
136
|
+
m > n.to_s.size ? m : n.to_s.size
|
137
|
+
end
|
138
|
+
# keypad is ok
|
139
|
+
keypad(true)
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def attributes
|
144
|
+
@show_all ? @spec.attributes : @spec.standard
|
145
|
+
end
|
146
|
+
|
147
|
+
def draw
|
148
|
+
clear
|
149
|
+
@top.upto(@top+maxy-1) do |idx|
|
150
|
+
break unless attributes[idx]
|
151
|
+
setpos(idx - @top, 0)
|
152
|
+
show_attribute(attributes[idx], @position == idx)
|
153
|
+
end
|
154
|
+
refresh
|
155
|
+
end
|
156
|
+
|
157
|
+
def start
|
158
|
+
loop do
|
159
|
+
# handles input
|
160
|
+
case c = getch
|
161
|
+
when ?a; toogle_show_all
|
162
|
+
when ?u, ::Curses::KEY_UP ; up
|
163
|
+
when ?d, ::Curses::KEY_DOWN ; down
|
164
|
+
when ?c, ::Curses::KEY_CTRL_J ; change
|
165
|
+
when ?b; build_gem
|
166
|
+
when ?s; save
|
167
|
+
when ?i; IncludedFiles.new(parent.files)
|
168
|
+
when ?q; quit
|
169
|
+
else
|
170
|
+
parent.message "[" + ::Curses.keyname(c).to_s + "]" if $DEBUG
|
171
|
+
end
|
172
|
+
|
173
|
+
# redraw
|
174
|
+
draw
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
# Move up.
|
179
|
+
def up
|
180
|
+
if @position != 0
|
181
|
+
@position -= 1
|
182
|
+
@top -= 1 if @top == @position + 1
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
# Move down.
|
187
|
+
def down
|
188
|
+
if @position < attributes.size - 1
|
189
|
+
@position += 1
|
190
|
+
@top += 1 if @position == @top + maxy
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
# Show all items.
|
195
|
+
def toogle_show_all
|
196
|
+
@show_all = !@show_all
|
197
|
+
@top, @position = 0, 0
|
198
|
+
end
|
199
|
+
|
200
|
+
# Build the gem.
|
201
|
+
def build_gem
|
202
|
+
unless RTask::Gem.build(@spec)
|
203
|
+
parent.message "You need to fill out all the required fields"
|
204
|
+
else
|
205
|
+
gemname = "#{@spec.name}-#{@spec.version}.gem"
|
206
|
+
parent.message("Created " + gemname)
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
def save
|
211
|
+
specname = "#{@spec.name}.gemspec"
|
212
|
+
|
213
|
+
# check required attrs
|
214
|
+
if Gem::Specification.required_attributes.any? do |sym|
|
215
|
+
@spec.send(sym).nil?
|
216
|
+
end
|
217
|
+
parent.message "You need to fill out all the required fields"
|
218
|
+
else
|
219
|
+
File.open(specname, "w") do |file|
|
220
|
+
file.write @spec.to_ruby
|
221
|
+
end
|
222
|
+
parent.message "Saved #{specname}"
|
223
|
+
@changed = false
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
def quit
|
228
|
+
if @changed
|
229
|
+
res = ::Curses.keyname(parent.input_char(<<-__Q__.chomp))
|
230
|
+
Changes are not saved. Quit? (y or n)
|
231
|
+
__Q__
|
232
|
+
return unless res.upcase == "Y"
|
233
|
+
end
|
234
|
+
exit
|
235
|
+
end
|
236
|
+
|
237
|
+
def change
|
238
|
+
name = attributes[@position]
|
239
|
+
val = parent.spec.send(name)
|
240
|
+
res = case @spec.type_of(name)
|
241
|
+
when :array
|
242
|
+
msg = "#{name.to_s.capitalize}(Split by ',')"
|
243
|
+
(parent.input msg, val.join(",")).strip.split(",")
|
244
|
+
when :bool
|
245
|
+
!val
|
246
|
+
when :string
|
247
|
+
parent.input name.to_s.capitalize, val
|
248
|
+
end
|
249
|
+
if name == :dependencies
|
250
|
+
parent.spec.dependencies.clear
|
251
|
+
res.each {|dep| parent.spec.add_runtime_dependency dep}
|
252
|
+
else
|
253
|
+
parent.spec.send("#{name}=", res)
|
254
|
+
end
|
255
|
+
parent.message "Updated '#{name}'"
|
256
|
+
@changed = true
|
257
|
+
end
|
258
|
+
|
259
|
+
def show_attribute(name, highlight)
|
260
|
+
val = @spec.send(name)
|
261
|
+
|
262
|
+
# star
|
263
|
+
attron(highlight ? ::Curses::A_UNDERLINE : 0)
|
264
|
+
addstr " * "
|
265
|
+
addstr name.to_s
|
266
|
+
key_width = name.to_s.size
|
267
|
+
|
268
|
+
# required
|
269
|
+
if Gem::Specification.required_attribute?(name) and val.nil?
|
270
|
+
attron(color(:required)){ addstr " (required)" }
|
271
|
+
key_width += 11
|
272
|
+
end
|
273
|
+
|
274
|
+
# padding + separator
|
275
|
+
addstr " ".rjust(@key_width - key_width + 1)
|
276
|
+
|
277
|
+
# value
|
278
|
+
case val
|
279
|
+
when Array
|
280
|
+
addstr val.join(", ")
|
281
|
+
else
|
282
|
+
addstr val.to_s
|
283
|
+
end unless val.nil?
|
284
|
+
|
285
|
+
attroff(highlight ? ::Curses::A_UNDERLINE : 0)
|
286
|
+
end
|
287
|
+
end
|
288
|
+
|
289
|
+
module Usage
|
290
|
+
def draw
|
291
|
+
clear
|
292
|
+
setpos(0, 0)
|
293
|
+
attron(color(:usage)) do
|
294
|
+
addstr " q) Quit, s) Save, b) Build the gem, h) Help".ljust(maxx)
|
295
|
+
end
|
296
|
+
refresh
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
300
|
+
class IncludedFiles < DelegateClass(::Curses::Window)
|
301
|
+
def initialize(files)
|
302
|
+
@files = files
|
303
|
+
window = ::Curses.stdscr
|
304
|
+
window.clear
|
305
|
+
super(window.subwin(window.maxy, window.maxx, 0, 0))
|
306
|
+
draw
|
307
|
+
getch
|
308
|
+
close
|
309
|
+
MAIN_WINDOW.draw
|
310
|
+
end
|
311
|
+
|
312
|
+
def draw
|
313
|
+
setpos(0, 0)
|
314
|
+
standout
|
315
|
+
addstr "Manifest(included files)".center(maxx)
|
316
|
+
standend
|
317
|
+
@files.each_with_index do |file, idx|
|
318
|
+
setpos(idx+1, 0)
|
319
|
+
addstr file
|
320
|
+
end
|
321
|
+
refresh
|
322
|
+
end
|
323
|
+
end
|
324
|
+
|
325
|
+
end
|
326
|
+
end
|
327
|
+
|
data/rtask.gemspec
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = %q{rtask}
|
3
|
+
s.version = "010"
|
4
|
+
|
5
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
6
|
+
s.authors = ["Keita Yamaguchi"]
|
7
|
+
s.date = %q{2008-07-11}
|
8
|
+
s.email = %q{keita.yamaguchi@gmail.com}
|
9
|
+
s.files = ["History.txt", "README.txt", "License.txt", "Rakefile", "bin/rtask", "lib/rtask.rb", "lib/rtask/gem.rb", "lib/rtask/spec.rb", "lib/rtask/ui.rb", "lib/rtask/ui/curses.rb", "rtask.gemspec", "setup.rb"]
|
10
|
+
s.has_rdoc = true
|
11
|
+
s.homepage = %q{http://github.com/keita/rtask/tree/master}
|
12
|
+
s.require_paths = ["lib"]
|
13
|
+
s.rubyforge_project = %q{rtask}
|
14
|
+
s.rubygems_version = %q{1.2.0}
|
15
|
+
s.summary = %q{RTask handles tasks for releasing gem packages.}
|
16
|
+
|
17
|
+
if s.respond_to? :specification_version then
|
18
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
19
|
+
s.specification_version = 2
|
20
|
+
|
21
|
+
if current_version >= 3 then
|
22
|
+
s.add_runtime_dependency(%q<cursesx>, [">= 0"])
|
23
|
+
s.add_runtime_dependency(%q<rubyforge>, [">= 0"])
|
24
|
+
s.add_runtime_dependency(%q<rubyzip>, [">= 0"])
|
25
|
+
s.add_runtime_dependency(%q<termios>, [">= 0"])
|
26
|
+
else
|
27
|
+
s.add_dependency(%q<cursesx>, [">= 0"])
|
28
|
+
s.add_dependency(%q<rubyforge>, [">= 0"])
|
29
|
+
s.add_dependency(%q<rubyzip>, [">= 0"])
|
30
|
+
s.add_dependency(%q<termios>, [">= 0"])
|
31
|
+
end
|
32
|
+
else
|
33
|
+
s.add_dependency(%q<cursesx>, [">= 0"])
|
34
|
+
s.add_dependency(%q<rubyforge>, [">= 0"])
|
35
|
+
s.add_dependency(%q<rubyzip>, [">= 0"])
|
36
|
+
s.add_dependency(%q<termios>, [">= 0"])
|
37
|
+
end
|
38
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rtask
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: "010"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Keita Yamaguchi
|
@@ -9,11 +9,12 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-07-11 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: cursesx
|
17
|
+
type: :runtime
|
17
18
|
version_requirement:
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
19
20
|
requirements:
|
@@ -23,6 +24,7 @@ dependencies:
|
|
23
24
|
version:
|
24
25
|
- !ruby/object:Gem::Dependency
|
25
26
|
name: rubyforge
|
27
|
+
type: :runtime
|
26
28
|
version_requirement:
|
27
29
|
version_requirements: !ruby/object:Gem::Requirement
|
28
30
|
requirements:
|
@@ -32,6 +34,17 @@ dependencies:
|
|
32
34
|
version:
|
33
35
|
- !ruby/object:Gem::Dependency
|
34
36
|
name: rubyzip
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: "0"
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: termios
|
47
|
+
type: :runtime
|
35
48
|
version_requirement:
|
36
49
|
version_requirements: !ruby/object:Gem::Requirement
|
37
50
|
requirements:
|
@@ -41,8 +54,8 @@ dependencies:
|
|
41
54
|
version:
|
42
55
|
description:
|
43
56
|
email: keita.yamaguchi@gmail.com
|
44
|
-
executables:
|
45
|
-
|
57
|
+
executables: []
|
58
|
+
|
46
59
|
extensions: []
|
47
60
|
|
48
61
|
extra_rdoc_files: []
|
@@ -54,6 +67,11 @@ files:
|
|
54
67
|
- Rakefile
|
55
68
|
- bin/rtask
|
56
69
|
- lib/rtask.rb
|
70
|
+
- lib/rtask/gem.rb
|
71
|
+
- lib/rtask/spec.rb
|
72
|
+
- lib/rtask/ui.rb
|
73
|
+
- lib/rtask/ui/curses.rb
|
74
|
+
- rtask.gemspec
|
57
75
|
- setup.rb
|
58
76
|
has_rdoc: true
|
59
77
|
homepage: http://github.com/keita/rtask/tree/master
|
@@ -77,9 +95,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
95
|
requirements: []
|
78
96
|
|
79
97
|
rubyforge_project: rtask
|
80
|
-
rubygems_version: 1.
|
98
|
+
rubygems_version: 1.2.0
|
81
99
|
signing_key:
|
82
100
|
specification_version: 2
|
83
|
-
summary: RTask
|
101
|
+
summary: RTask handles tasks for releasing gem packages.
|
84
102
|
test_files: []
|
85
103
|
|