Invenscience aims to make maintaining and ordering a list of parts easy for all you electronic engineers out there.
Still starting off and getting the backend working properly. In other words, views aren't being touched with a 10-foot pole just yet. Models and their respective specs are the sole receivers of our love for now.
Parsers are the interface to parts providers, which in this context refer to online vendors. Their job is to crunch on HTML for breakfast and spit out useful information on items and orders.
They live inside app/parsers, and should be namespaced inside the Parser module. Eventually, Parser::Generic will provide a starting point for those wanting to write parsers of their own. We're not there yet, though.
Warehouses are the alter-egos to parts providers. In short, they represent a collection of items, and also serve as the gateway to parse websites (a Warehouse includes a Parser's methods).
Setting a parser is easy and simple!
w = Warehouse.new w.name = 'Sparkfun' w.parser = Parser::Sparkfun w.parse "http://www.sparkfun.com/commerce/product_info.php?products_id=9000" # => #<Item>
But is not repeated excessively.
w = Warehouse.first(:name => 'Sparkfun') w.parse "http://www.sparkfun.com/commerce/product_info.php?products_id=9000" # => #<Item>