rubygame 2.4.0 → 2.4.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/NEWS CHANGED
@@ -1,5 +1,28 @@
1
1
  = NEWS
2
2
 
3
+ == Rubygame 2.4.1
4
+
5
+ Release focus: Bug fixes; Ruby 1.9 compatibility.
6
+
7
+ === Fixes
8
+
9
+ - Fixed: Module scope problems with EventHandler and triggers.
10
+ They were trying to find the Events module, which only worked if
11
+ you had done 'include Rubygame' somewhere.
12
+
13
+ - Fixed: Compiler warning in unmake_symbol().
14
+
15
+ === Other Stuff
16
+
17
+ - Rubygame is compatible with Ruby 1.9.
18
+
19
+ - Build system is compatible with Ruby 1.9.
20
+
21
+ - Minor cleanup to build system internals.
22
+
23
+
24
+
25
+
3
26
  == Rubygame 2.4.0
4
27
 
5
28
  Release focus: Events.
data/Rakefile CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
  # The version number for Rubygame.
9
- RUBYGAME_VERSION = [2,4,0]
9
+ RUBYGAME_VERSION = [2,4,1]
10
10
 
11
11
 
12
12
  #
@@ -37,7 +37,6 @@ RUBYGAME_VERSION = [2,4,0]
37
37
 
38
38
 
39
39
  require 'rubygems'
40
- Gem::manage_gems
41
40
 
42
41
  require 'rake'
43
42
  require 'rake/gempackagetask'
@@ -51,10 +50,20 @@ require 'English'
51
50
  class ShellCommandError < RuntimeError
52
51
  end
53
52
 
54
- # Execute the block (which is supposed to perform a shell command),
55
- # then raise ShellCommandError if the command failed.
56
- def try_shell( &block )
57
- result = yield
53
+ # Execute the shell command and raise ShellCommandError if
54
+ # the command failed.
55
+ #
56
+ # If verbose is true, outputs the command string to the console.
57
+ # If it's false, it outputs the pretty string to the console instead.
58
+ #
59
+ def try_shell( command, pretty="", verbose=false )
60
+ if verbose
61
+ puts command
62
+ else
63
+ puts pretty unless pretty.empty?
64
+ end
65
+
66
+ result = `#{command}`
58
67
 
59
68
  unless $CHILD_STATUS.exitstatus == 0
60
69
  raise ShellCommandError, "Command failed. Aborting."
@@ -66,7 +75,7 @@ end
66
75
  def try_sdl_config( flag )
67
76
  begin
68
77
  if $options[:"sdl-config"]
69
- return try_shell { `sdl-config #{flag}`.chomp }
78
+ return try_shell("sdl-config #{flag}").chomp
70
79
  else
71
80
  return String.new
72
81
  end
