revolt 0.8.0 → 0.8.1
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 +11 -5
- data/bin/rv_delete_levels.rb +5 -2
- data/bin/rv_find_levels.rb +15 -1
- data/bin/rv_info_levels.rb +5 -2
- data/bin/rv_install_levels.rb +0 -1
- data/bin/rv_package_levels.rb +23 -5
- data/examples/package_all_reverse_custom.rb +12 -0
- data/lib/revolt/level.rb +13 -3
- data/lib/revolt/levels.rb +5 -5
- data/lib/revolt/util/common_cmd_args.rb +32 -0
- data/lib/revolt.rb +1 -1
- data/test/tc_level.rb +2 -0
- metadata +3 -2
data/README
CHANGED
@@ -132,6 +132,11 @@ the track you want to find. For examples:
|
|
132
132
|
|
133
133
|
rv_find_levels.rb temple
|
134
134
|
|
135
|
+
If you want to find a level by it's exact folder name, you can
|
136
|
+
prepend with ':' (or use the --id switch), for example:
|
137
|
+
|
138
|
+
rv_find_levels.rb :temple
|
139
|
+
|
135
140
|
That would search for all levels whose name contains 'temple'
|
136
141
|
(case insensitive). Another more complex example is to find
|
137
142
|
all custom tracks that can be raced in reverse mode that
|
@@ -172,14 +177,15 @@ For more information and options:
|
|
172
177
|
|
173
178
|
|
174
179
|
=== rv_package_levels.rb
|
175
|
-
Creates packages of levels. The parameters are
|
176
|
-
|
177
|
-
|
178
|
-
|
180
|
+
Creates packages of levels. The parameters are, as
|
181
|
+
in the above matching level names. Use the ':' in
|
182
|
+
front to pack using folder names of the levels. From
|
183
|
+
each level a separate package is created. Matching
|
184
|
+
options can be used with -m as with rv_find_levels.rb
|
179
185
|
|
180
186
|
Example:
|
181
187
|
|
182
|
-
rv_package_levels_level.rb rvt chilled
|
188
|
+
rv_package_levels_level.rb :rvt :chilled
|
183
189
|
|
184
190
|
This would create rvt.zip and chilled.zip of corresponding
|
185
191
|
levels.
|
data/bin/rv_delete_levels.rb
CHANGED
@@ -48,6 +48,7 @@ class CmdArguments < Hash
|
|
48
48
|
|
49
49
|
self[:base] = ReVolt::Info::path
|
50
50
|
self[:force] = false
|
51
|
+
self[:default_match_with] = :name
|
51
52
|
|
52
53
|
matchstrs = []
|
53
54
|
opts = OptionParser.new do |opts|
|
@@ -70,6 +71,8 @@ class CmdArguments < Hash
|
|
70
71
|
on_match(opts) do |value|
|
71
72
|
matchstrs << value
|
72
73
|
end
|
74
|
+
on_default_match_modifier(opts)
|
75
|
+
|
73
76
|
opts.on('-d', '--debug',
|
74
77
|
'Outputs debug information') do
|
75
78
|
self[:debug] = true
|
@@ -93,8 +96,8 @@ class CmdArguments < Hash
|
|
93
96
|
|
94
97
|
opts.parse!(cmd)
|
95
98
|
|
96
|
-
cmd
|
97
|
-
matchstrs <<
|
99
|
+
name_or_id_matches(cmd) do |m|
|
100
|
+
matchstrs << m
|
98
101
|
end
|
99
102
|
|
100
103
|
# If input file not specified, at least start date is required
|
data/bin/rv_find_levels.rb
CHANGED
@@ -27,6 +27,8 @@ class CmdArguments < Hash
|
|
27
27
|
super()
|
28
28
|
|
29
29
|
self[:base] = ReVolt::Info::path
|
30
|
+
self[:default_match_with] = :name
|
31
|
+
|
30
32
|
matchstrs = []
|
31
33
|
opts = OptionParser.new do |opts|
|
32
34
|
opts.banner = "Usage: #$0 [options] [name_match ...]\n"
|
@@ -50,6 +52,7 @@ class CmdArguments < Hash
|
|
50
52
|
on_match(opts) do |value|
|
51
53
|
matchstrs << value
|
52
54
|
end
|
55
|
+
on_default_match_modifier(opts)
|
53
56
|
|
54
57
|
opts.on('-d', '--debug',
|
55
58
|
'Outputs debug information') do
|
@@ -70,9 +73,20 @@ class CmdArguments < Hash
|
|
70
73
|
|
71
74
|
opts.parse!(cmd)
|
72
75
|
|
76
|
+
name_or_id_matches(cmd) do |m|
|
77
|
+
matchstrs << m
|
78
|
+
end
|
79
|
+
|
80
|
+
=begin
|
81
|
+
ReVolt::Util::CommonCmdArgs
|
73
82
|
cmd.each do |n|
|
74
|
-
|
83
|
+
if n == ':all'
|
84
|
+
matchstrs << 'id=~.'
|
85
|
+
else
|
86
|
+
matchstrs << '%s=~%s' % ['name', n]
|
87
|
+
end
|
75
88
|
end
|
89
|
+
=end
|
76
90
|
|
77
91
|
# If input file not specified, at least start date is required
|
78
92
|
if matchstrs.size == 0
|
data/bin/rv_info_levels.rb
CHANGED
@@ -47,6 +47,7 @@ class CmdArguments < Hash
|
|
47
47
|
|
48
48
|
self[:base] = ReVolt::Info::path
|
49
49
|
self[:all] = false
|
50
|
+
self[:default_match_with] = :name
|
50
51
|
|
51
52
|
matchstrs = []
|
52
53
|
opts = OptionParser.new do |opts|
|
@@ -67,6 +68,8 @@ class CmdArguments < Hash
|
|
67
68
|
on_match(opts) do |value|
|
68
69
|
matchstrs << value
|
69
70
|
end
|
71
|
+
on_default_match_modifier(opts)
|
72
|
+
|
70
73
|
opts.on('-d', '--debug',
|
71
74
|
'Outputs debug information') do
|
72
75
|
self[:debug] = true
|
@@ -90,8 +93,8 @@ class CmdArguments < Hash
|
|
90
93
|
|
91
94
|
opts.parse!(cmd)
|
92
95
|
|
93
|
-
cmd
|
94
|
-
matchstrs <<
|
96
|
+
name_or_id_matches(cmd) do |m|
|
97
|
+
matchstrs << m
|
95
98
|
end
|
96
99
|
|
97
100
|
# If input file not specified, at least start date is required
|
data/bin/rv_install_levels.rb
CHANGED
data/bin/rv_package_levels.rb
CHANGED
@@ -21,6 +21,15 @@ def main
|
|
21
21
|
end
|
22
22
|
|
23
23
|
if pkg_levs.size > 0
|
24
|
+
unless cmd[:force]
|
25
|
+
puts ""
|
26
|
+
print "Create packages of these levels? (y/N) "
|
27
|
+
answer = STDIN.gets.chomp
|
28
|
+
if answer.downcase != 'y'
|
29
|
+
puts "Packages not created"
|
30
|
+
exit(0)
|
31
|
+
end
|
32
|
+
end
|
24
33
|
puts ''
|
25
34
|
puts "Creating packages of #{pkg_levs.size} matching levels"
|
26
35
|
pkg_levs.each do |l, match|
|
@@ -42,17 +51,20 @@ class CmdArguments < Hash
|
|
42
51
|
|
43
52
|
self[:base] = ReVolt::Info::path
|
44
53
|
self[:force] = false
|
54
|
+
self[:default_match_with] = :name
|
45
55
|
|
46
56
|
matchstrs = []
|
47
57
|
opts = OptionParser.new do |opts|
|
48
|
-
opts.banner = "Usage: #$0 [options] [
|
58
|
+
opts.banner = "Usage: #$0 [options] [name_match ...]\n"
|
49
59
|
opts.separator ""
|
50
60
|
opts.separator "Creates packages of levels. Each packaged level will be"
|
51
|
-
opts.separator "named by its id"
|
61
|
+
opts.separator "named by its id. By default confirms before creating packages"
|
52
62
|
opts.separator ""
|
53
63
|
opts.separator "Examples:"
|
64
|
+
opts.separator " Package all levels whose name contains Chilled:"
|
65
|
+
opts.separator " #$0 Chilled"
|
54
66
|
opts.separator " Package a level that is in RV levels sub-directory temple:"
|
55
|
-
opts.separator " #$0 temple"
|
67
|
+
opts.separator " #$0 :temple"
|
56
68
|
opts.separator " Packages all custom tracks that can be raced in reverse:"
|
57
69
|
opts.separator " #$0 -m 'custom?,reverse?'"
|
58
70
|
|
@@ -65,10 +77,16 @@ class CmdArguments < Hash
|
|
65
77
|
on_match(opts) do |value|
|
66
78
|
matchstrs << value
|
67
79
|
end
|
80
|
+
on_default_match_modifier(opts)
|
81
|
+
|
68
82
|
opts.on('-d', '--debug',
|
69
83
|
'Outputs debug information') do
|
70
84
|
self[:debug] = true
|
71
85
|
end
|
86
|
+
opts.on('-f', '--force',
|
87
|
+
'Force packaging without confirmation') do
|
88
|
+
self[:force] = true
|
89
|
+
end
|
72
90
|
|
73
91
|
on_base_path(opts) do |value|
|
74
92
|
self[:base] = value
|
@@ -84,8 +102,8 @@ class CmdArguments < Hash
|
|
84
102
|
|
85
103
|
opts.parse!(cmd)
|
86
104
|
|
87
|
-
cmd
|
88
|
-
matchstrs <<
|
105
|
+
name_or_id_matches(cmd) do |m|
|
106
|
+
matchstrs << m
|
89
107
|
end
|
90
108
|
|
91
109
|
# If input file not specified, at least start date is required
|
data/lib/revolt/level.rb
CHANGED
@@ -153,7 +153,7 @@ module ReVolt
|
|
153
153
|
f = []
|
154
154
|
# Level globs, and graphics globs
|
155
155
|
globs = [path + '**/*',
|
156
|
-
|
156
|
+
gfx_dir + ReVolt::Util::caseinsensitiveglob(id.to_s + '.bm?')
|
157
157
|
]
|
158
158
|
debug("Level gfx glob: #{globs[1]}")
|
159
159
|
|
@@ -194,10 +194,20 @@ module ReVolt
|
|
194
194
|
inf_file
|
195
195
|
end
|
196
196
|
|
197
|
-
# Returns the
|
197
|
+
# Returns the directory to the graphics files of the Level
|
198
|
+
def gfx_dir
|
199
|
+
ensure_parent
|
200
|
+
@parent.gfx_dir
|
201
|
+
end
|
202
|
+
|
203
|
+
# Returns the path to the graphics file of this level
|
204
|
+
# or nil if the graphics file does not exist
|
198
205
|
def gfx_path
|
199
206
|
ensure_parent
|
200
|
-
|
207
|
+
gfxglob = gfx_dir + ReVolt::Util::caseinsensitiveglob(id.to_s + '.bmp')
|
208
|
+
gfx = Pathname.glob(gfxglob)
|
209
|
+
return nil if gfx.empty?
|
210
|
+
return gfx[0]
|
201
211
|
end
|
202
212
|
|
203
213
|
# Convenience function for moving this Level
|
data/lib/revolt/levels.rb
CHANGED
@@ -38,7 +38,7 @@ module ReVolt
|
|
38
38
|
include Enumerable
|
39
39
|
|
40
40
|
# Pathname objects
|
41
|
-
attr_accessor :path, :
|
41
|
+
attr_accessor :path, :gfx_dir, :base_path
|
42
42
|
|
43
43
|
# Creates new Levels instance with given Re-Volt
|
44
44
|
# base path. The actual levels directory
|
@@ -47,7 +47,7 @@ module ReVolt
|
|
47
47
|
def initialize(base_rv_path, args = {})
|
48
48
|
@base_path = Pathname.new(base_rv_path)
|
49
49
|
@path = @base_path + "levels"
|
50
|
-
@
|
50
|
+
@gfx_dir = @base_path + "gfx"
|
51
51
|
@path_checked = false
|
52
52
|
|
53
53
|
@levels = nil
|
@@ -132,7 +132,7 @@ module ReVolt
|
|
132
132
|
def create_dir_structure
|
133
133
|
@base_path.mkdir if !@base_path.exist?
|
134
134
|
@path.mkdir if !@path.exist?
|
135
|
-
@
|
135
|
+
@gfx_dir.mkdir if !@gfx_dir.exist?
|
136
136
|
|
137
137
|
ensure_paths
|
138
138
|
end
|
@@ -417,8 +417,8 @@ module ReVolt
|
|
417
417
|
return if @path_checked
|
418
418
|
raise IOError, "#{@path} does not exist" if !@path.exist?
|
419
419
|
raise IOError, "#{@path} is not dir" if !@path.directory?
|
420
|
-
raise IOError, "#{@
|
421
|
-
raise IOError, "#{@
|
420
|
+
raise IOError, "#{@gfx_dir} does not exist" if !@gfx_dir.exist?
|
421
|
+
raise IOError, "#{@gfx_dir} is not dir" if !@gfx_dir.directory?
|
422
422
|
@path_checked = true
|
423
423
|
end
|
424
424
|
|
@@ -4,6 +4,9 @@ module ReVolt::Util
|
|
4
4
|
# A mixin that can be included to utils that
|
5
5
|
# need some of the common options
|
6
6
|
module CommonCmdArgs
|
7
|
+
def initialize()
|
8
|
+
super[:default_match_with] = :id
|
9
|
+
end
|
7
10
|
|
8
11
|
def on_base_path(opts, args = {}, &block)
|
9
12
|
opts.on('-b', '--base [DIR]',
|
@@ -19,6 +22,35 @@ module ReVolt::Util
|
|
19
22
|
end
|
20
23
|
end
|
21
24
|
|
25
|
+
def on_default_match_modifier(opts, args = {})
|
26
|
+
opts.on('--id',
|
27
|
+
'Uses id to match the command-line arguments') do
|
28
|
+
self[:default_match_with] = :id
|
29
|
+
yield if block_given?
|
30
|
+
end
|
31
|
+
opts.on('--name',
|
32
|
+
'Uses name to match the command-line arguments') do
|
33
|
+
self[:default_match_with] = :name
|
34
|
+
yield if block_given?
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def name_or_id_matches(strs, &block)
|
39
|
+
strs.each do |n|
|
40
|
+
mstr = case
|
41
|
+
when n == ':all'
|
42
|
+
'id=~.'
|
43
|
+
when n =~ /^:(.*)/
|
44
|
+
'%s=%s' % ['id', $1]
|
45
|
+
when self[:default_match_with] == :name
|
46
|
+
'%s=~%s' % ['name', n]
|
47
|
+
else
|
48
|
+
'%s=%s' % ['id', n]
|
49
|
+
end
|
50
|
+
block.call(mstr)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
22
54
|
def match_help(opts)
|
23
55
|
opts.separator "Match (-m, --match) general form:"
|
24
56
|
opts.separator " key<op>match[,key2<op>match2[,...]]"
|
data/lib/revolt.rb
CHANGED
data/test/tc_level.rb
CHANGED
@@ -93,6 +93,8 @@ class LevelTest < Test::Unit::TestCase
|
|
93
93
|
strdowncase_and_order_structure(files))
|
94
94
|
assert_equal(strdowncase_and_order_structure(dirs_expect),
|
95
95
|
strdowncase_and_order_structure(dirs))
|
96
|
+
assert_equal('gfx/tEsT Level.bmp',
|
97
|
+
@level.gfx_path.relative_path_from(@levels.base_path).to_s)
|
96
98
|
end
|
97
99
|
|
98
100
|
def test_copy_level
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: revolt
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.8.
|
7
|
-
date: 2007-
|
6
|
+
version: 0.8.1
|
7
|
+
date: 2007-02-16 00:00:00 +02:00
|
8
8
|
summary: Library for managing Re-Volt game, and some Commandline tools
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -37,6 +37,7 @@ files:
|
|
37
37
|
- bin/rv_rename_level.rb
|
38
38
|
- examples/find_rv_track.rb
|
39
39
|
- examples/install_rv_track.rb
|
40
|
+
- examples/package_all_reverse_custom.rb
|
40
41
|
- lib/revolt.rb
|
41
42
|
- lib/revolt/args.rb
|
42
43
|
- lib/revolt/config.rb
|