gme 0.0.12-x86-linux → 0.0.13-x86-linux

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/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ require 'rubygems'
2
+
1
3
  begin
2
4
  require 'jeweler'
3
5
 
@@ -22,3 +24,38 @@ begin
22
24
  rescue LoadError
23
25
  puts "Jeweler not available. Install it with: gem install jeweler"
24
26
  end
27
+
28
+ require 'rake'
29
+ require 'spec'
30
+ require 'spec/rake/spectask'
31
+
32
+ spec_files = Rake::FileList["spec/**/*_spec.rb"]
33
+
34
+ desc "Run specs"
35
+ Spec::Rake::SpecTask.new do |t|
36
+ t.spec_files = spec_files
37
+ t.spec_opts = ["-c"]
38
+ end
39
+
40
+ namespace :gme do
41
+ desc "Builds gme_ext and deploys locally on lib/gme_ext.so"
42
+ task :extbuild do
43
+ # cd to ext/gme/build
44
+ # run extconf.rb
45
+ # run make
46
+ # cp gme_ext.so to lib/
47
+ puts ">> Compiling gme_ext.so ..."
48
+ path = File.expand_path(File.dirname(__FILE__) + '/ext/gme/build')
49
+ `cd #{path}; ruby ../extconf.rb; make; cp gme_ext.so ../../../lib/gme_ext.so`
50
+ end
51
+
52
+ desc "Runs clean task in build directory and deletes lib/gme_ext.so"
53
+ task :extclean do
54
+ path = File.expand_path(File.dirname(__FILE__) + '/ext/gme/build')
55
+ `cd #{path}; make clean; rm ../../../lib/gme_ext.so`
56
+ end
57
+ end
58
+
59
+ task :spec => "gme:extbuild"
60
+
61
+ task :default => :spec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.12
1
+ 0.0.13
@@ -0,0 +1,157 @@
1
+
2
+ SHELL = /bin/sh
3
+
4
+ #### Start of system configuration section. ####
5
+
6
+ srcdir = ..
7
+ topdir = /usr/lib/ruby/1.8/i486-linux
8
+ hdrdir = $(topdir)
9
+ VPATH = $(srcdir):$(topdir):$(hdrdir)
10
+ exec_prefix = $(prefix)
11
+ prefix = $(DESTDIR)/usr
12
+ sharedstatedir = $(prefix)/com
13
+ mandir = $(prefix)/share/man
14
+ psdir = $(docdir)
15
+ oldincludedir = $(DESTDIR)/usr/include
16
+ localedir = $(datarootdir)/locale
17
+ bindir = $(exec_prefix)/bin
18
+ libexecdir = $(prefix)/lib/ruby1.8
19
+ sitedir = $(DESTDIR)/usr/local/lib/site_ruby
20
+ htmldir = $(docdir)
21
+ vendorarchdir = $(vendorlibdir)/$(sitearch)
22
+ includedir = $(prefix)/include
23
+ infodir = $(prefix)/share/info
24
+ vendorlibdir = $(vendordir)/$(ruby_version)
25
+ sysconfdir = $(DESTDIR)/etc
26
+ libdir = $(exec_prefix)/lib
27
+ sbindir = $(exec_prefix)/sbin
28
+ rubylibdir = $(libdir)/ruby/$(ruby_version)
29
+ docdir = $(datarootdir)/doc/$(PACKAGE)
30
+ dvidir = $(docdir)
31
+ vendordir = $(libdir)/ruby/vendor_ruby
32
+ datarootdir = $(prefix)/share
33
+ pdfdir = $(docdir)
34
+ archdir = $(rubylibdir)/$(arch)
35
+ sitearchdir = $(sitelibdir)/$(sitearch)
36
+ datadir = $(datarootdir)
37
+ localstatedir = $(DESTDIR)/var
38
+ sitelibdir = $(sitedir)/$(ruby_version)
39
+
40
+ CC = gcc
41
+ LIBRUBY = $(LIBRUBY_SO)
42
+ LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
43
+ LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
44
+ LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
45
+
46
+ RUBY_EXTCONF_H =
47
+ CFLAGS = -fPIC -fno-strict-aliasing -g -g -O2 -fPIC $(cflags)
48
+ INCFLAGS = -I. -I. -I/usr/lib/ruby/1.8/i486-linux -I..
49
+ DEFS = -D_FILE_OFFSET_BITS=64
50
+ CPPFLAGS = -D_FILE_OFFSET_BITS=64
51
+ CXXFLAGS = $(CFLAGS)
52
+ ldflags = -L. -Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic
53
+ dldflags =
54
+ archflag =
55
+ DLDFLAGS = $(ldflags) $(dldflags) $(archflag)
56
+ LDSHARED = $(CC) -shared
57
+ AR = ar
58
+ EXEEXT =
59
+
60
+ RUBY_INSTALL_NAME = ruby1.8
61
+ RUBY_SO_NAME = ruby1.8
62
+ arch = i486-linux
63
+ sitearch = i486-linux
64
+ ruby_version = 1.8
65
+ ruby = /usr/bin/ruby1.8
66
+ RUBY = $(ruby)
67
+ RM = rm -f
68
+ MAKEDIRS = mkdir -p
69
+ INSTALL = /usr/bin/install -c
70
+ INSTALL_PROG = $(INSTALL) -m 0755
71
+ INSTALL_DATA = $(INSTALL) -m 644
72
+ COPY = cp
73
+
74
+ #### End of system configuration section. ####
75
+
76
+ preload =
77
+
78
+ libpath = . $(libdir)
79
+ LIBPATH = -L. -L$(libdir)
80
+ DEFFILE =
81
+
82
+ CLEANFILES = mkmf.log
83
+ DISTCLEANFILES =
84
+
85
+ extout =
86
+ extout_prefix =
87
+ target_prefix =
88
+ LOCAL_LIBS =
89
+ LIBS = $(LIBRUBYARG_SHARED) -lgme -lpthread -lrt -ldl -lcrypt -lm -lc
90
+ SRCS = gme_funcs.c gme.c util.c
91
+ OBJS = gme_funcs.o gme.o util.o
92
+ TARGET = gme_ext
93
+ DLLIB = $(TARGET).so
94
+ EXTSTATIC =
95
+ STATIC_LIB =
96
+
97
+ BINDIR = $(bindir)
98
+ RUBYCOMMONDIR = $(sitedir)$(target_prefix)
99
+ RUBYLIBDIR = $(sitelibdir)$(target_prefix)
100
+ RUBYARCHDIR = $(sitearchdir)$(target_prefix)
101
+
102
+ TARGET_SO = $(DLLIB)
103
+ CLEANLIBS = $(TARGET).so $(TARGET).il? $(TARGET).tds $(TARGET).map
104
+ CLEANOBJS = *.o *.a *.s[ol] *.pdb *.exp *.bak
105
+
106
+ all: $(DLLIB)
107
+ static: $(STATIC_LIB)
108
+
109
+ clean:
110
+ @-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
111
+
112
+ distclean: clean
113
+ @-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
114
+ @-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
115
+
116
+ realclean: distclean
117
+ install: install-so install-rb
118
+
119
+ install-so: $(RUBYARCHDIR)
120
+ install-so: $(RUBYARCHDIR)/$(DLLIB)
121
+ $(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
122
+ $(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
123
+ install-rb: pre-install-rb install-rb-default
124
+ install-rb-default: pre-install-rb-default
125
+ pre-install-rb: Makefile
126
+ pre-install-rb-default: Makefile
127
+ $(RUBYARCHDIR):
128
+ $(MAKEDIRS) $@
129
+
130
+ site-install: site-install-so site-install-rb
131
+ site-install-so: install-so
132
+ site-install-rb: install-rb
133
+
134
+ .SUFFIXES: .c .m .cc .cxx .cpp .C .o
135
+
136
+ .cc.o:
137
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
138
+
139
+ .cxx.o:
140
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
141
+
142
+ .cpp.o:
143
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
144
+
145
+ .C.o:
146
+ $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
147
+
148
+ .c.o:
149
+ $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) -c $<
150
+
151
+ $(DLLIB): $(OBJS) Makefile
152
+ @-$(RM) $@
153
+ $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
154
+
155
+
156
+
157
+ $(OBJS): ruby.h defines.h
Binary file
Binary file
Binary file
@@ -0,0 +1,12 @@
1
+ have_library: checking for main() in -lgme... -------------------- yes
2
+
3
+ "gcc -o conftest -I. -I/usr/lib/ruby/1.8/i486-linux -I.. -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -g -g -O2 -fPIC conftest.c -L. -L/usr/lib -L. -Wl,-Bsymbolic-functions -rdynamic -Wl,-export-dynamic -lruby1.8-static -lgme -lpthread -lrt -ldl -lcrypt -lm -lc"
4
+ checked program was:
5
+ /* begin */
6
+ 1: /*top*/
7
+ 2: int main() { return 0; }
8
+ 3: int t() { void ((*volatile p)()); p = (void ((*)()))main; return 0; }
9
+ /* end */
10
+
11
+ --------------------
12
+
Binary file
data/ext/gme/gme.c CHANGED
@@ -8,13 +8,17 @@ VALUE cEmulator;
8
8
 
9
9
  VALUE eGenericException;
10
10
  VALUE eInvalidFile;
11
+ VALUE eTrackNotStarted;
11
12
 
12
13
  void Init_gme_ext()
13
14
  {
14
15
  mGME = rb_define_module("GME");
16
+
15
17
  rb_require("gme/exceptions");
16
18
  eGenericException = rb_define_class_under(mGME, "GenericException", rb_eException);
17
19
  eInvalidFile = rb_define_class_under(mGME, "InvalidFile", eGenericException);
20
+ eTrackNotStarted = rb_define_class_under(mGME, "TrackNotStarted", eGenericException);
21
+
18
22
  cEmulator = rb_define_class_under(mGME, "Emulator", rb_cObject);
19
23
  rb_funcall(cEmulator, rb_intern("attr_reader"), 1, ID2SYM(rb_intern("info")));
20
24
  rb_funcall(cEmulator, rb_intern("attr_reader"), 1, ID2SYM(rb_intern("track_count")));
@@ -30,4 +34,8 @@ void Init_gme_ext()
30
34
  rb_define_method(cEmulator, "start_track", gme_ruby_start_track, -1);
31
35
  rb_define_method(cEmulator, "get_samples", gme_ruby_get_samples, 0);
32
36
  rb_define_method(cEmulator, "play_to_file", gme_ruby_play_to_file, 1);
37
+ rb_define_method(cEmulator, "track_started?", gme_ruby_track_started, 0);
38
+ rb_define_method(cEmulator, "tell", gme_ruby_tell, 0);
39
+ rb_define_method(cEmulator, "track_ended?", gme_ruby_track_ended, 0);
40
+ rb_define_method(cEmulator, "ignore_silence", gme_ruby_ignore_silence, 1);
33
41
  }
data/ext/gme/gme_funcs.c CHANGED
@@ -6,6 +6,7 @@
6
6
  extern VALUE cEmulator;
7
7
  extern VALUE eGenericException;
8
8
  extern VALUE eInvalidFile;
9
+ extern VALUE eTrackNotStarted;
9
10
 
10
11
  void gme_ruby_emu_free(void* pointer);
11
12
 
@@ -97,6 +98,9 @@ VALUE gme_ruby_open(int argc, VALUE* argv, VALUE self)
97
98
  int track_count = gme_track_count(emulator);
98
99
  rb_iv_set(new_instance, "@track_count", INT2FIX(track_count));
99
100
 
101
+ // no track has been started
102
+ rb_iv_set(new_instance, "@track_started", Qfalse);
103
+
100
104
  // returns the new instance of GME::Emulator
101
105
  return new_instance;
102
106
  }
