pario 0.1.0.pre → 0.2.0.pre
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.rdoc +3 -1
- data/lib/pario.rb +101 -26
- data/lib/pario/version.rb +1 -1
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -5,12 +5,14 @@ Pario is a Gosu Game framework that helps to give you structure and a start for
|
|
5
5
|
== Installation
|
6
6
|
|
7
7
|
sudo gem install pario
|
8
|
+
|
9
|
+
* Windows users: gem install pario
|
8
10
|
|
9
11
|
== Getting Started
|
10
12
|
|
11
13
|
1. At the command prompt, create a new Pario application:
|
12
14
|
|
13
|
-
pario
|
15
|
+
pario game my_game
|
14
16
|
|
15
17
|
where myapp is the game name.
|
16
18
|
|
data/lib/pario.rb
CHANGED
@@ -2,14 +2,16 @@ require 'optparse'
|
|
2
2
|
require 'rdoc/usage'
|
3
3
|
require 'ostruct'
|
4
4
|
require 'date'
|
5
|
-
|
5
|
+
require 'erb'
|
6
6
|
|
7
7
|
class Pario
|
8
8
|
VERSION = '0.0.1'
|
9
|
+
Directories = %w{game lib media config}
|
9
10
|
|
10
|
-
attr_reader :options
|
11
|
+
attr_reader :options, :command, :game_name, :arguments
|
11
12
|
|
12
13
|
def initialize(arguments, stdin)
|
14
|
+
@command = command(arguments.delete_at(0))
|
13
15
|
@arguments = arguments
|
14
16
|
@stdin = stdin
|
15
17
|
|
@@ -17,29 +19,18 @@ class Pario
|
|
17
19
|
@options = OpenStruct.new
|
18
20
|
@options.verbose = false
|
19
21
|
@options.quiet = false
|
20
|
-
# TO DO - add additional defaults
|
21
22
|
end
|
22
23
|
|
23
24
|
# Parse options, check arguments, then process the command
|
24
25
|
def run
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
process_arguments
|
35
|
-
process_command
|
36
|
-
|
37
|
-
puts "\
|
38
|
-
Finished at #{DateTime.now}" if @options.verbose
|
39
|
-
|
40
|
-
else
|
41
|
-
output_usage
|
42
|
-
end
|
26
|
+
process_command
|
27
|
+
|
28
|
+
# if parsed_options? && arguments_valid?
|
29
|
+
# process_arguments
|
30
|
+
# process_command
|
31
|
+
# else
|
32
|
+
# output_usage
|
33
|
+
# end
|
43
34
|
|
44
35
|
end
|
45
36
|
|
@@ -52,8 +43,6 @@ Finished at #{DateTime.now}" if @options.verbose
|
|
52
43
|
opts.on('-v', '--version') { output_version ; exit 0 }
|
53
44
|
opts.on('-h', '--help') { output_help }
|
54
45
|
opts.on('-V', '--verbose') { @options.verbose = true }
|
55
|
-
opts.on('-q', '--quiet') { @options.quiet = true }
|
56
|
-
# TO DO - add additional options
|
57
46
|
|
58
47
|
opts.parse!(@arguments) rescue return false
|
59
48
|
|
@@ -83,7 +72,7 @@ Finished at #{DateTime.now}" if @options.verbose
|
|
83
72
|
|
84
73
|
# Setup the arguments
|
85
74
|
def process_arguments
|
86
|
-
#
|
75
|
+
#TODO
|
87
76
|
end
|
88
77
|
|
89
78
|
def output_help
|
@@ -99,11 +88,97 @@ Finished at #{DateTime.now}" if @options.verbose
|
|
99
88
|
puts "#{File.basename(__FILE__)} version #{VERSION}"
|
100
89
|
end
|
101
90
|
|
91
|
+
def command(arg)
|
92
|
+
commands = %w{game create play}
|
93
|
+
if commands.include? arg
|
94
|
+
arg
|
95
|
+
else
|
96
|
+
raise "That command is not supported"
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
102
100
|
def process_command
|
103
|
-
|
104
|
-
|
101
|
+
send @command
|
105
102
|
#process_standard_input # [Optional]
|
106
103
|
end
|
104
|
+
|
105
|
+
def game
|
106
|
+
create_directories
|
107
|
+
create_base_files
|
108
|
+
# create_readme
|
109
|
+
# create_licesnse
|
110
|
+
end
|
111
|
+
|
112
|
+
def game_name
|
113
|
+
# For testing
|
114
|
+
# puts "*"*80
|
115
|
+
# raise "{:command => #{@command.inspect}, :arguments => #{@arguments[0].inspect}}"
|
116
|
+
@game_name ||= @arguments[0]
|
117
|
+
end
|
118
|
+
|
119
|
+
def create_base_files
|
120
|
+
build_main
|
121
|
+
# build_game_config
|
122
|
+
build_game_class
|
123
|
+
end
|
124
|
+
|
125
|
+
def build_game_class
|
126
|
+
Dir.chdir("game")
|
127
|
+
game_file = File.open(@game_name + ".rb", "w+")
|
128
|
+
game_file.puts game_class
|
129
|
+
end
|
130
|
+
|
131
|
+
def build_main
|
132
|
+
# "do you want to overwrite main.rb? Y/n" if File.exist?("main.rb")
|
133
|
+
main_file = File.open("main.rb", "w+")
|
134
|
+
main_file.puts main_class
|
135
|
+
end
|
136
|
+
|
137
|
+
def main_class
|
138
|
+
main_template = ERB.new <<-EOF
|
139
|
+
require 'rubygems'
|
140
|
+
require 'gosu'
|
141
|
+
|
142
|
+
Dir.glob(File.join("game", "*.rb")).each {|file| require file }
|
143
|
+
|
144
|
+
|
145
|
+
game = #{game_upcase}.new(800, 600)
|
146
|
+
game.show
|
147
|
+
EOF
|
148
|
+
main_template.result(binding)
|
149
|
+
end
|
150
|
+
|
151
|
+
def game_class
|
152
|
+
game_template = ERB.new <<-EOF
|
153
|
+
class #{game_upcase} < Gosu::Window
|
154
|
+
def initialize(window_width, window_height)
|
155
|
+
super(window_width,window_height,0)
|
156
|
+
end
|
157
|
+
end
|
158
|
+
EOF
|
159
|
+
game_template.result(binding)
|
160
|
+
end
|
161
|
+
|
162
|
+
def game_upcase
|
163
|
+
#TODO: need to handle camelcase
|
164
|
+
@game_name.to_s.gsub(/\b\w/){$&.upcase}
|
165
|
+
end
|
166
|
+
|
167
|
+
def create_directories
|
168
|
+
Dir.mkdir(game_name) unless File.directory?(game_name)
|
169
|
+
Dir.chdir(game_name)
|
170
|
+
Directories.each do |sub_folder|
|
171
|
+
Dir.mkdir sub_folder unless File.directory?(sub_folder)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
def create
|
176
|
+
puts "Feature to come soon, I'm working on it!"
|
177
|
+
end
|
178
|
+
|
179
|
+
def play
|
180
|
+
%x{ruby main.rb}
|
181
|
+
end
|
107
182
|
|
108
183
|
def process_standard_input
|
109
184
|
input = @stdin.read
|
data/lib/pario/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pario
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 961915988
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 2
|
9
9
|
- 0
|
10
10
|
- pre
|
11
|
-
version: 0.
|
11
|
+
version: 0.2.0.pre
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Bill Davenport
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2011-02-
|
20
|
+
date: 2011-02-14 00:00:00 -05:00
|
21
21
|
default_executable: pario
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|