@@ -160,7 +169,7 @@ $options = {
160
169
  # Default behavior for win32 is to skip sdl_config,
161
170
  # since it's usually not available. It can still be
162
171
  # enabled through the options, though.
163
- if PLATFORM =~ /win32/
172
+ if RUBY_PLATFORM =~ /win32/
164
173
  $options[:"sdl-config"] = false
165
174
  end
166
175
 
@@ -228,6 +237,10 @@ string_option :sitelibdir
228
237
  CFLAGS = [from_env_or_config("CFLAGS"),
229
238
  try_sdl_config("--cflags"),
230
239
  "-I. -I#{CONFIG['topdir']}",
240
+ (if CONFIG['rubyhdrdir']
241
+ "-I#{CONFIG['rubyhdrdir']} " +\
242
+ "-I#{File.join(CONFIG['rubyhdrdir'], CONFIG['arch'])}"
243
+ end),
231
244
  "-DRUBYGAME_MAJOR_VERSION=#{RUBYGAME_VERSION[0]}",
232
245
  "-DRUBYGAME_MINOR_VERSION=#{RUBYGAME_VERSION[1]}",
233
246
  "-DRUBYGAME_PATCHLEVEL=#{RUBYGAME_VERSION[2]}"
@@ -292,12 +305,9 @@ class ExtensionModule
292
305
  link_command.gsub!("-arch ppc","")
293
306
  end
294
307
 
295
- if( $options[:verbose] )
296
- try_shell { sh link_command }
297
- else
298
- puts "Linking compiled files to create #{File.basename(@directory)}/#{File.basename(dynlib_full)}"
299
- try_shell { `#{link_command}` }
300
- end
308
+ try_shell( link_command,
309
+ "Linking compiled files to create #{File.basename(@directory)}/#{File.basename(dynlib_full)}",
310
+ $options[:verbose] )
301
311
  end
302
312
 
303
313
  task :build => [dynlib_full] # Add this as a prereq of the build
@@ -326,12 +336,9 @@ class ExtensionModule
326
336
  compile_command.gsub!("-arch ppc","")
327
337
  end
328
338
 
329
- if( $options[:verbose] )
330
- try_shell { sh compile_command }
331
- else
332
- puts "Compiling #{File.basename(@directory)}/#{File.basename(t.source)}"
333
- try_shell { `#{compile_command}` }
334
- end
339
+ try_shell( compile_command,
340
+ "Compiling #{File.basename(@directory)}/#{File.basename(t.source)}",
341
+ $options[:verbose] )
335
342
  end
336
343
  rescue
337
344
  # Generate a .o rule for each .c file in the directory.
@@ -339,12 +346,10 @@ class ExtensionModule
339
346
  object = source.sub(".c", ".#{OBJEXT}")
340
347
  file object => ([source] + depends_headers( source )) do |t|
341
348
  compile_command = "#{CONFIG['CC']} -c #{CFLAGS} #{"-g " if $options[:debug]} #{source} -o #{t.name}"
342
- if( $options[:verbose] )
343
- try_shell { sh compile_command }
344
- else
345
- puts "Compiling #{File.basename(@directory)}/#{File.basename(source)}"
346
- try_shell { `#{compile_command}` }
347
- end
349
+
350
+ try_shell( compile_command,
351
+ "Compiling #{File.basename(@directory)}/#{File.basename(t.source)}",
352
+ $options[:verbose] )
348
353
  end
349
354
  end
350
355
  end
@@ -325,7 +325,7 @@ int rg_get_keyrepeat_value( VALUE vvalue, int default_value, char *name )
325
325
  else
326
326
  {
327
327
  rb_raise( rb_eArgError, "unsupported symbol '%s' for %s",
328
- RSTRING(rb_inspect(vvalue))->ptr, name );
328
+ RSTRING_PTR(rb_inspect(vvalue)), name );
329
329
  }
330
330
  }
331
331
 
@@ -335,7 +335,7 @@ int rg_get_keyrepeat_value( VALUE vvalue, int default_value, char *name )
335
335
  if( value < 1 )
336
336
  {
337
337
  rb_raise( rb_eArgError, "%s must be at least 0.001 seconds (got %s)",
338
- name, RSTRING(rb_inspect(vvalue))->ptr);
338
+ name, RSTRING_PTR(rb_inspect(vvalue)));
339
339
  }
340
340
 
341
341
  return value;
@@ -62,7 +62,7 @@ VALUE rbgm_draw_fillpolygon(VALUE, VALUE, VALUE);
62
62
  void extract_xy(VALUE point, Sint16* x, Sint16* y)
