You really shouldn't for few reasons:
-Emerald is a far more stable base, I can't explain why exactly as I'm not experienced enough, but all the great hackers know that.
-Emerald has all the features of Ruby + more
-Ruby code is messy and not convenient to use (perhaps that's why Emerald is more stable)
-Emerald has more hack-features added
Though I'm gonna answer you : There's a table for the battlescripts. That table contains all the pointers of the command used in the battlescripts, there's some documentation about the said commands in JPAN's and Jambo51's thread.
The command "0x00" is the "attackcanceler". That command allows the move to fail : because you pokemon is asleep, confused, or because you use a ground move against levitate, because you don't have PP anymore or whatever else. Note that sometimes that a move is stopped outside of the attackcanceler, look at my routine for desolate land for exemple.
MrDollSteak adviced me to put the check for protean in the attackcanceler and it's indeed the good way to do it after reading how Protean works.
For the "BattleData", I saw it once in some routine and then used it. It contains many information on the pokemon in battle : Boost, stats, number of ability, number index, etc etc.
You can find pointer by using debugger (VBA-SDL-H)
The curmove index has been also used in some routine, but you can also find it by doing the following steps : Use a move, pause your emulator, dump the RAM memory, looking for the index numbers reversed (hex) of your move with an hex editor. Doing this 3 - 4 times to ensure you have the good address
The type buffer has been used by Tlatchli (maybe I'm mispelling) in his Protean routine (which inspired me), I don't know how he found this though, I didn't really paid attention to that address.
Same for the "checktypeloc", Chaos Rushed used it so I reused it, but you can find this one by reading some routines in IDA
You can also find BankUser the same way.
Oh and yeah speaking of IDA, there's no online IDA DataBase for Ruby while FireRed and Emerald have one.
So, again : That's a good exercise to find pointer, but please don't do this with Ruby, use fire red or Emerald (which is better IMO) as it'd could help instead of wasting time on Ruby