iancanderson / Ingreedy
natural language parsing of recipe ingredients, making sense of amounts, units, and ingredients
Stars: ✭ 179
Programming Languages
ruby
36898 projects - #4 most used programming language
Usage
result = Ingreedy.parse('1 lb. potatoes')
print result.amount
#=> 1.0
print result.unit
#=> :pound
print result.ingredient
#=> "potatoes"
I18n and custom dictionaries
Ingreedy.dictionaries[:fr] = {
units: { dash: ['pincée'] },
numbers: { 'une' => 1 },
prepositions: ['de']
}
Ingreedy.locale = :fr # Also automatically follows I18n.locale if available
result = Ingreedy.parse('une pincée de sucre')
print result.amount
#=> 1.0
print result.unit
#=> :dash
print result.ingredient
#=> "sucre"
Handling amounts
By default, Ingreedy will convert all amounts to a rational number:
result = Ingreedy.parse("1 1/2 cups flour")
print result.amount
#=> 3/2
However, setting Ingreedy.preverse_amounts = true
, will allow amounts
to be detected and returned as originally input:
Ingreedy.preserve_amounts = true
result = Ingreedy.parse("1 1/2 cups flour")
print result.amount
#=> 1 1/2
Pieces of Flair
Development
Run the tests:
rspec spec
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].