@@ -131,15 +135,16 @@ VALUE gme_ruby_start_track(int argc, VALUE* argv, VALUE self)
131
135
 
132
136
  // starts the track
133
137
  handle_error(gme_start_track(emulator, c_track), eGenericException);
138
+
139
+ // a track has been started...
140
+ rb_iv_set(self, "@track_started", Qtrue);
134
141
 
135
142
  // returns the track number started
136
143
  return INT2FIX(c_track);
137
144
  }
138
145
 
139
146
  /*
140
- * Plays the specified number of samples
141
- * FIXME: This function allocates a buffer each time it is called.
142
- * Maybe we should use a one-time allocated buffer.
147
+ * Plays some samples, and returns them as an array
143
148
  */
144
149
  VALUE gme_ruby_get_samples(VALUE self)
145
150
  {
@@ -148,6 +153,9 @@ VALUE gme_ruby_get_samples(VALUE self)
148
153
  short* c_buffer;
149
154
  int c_buffer_len;
150
155
 
156
+ VALUE track_started = rb_iv_get(self, "@track_started");
157
+ if(!RTEST(track_started)) rb_raise(eTrackNotStarted, "you must start a track first");
158
+
151
159
  Data_Get_Struct(self, Music_Emu, emulator);
152
160
 
153
161
  // recovers a pointer to the internal buffer
@@ -176,11 +184,17 @@ VALUE gme_ruby_play_to_file(VALUE self, VALUE file)
176
184
  Music_Emu* emulator;
177
185
  int track = 0; // plays track 0 (TODO?)
178
186
 
187
+ // throws an exception if the file passed is not valid
188
+ // FIXME: currently it *requires* an object of class File
189
+ if(NIL_P(file) || TYPE(file) != T_FILE) {
190
+ rb_raise(eGenericException, "the file is not valid.");
191
+ }
192
+
179
193
  // allocates memory for the buffer
180
194
  buffer = (short*) malloc(buffer_size * sizeof(short));
181
195
 
182
196
  Data_Get_Struct(self, Music_Emu, emulator);
183
-
197
+
184
198
  // TODO: fix for ruby-1.9 (fptr->stdio_file)
185
199
  stdio_file = RFILE(file)->fptr->f;
186
200
 
@@ -192,6 +206,9 @@ VALUE gme_ruby_play_to_file(VALUE self, VALUE file)
192
206
  // starts track 0
193
207
  handle_error(gme_start_track(emulator, track), eGenericException);
194
208
 
209
+ // track 0 has been started
210
+ rb_iv_set(self, "@track_started", Qtrue);
211
+
195
212
  // gets the play length of the track from the info hash
196
213
  VALUE info_hash = rb_iv_get(self, "@info");
197
214
  int play_length = FIX2INT(rb_hash_aref(info_hash, ID2SYM(rb_intern("play_length"))));
@@ -209,6 +226,75 @@ VALUE gme_ruby_play_to_file(VALUE self, VALUE file)
209
226
  return Qnil;
210
227
  }
