I have started a programming blog here.
Managed to compile and package Ruby 1.9.0-3 for Openmoko!!!
Download: ruby19-complete_190-3_armv4t
[Update]
Here’s the ruby package without dev and documentation (this would be smaller and more appropriate on the phone) – ruby19_190-3_armv4t
Creating a Ruby 1.9 sandbox
1. mkdir /home/user/ruby19 (example folder)
2. cd /home/user/ruby19
3. mkdir src
4. cd src
5. wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.0-1.tar.bz2
6. tar -jxvf ruby-1.9.0-1.tar.bz2
7. cd ruby-1.9.0-1
8. ./configure –prefix=/home/user/ruby19
9. make
10. make install
Now you can switch to this sandbox at any time by executing ‘export PATH=/home/user/ruby19/bin:$PATH’ in a shell.
Chipmunk Installation
Chipmunk is required for Rubygame 3
1. wget http://files.slembcke.net/chipmunk/release/ChipmunkLatest.tgz
2. tar -zxvf ChipmunkLatest.tgz
3. cd Chipmunk-4.0.2
4. cd ruby
5. export PATH=/home/user/ruby19/bin:$PATH (* switching to Ruby 1.9 sandbox)
6. ruby extconf.rb
7. make
8. make install
Rubygame 3 Installation
1. mkdir /home/user/rubygame (example path)
2. cd /home/user/rubygame
3. svn co https://rubygame.svn.sourceforge.net/svnroot/rubygame/trunk rubygame3
4. cd rubygame3/
5. export PATH=/home/user/ruby19/bin:$PATH (* switching to Ruby 1.9 sandbox)
6. cat Rakefile | sed s/PLATFORM/RUBY_PLATFORM/ > Rakefile.new;mv Rakefile.new Rakefile (* this replaces PLATFORM with RUBY_PLATFORM in the Rakefile)
7. CFLAGS=”-I/home/user/ruby19/include/ruby-1.9.0 -I/home/user/ruby19/include/ruby-1.9.0/i686-linux” rake install
8. cd ~/rubygame/rubygame3/samples/
9. ruby chimp.rb
10. Punch the monkey!!
How easy would it be to build include graphs in ruby?
Here’s my first attempt:
[ruby]
$list_of_files = Hash.new
$list_of_files.each {|node|
node = Array.new
}
def store_includes(pathname)
lines = IO.readlines(pathname)
lines.each {|line|
if line.include? “#include”
include_file = line[line.index("#include")+"#include".size,line.size]
fidx = 0
sidx = 0
if include_file.include?(“”")
fidx = include_file.index(“”") + 1
sidx = include_file.index(“”",fidx+1) – 1
end
if include_file.include?(‘< ')
fidx = include_file.index('<') + 1
sidx = include_file.index('>‘) – 1
end
include_file = include_file[fidx..sidx]
$list_of_files[pathname].add(include_file)
end
}
end
def iterate_files(pathname)
list = [] #alternate way of initializing an array
if pathname==”.” or pathname==nil
list = Dir["*"]
else
list = Dir[pathname + File::SEPERATOR + "*"]
end
list.each { |path|
if File.filetype(path) == “directory”
iterate_files(pathname)
end
if File.filetype(path) == “file”
store_includes(path)
end
}
end
[/ruby]
Any comments?
Is there a more efficient way to extract the file extensions in ruby? I currently do the following.
[ruby]
ext = File.basename(filepath).reverse.split(‘.’)[0].reverse
[/ruby]