Qbxml is a QBXML parser and validation tool.
Add this line to your application's Gemfile:
gem 'qbxml'
And then execute:
$ bundle
Or install it yourself as:
$ gem install qbxml
The parser can be initialized to either Quickbooks (:qb) or Quickbooks Point of Sale (:qbpos)
q = Qbxml.new(:qb)
Return all types defined in the schema
q.types
Return all types matching a certain pattern
q.types('Customer')
q.types(/Customer/)
Print the xml template for a specific type
puts q.describe('CustomerModRq')
Convert valid QBXML to a ruby hash
q.from_qbxml(xml)
Convert a ruby hash to QBXML, skipping validation
q.to_qbxml(hsh)
Convert a ruby hash to QBXML and validate all types
q.to_qbxml(hsh, validate: true)
Correct case conversion depends on the following ActiveSupport inflection settings. Correct behaviour cannot be guaranteed if any of the following inflections are modified.
ACRONYMS = ['AP', 'AR', 'COGS', 'COM', 'UOM', 'QBXML', 'UI', 'AVS', 'ID',
'PIN', 'SSN', 'COM', 'CLSID', 'FOB', 'EIN', 'UOM', 'PO', 'PIN', 'QB']
ActiveSupport::Inflector.inflections do |inflect|
ACRONYMS.each { |a| inflect.acronym a }
end
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request