211
228
 
229
+ /*
230
+ * Returns true if a track has been started
231
+ * and false in other cases.
232
+ */
233
+ VALUE gme_ruby_track_started(VALUE self)
234
+ {
235
+ VALUE track_started = rb_iv_get(self, "@track_started");
236
+
237
+ if(RTEST(track_started)) return Qtrue;
238
+
239
+ return Qfalse;
240
+ }
241
+
242
+ /*
243
+ * Returns the number of milliseconds played since the start of the track
244
+ */
245
+ VALUE gme_ruby_tell(VALUE self)
246
+ {
247
+ Music_Emu* emulator;
248
+ int milliseconds;
249
+
250
+ Data_Get_Struct(self, Music_Emu, emulator);
251
+
252
+ // gets number of millisecons played
253
+ milliseconds = gme_tell(emulator);
254
+
255
+ return INT2FIX(milliseconds);
256
+ }
257
+
258
+
259
+ /*
260
+ * Returns true if the track has ended
261
+ * and false in other cases
262
+ */
263
+ VALUE gme_ruby_track_ended(VALUE self)
264
+ {
265
+ Music_Emu* emulator;
266
+
267
+ // throws an exception if a track hasn't been started
268
+ VALUE track_started = gme_ruby_track_started(self);
269
+ if(!RTEST(track_started)) rb_raise(eTrackNotStarted, "you have to start a track first");
270
+
271
+ Data_Get_Struct(self, Music_Emu, emulator);
272
+
273
+ // checks if the track has ended
274
+ int track_ended = gme_track_ended(emulator);
275
+ if(track_ended) return Qtrue;
276
+
277
+ return Qfalse;
278
+ }
279
+
280
+ /*
281
+ * sets whether or not to disable automatic end of track detection
282
+ * and skipping at the beginning
283
+ */
284
+ VALUE gme_ruby_ignore_silence(VALUE self, VALUE ignore)
285
+ {
286
+ Music_Emu* emulator;
287
+
288
+ Data_Get_Struct(self, Music_Emu, emulator);
289
+
290
+ // if the parameter 'ignore' is true, then ignore the automatic
291
+ // handling of silences
292
+ if(RTEST(ignore)) gme_ignore_silence(emulator, 1);
293
+ else gme_ignore_silence(emulator, 0);
294
+
295
+ return Qnil;
296
+ }
297
+
212
298
  /*
213
299
  * free function to the GME::Emulator wrapper for Music_Emu
214
300
  */