63
63
  {
64
64
  point = convert_to_array(point);
65
- if(RARRAY(point)->len < 2)
65
+ if(RARRAY_LEN(point) < 2)
66
66
  rb_raise(rb_eArgError,"expected argument as [x,y] form");
67
67
  *x = NUM2INT(rb_ary_entry(point,0));
68
68
  *y = NUM2INT(rb_ary_entry(point,1));
@@ -479,7 +479,7 @@ void draw_polygon(VALUE target, VALUE points, VALUE rgba, int aa, int fill)
479
479
 
480
480
  /* separate points into arrays of x and y values */
481
481
  points = convert_to_array(points);
482
- length = RARRAY(points)->len;
482
+ length = RARRAY_LEN(points);
483
483
  x = alloca(sizeof (Sint16) * length);
484
484
  y = alloca(sizeof (Sint16) * length);
485
485
 
@@ -247,10 +247,10 @@ VALUE rbgm_screen_update(int argc, VALUE *argv, VALUE self)
247
247
  {
248
248
  switch( TYPE(vx) ) {
249
249
  case T_ARRAY: {
250
- if( RARRAY(vx)->len < 4 )
250
+ if( RARRAY_LEN(vx) < 4 )
251
251
  {
252
252
  rb_raise(rb_eArgError,"Array is too short to be a Rect (%s for 4)",
253
- RARRAY(vx)->len);
253
+ RARRAY_LEN(vx));
254
254
  }
255
255
  x = NUM2INT(rb_ary_entry(vx,0));
256
256
  y = NUM2INT(rb_ary_entry(vx,1));
@@ -311,7 +311,7 @@ VALUE rbgm_screen_updaterects(VALUE self, VALUE array_rects)
311
311
 
312
312
  /* prepare an (uninitialized) array of Rects */
313
313
  array_rects = convert_to_array(array_rects);
314
- num_rects = RARRAY(array_rects)->len;
314
+ num_rects = RARRAY_LEN(array_rects);
315
315
  rects = ALLOCA_N(SDL_Rect, num_rects);
316
316
 
317
317
  /* initialize the array of Rects from array_rects */
@@ -54,7 +54,7 @@ VALUE make_symbol(char *string)
54
54
  /* Returns a char* string from the given symbol */
55
55
  char *unmake_symbol(VALUE symbol)
56
56
  {
57
- return rb_id2name( SYM2ID(symbol) );
57
+ return (char *)rb_id2name( SYM2ID(symbol) );
58
58
  }
59
59
 
60
60
 
@@ -80,7 +80,7 @@ Uint32 collapse_flags(VALUE vflags)
80
80
  {
81
81
  switch( TYPE(vflags) ){
82
82
  case T_ARRAY: {
83
- int len = RARRAY(vflags)->len;
83
+ int len = RARRAY_LEN(vflags);
84
84
  for(i=0; i < len; i++)
85
85
  {
86
86
  flags |= NUM2UINT( rb_ary_entry( vflags,i ) );
@@ -161,7 +161,7 @@ void extract_rgba_u8_as_u8(VALUE color, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)
161
161
  *g = NUM2UINT(rb_ary_entry(color, 1));
162
162
  *b = NUM2UINT(rb_ary_entry(color, 2));
163
163
 
164
- if( RARRAY(color)->len > 3 )
164
+ if( RARRAY_LEN(color) > 3 )
165
165
  {
166
166
  *a = NUM2UINT(rb_ary_entry(color, 3));
167
167
  }
@@ -146,14 +146,14 @@ VALUE rbgm_surface_new(int argc, VALUE *argv, VALUE class)
146
146
  /* Get width and height for new surface from vsize */
147
147
  vsize = convert_to_array(vsize);
148
148
 
149
- if(RARRAY(vsize)->len >= 2)
149
+ if(RARRAY_LEN(vsize) >= 2)
150
150
  {
151
151
  w = NUM2INT(rb_ary_entry(vsize,0));
152
152
  h = NUM2INT(rb_ary_entry(vsize,1));
153
153
  }
154
154
  else
155
155
  rb_raise(rb_eArgError,"Array is too short for Surface size (%d for 2)",\
156
- RARRAY(vsize)->len);
156
+ RARRAY_LEN(vsize));
157
157
 
158
158
  flags = collapse_flags(vflags); /* in rubygame_shared */
159
159
 
@@ -89,7 +89,7 @@ class Rubygame::EventHandler
89
89
  # the top of the stack.
90
90
  #
91
91
  def append_hook( hook )
92
- hook = EventHook.new( hook ) if hook.kind_of?( Hash )
92
+ hook = Rubygame::EventHook.new( hook ) if hook.kind_of?( Hash )
93
93
  @hooks = (@hooks - [hook]) | [hook]
94
94
  return hook
95
95
  end
@@ -103,7 +103,7 @@ class Rubygame::EventHandler
103
103
  # If the EventHandler already has that hook, it is moved to the top.
104
104
  #
105
105
  def prepend_hook( hook )
106
- hook = EventHook.new( hook ) if hook.kind_of?( Hash )
106
+ hook = Rubygame::EventHook.new( hook ) if hook.kind_of?( Hash )
107
107
  @hooks = [hook] | @hooks
108
108
  return hook
109
109
  end
@@ -324,7 +324,7 @@ module Rubygame::EventHandler::HasEventHandler
324
324
 
325
325
  # Sets @event_handler to a new EventHandler if needed.
326
326
  def _make_event_handler
327
- @event_handler = EventHandler.new() if @event_handler.nil?
327
+ @event_handler = Rubygame::EventHandler.new() if @event_handler.nil?
328
328
  end
329
329
 
330
330
  # This method is called by #make_magic_hooks to convert an
@@ -363,10 +363,10 @@ module Rubygame::EventHandler::HasEventHandler
363
363
  case action
364
364
 
365
365
  when Symbol
366
- EventActions::MethodAction.new(action)
366
+ Rubygame::EventActions::MethodAction.new(action)
367
367
 
368
368
  when Proc, Method
369
- EventActions::BlockAction.new(&action)
369
+ Rubygame::EventActions::BlockAction.new(&action)
370
370
 
371
371
  else
372
372
  if action.respond_to? :perform
@@ -418,13 +418,13 @@ module Rubygame::EventHandler::HasEventHandler
418
418
  when Symbol
419
419
  case(trigger.to_s)
420
420
  when /mouse/
421
- EventTriggers::MousePressTrigger.new(trigger)
421
+ Rubygame::EventTriggers::MousePressTrigger.new(trigger)
422
422
  else
423
- EventTriggers::KeyPressTrigger.new(trigger)
423
+ Rubygame::EventTriggers::KeyPressTrigger.new(trigger)
424
424
  end
425
425
 
426
426
  when Class
427
- EventTriggers::InstanceOfTrigger.new(trigger)
427
+ Rubygame::EventTriggers::InstanceOfTrigger.new(trigger)
428
428
 
429
429
  else
430
430
  if trigger.respond_to? :match?
@@ -441,7 +441,7 @@ module Rubygame::EventHandler::HasEventHandler
441
441
 
442
442
  def _prepare_hook( hook )
443
443
  if( hook.kind_of? Hash )
444
- hook = EventHook.new( {:owner => self}.merge(hook) )
444
+ hook = Rubygame::EventHook.new( {:owner => self}.merge(hook) )
445
445
  end
446
446
 
447
447
  if( hook.owner == nil )
@@ -374,7 +374,7 @@ class KeyPressTrigger
374
374
  # match either :left_alt or :right_alt.
375
375
  #
376
376
  def match?( event )
377
- if event.kind_of?( Events::KeyPressed )
377
+ if event.kind_of?( Rubygame::Events::KeyPressed )
378
378
  ((@key == :any) or (event.key == @key)) and \
379
379
  ((@mods == :any) or (@mods == :none and event.modifiers == [])\
380
380
  or (_mods_match?(event.modifiers)))
@@ -436,7 +436,7 @@ class KeyReleaseTrigger
436
436
  # See KeyPressTrigger#match? for more information.
437
437
  #
438
438
  def match?( event )
439
- if event.kind_of?( Events::KeyReleased )
439
+ if event.kind_of?( Rubygame::Events::KeyReleased )
440
440
  ((@key == :any) or (event.key == @key)) and \
441
441
  ((@mods == :any) or (@mods == :none and event.modifiers == [])\
442
442
  or (_mods_match?(event.modifiers)))
@@ -529,7 +529,7 @@ class MousePressTrigger
529
529
  # (or the trigger's button is :any).
530
530
  #
531
531
  def match?( event )
532
- if event.kind_of?( Events::MousePressed )
532
+ if event.kind_of?( Rubygame::Events::MousePressed )
533
533
  ((@button == :any) or (event.button == @button))
534
534
  else
535
535
  false
@@ -598,7 +598,7 @@ class MouseMoveTrigger
598
598
  # See #new for information about how events match.
599
599
  #
600
600
  def match?( event )
601
- if event.kind_of?( Events::MouseMoved )
601
+ if event.kind_of?( Rubygame::Events::MouseMoved )
602
602
  ((@buttons == :any) or
603
603
  (@buttons == :none and event.buttons == []) or
604
604
  (_buttons_match?(event.buttons)) or
@@ -658,7 +658,7 @@ class MouseReleaseTrigger
658
658
  # (or the trigger's button is :any).
659
659
  #
660
660
  def match?( event )
661
- if event.kind_of?( Events::MouseReleased )
661
+ if event.kind_of?( Rubygame::Events::MouseReleased )
662
662
  ((@button == :any) or (event.button == @button))
663
663
  else
664
664
  false
@@ -670,7 +670,7 @@ end
670
670
 
671
671
  # class TickTrigger
672
672
  # def match?( event )
673
- # event.kind_of?( Events::ClockTicked )
673
+ # event.kind_of?( Rubygame::Events::ClockTicked )
674
674
  # end
675
675
  # end
676
676
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygame
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Croisant
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-10-24 00:00:00 -05:00
12
+ date: 2009-02-08 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -150,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
150
  requirements: []
151
151
 
152
152
  rubyforge_project:
153
- rubygems_version: 1.2.0
153
+ rubygems_version: 1.3.1
154
154
  signing_key:
155
155
  specification_version: 2
156
156
  summary: Clean and powerful library for game programming