Heavily inspired by lardawge-rfm, see github.com/lardawge/rfm.
This library parses a Filemaker Pro FMPXMLRESULT type document, nothing more, nothing less
Easy, just use:
gem install rfilemaker
To parse a Filemaker Pro export file named ‘export.xml’, use:
RFilemaker.parse('export.xml')
This returns an array of hashes, each of which represent a row in your Filemaker database. Fields are automatically converted to their ruby types.
For instance, parsing the following XML export:
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult"> <ERRORCODE>0</ERRORCODE> <PRODUCT BUILD="5/23/2002" NAME="FileMaker Pro" VERSION="7.0"/> <DATABASE DATEFORMAT="MM/dd/yy" LAYOUT="summary" NAME="Employees.fp7" RECORDS="23" TIMEFORMAT="hh:mm:ss"/> <METADATA> <FIELD EMPTYOK="NO" MAXREPEAT="1" NAME="First Name" TYPE="TEXT"/> <FIELD EMPTYOK="NO" MAXREPEAT="1" NAME="Last Name" TYPE="TEXT"/> <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Department" TYPE="TEXT"/> </METADATA> <RESULTSET FOUND="2"> <ROW MODID="47" RECORDID="34"> <COL> <DATA>Joe</DATA> </COL> <COL> <DATA>Smith</DATA> </COL> <COL> <DATA>Engineering</DATA> </COL> </ROW> <ROW MODID="89" RECORDID="78"> <COL> <DATA>Susan</DATA> </COL> <COL> <DATA>Jones</DATA> </COL> <COL> <DATA>Marketing</DATA> </COL> </ROW> </RESULTSET> </FMPXMLRESULT>
gives this Ruby hash:
[{"last name"=>"Smith", "department"=>"Engineering", "first name"=>"Joe"}, {"last name"=>"Jones", "department"=>"Marketing", "first name"=>"Susan"}]
The resulting hash is case-insensitive, so keys can be looked up in any given case.
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.