data/ext/gme/gme_funcs.h CHANGED
@@ -9,5 +9,9 @@ VALUE gme_ruby_close(VALUE self);
9
9
  VALUE gme_ruby_start_track(int argc, VALUE* argv, VALUE self);
10
10
  VALUE gme_ruby_get_samples(VALUE self);
11
11
  VALUE gme_ruby_play_to_file(VALUE self, VALUE file);
12
+ VALUE gme_ruby_track_started(VALUE self);
13
+ VALUE gme_ruby_tell(VALUE self);
14
+ VALUE gme_ruby_track_ended(VALUE self);
15
+ VALUE gme_ruby_ignore_silence(VALUE self, VALUE ignore);
12
16
 
13
17
  #endif
@@ -1,7 +1,13 @@
1
1
  module GME
2
+ # describes a generic exception, related to this gem
2
3
  class GenericException < Exception
3
4
  end
4
-
5
+
6
+ # thrown when a path supplied doesn't point to a valid file for the library
5
7
  class InvalidFile < GenericException
6
8
  end
9
+
10
+ # thrown when one tries to play a file without starting a track first
11
+ class TrackNotStarted < GenericException
12
+ end
7
13
  end
data/lib/gme_ext.so ADDED
Binary file
@@ -0,0 +1,126 @@
1
+ require 'spec_helper'
2
+ require 'digest/sha1'
3
+
4
+ include GME
5
+
6
+ describe Emulator, "when first created" do
7
+
8
+ before(:each) do
9
+ path = File.expand_path(File.dirname(__FILE__) + '/fixtures/sample.spc')
10
+ @song = Emulator.open(path)
11
+ end
12
+
13
+ it "should not be nil" do
14
+ @song.should_not be_nil
15
+ end
16
+
17
+ it "should acknowledge 1 track" do
18
+ @song.track_count.should == 1
19
+ end
20
+
21
+ it "should respond to the message 'info' and return a non-empty container" do
22
+ @song.info.should_not be_empty
23
+ end
24
+
25
+ it "should correctly return the metadata of track 0 in a hash" do
26
+ @song.info[:game].should == "Super Castlevania 4"
27
+ @song.info[:song].should == "Stage Clear"
28
+ @song.info[:length].should == 4000
29
+ @song.info[:copyright].should == "1991 Konami"
30
+ @song.info[:author].should == "Masanori Adachi, Taro Kudou"
31
+ @song.info[:play_length].should == 4000
32
+ @song.info[:comment].should == ""
33
+ @song.info[:dumper].should == "Datschge"
34
+ @song.info[:system].should == "Super Nintendo"
35
+ @song.info[:loop_length].should == -1
36
+ end
37
+
38
+ it "should indicate that no track has been started" do
39
+ @song.track_started?.should be_false
40
+ end
41
+
42
+ it "should raise an exception when asked if the current track has ended" do
43
+ lambda { @song.track_ended? }.should raise_exception(TrackNotStarted)
44
+ end
45
+
46
+ it "should return 0 when asked for the time played since start" do
47
+ @song.tell.should == 0
48
+ end
49
+
50
+ it "should raise and exception if get_samples is called" do
51
+ lambda { @song.get_samples }.should raise_exception(TrackNotStarted)
52
+ end
53
+
54
+ context "when play_to_file is called" do
55
+
56
+ context "when given an invalid file" do
57
+
58
+ it "should raise an exception if the file argument is nil" do
59
+ @file = nil
60
+ lambda { @song.play_to_file(@file) }.should raise_exception(GenericException)
61
+ end
62
+
63
+ it "should raise an exception if the file argument is not of File class" do
64
+ @file = StringIO.new
65
+ lambda { @song.play_to_file(@file) }.should raise_exception(GenericException)
66
+ end
67
+
68
+ end
69
+
70
+ context "when given a valid file" do
71
+
72
+ before(:each) do
73
+ @file = File.new("temp.out", "w+")
74
+ end
75
+
76
+ it "should play track 0 and write the samples to the specified file" do
77
+ lambda { @song.play_to_file(@file) }.should_not raise_exception
78
+ @song.close
79
+ File.size("temp.out").should == 706560
80
+ Digest::SHA1.hexdigest(File.read("temp.out")).should == "5a557efdb64cb71baa953b7129663b1503f4a7d9"
81
+ end
82
+
83
+ after(:each) do
84
+ @file.close unless @file.closed?
85
+ File.delete("temp.out") if File.exists?("temp.out")
86
+ end
87
+
88
+ end
89
+ end
90
+
91
+ context "when starting a track" do
92
+
93
+ it "should start the specified track and return that number when successful" do
94
+ @song.start_track(0).should == 0
95
+ end
96
+
97
+ it "should start track 0 when no track number is specified" do
98
+ @song.start_track.should == 0
99
+ end
100
+
101
+ it "should raise an exception when the specified track number is invalid" do
102
+ lambda { @song.start_track(1) }.should raise_exception(GenericException)
103
+ end
104
+ end
105
+
106
+ context "when a track has been started" do
107
+ before(:each) do
108
+ @song.start_track(0)
109
+ end
110
+
111
+ it "should indicate that a track has been started when asked" do
112
+ @song.track_started?.should be_true
113
+ end
114
+
115
+ it "should indicate that the track has not ended" do
116
+ @song.track_ended?.should be_false
117
+ end
118
+
119
+ it "should return 0 as the time played since the start of the track" do
120
+ @song.tell.should == 0
121
+ end
122
+
123
+ # TODO: get_samples, open with options, etc.
124
+
125
+ end
126
+ end
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'spec'
3
+
4
+ require File.expand_path(File.dirname(__FILE__) + "/../lib/gme.rb")
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 12
9
- version: 0.0.12
8
+ - 13
9
+ version: 0.0.13
10
10
  platform: x86-linux
11
11
  authors:
12
12
  - "Carlos Beltr\xC3\xA1n-Recabarren"
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-21 00:00:00 -04:00
17
+ date: 2010-04-30 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies: []
20
20
 
@@ -32,6 +32,12 @@ files:
32
32
  - Rakefile
33
33
  - VERSION
34
34
  - ext/gme/Makefile
35
+ - ext/gme/build/Makefile
36
+ - ext/gme/build/gme.o
37
+ - ext/gme/build/gme_ext.so
38
+ - ext/gme/build/gme_funcs.o
39
+ - ext/gme/build/mkmf.log
40
+ - ext/gme/build/util.o
35
41
  - ext/gme/extconf.rb
36
42
  - ext/gme/gme.c
37
43
  - ext/gme/gme_funcs.c
@@ -41,6 +47,7 @@ files:
41
47
  - lib/gme.rb
42
48
  - lib/gme/exceptions.rb
43
49
  - lib/gme/gme.rb
50
+ - lib/gme_ext.so
44
51
  has_rdoc: true
45
52
  homepage: http://www.beltran-recabarren.com
46
53
  licenses: []
@@ -71,5 +78,6 @@ rubygems_version: 1.3.6
71
78
  signing_key:
72
79
  specification_version: 3
73
80
  summary: gme for Ruby
74
- test_files: []
75
-
81
+ test_files:
82
+ - spec/emulator_spec.rb
83
+ - spec/spec_helper.rb