Giter Club home page Giter Club logo

ingreedy's Introduction

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']
  range_separators: ['ou']
}

Ingreedy.locale = :fr # Also automatically follows I18n.locale and I18n.fallbacks 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

  • Gem Version
  • Build Status
  • Code Climate
  • Coverage Status

Development

To try to make development easier, I have added a Dockerfile and docker-compose.yml to make things as boring and simple as possible. If you have Docker installed you should be able to simply start developing (and work on the specs) by doing:

docker-compose build
docker-compose run ingreedy bash

# Now you will get a bash prompt inside the docker container
bundle # to install gems
bundle exec rspec

I realize that the above could be improved with better Dockerfile or docker-compose.yml or changing the way the volumes are handled, or making the container totally transient. This was just the easiest way for me to make the changes I needed, and I'm still pretty new to working on Gems in general.

ingreedy's People

Contributors

andyw8 avatar balvig avatar djcp avatar firewalker06 avatar hahmed avatar halogenandtoast avatar humandoing avatar iancanderson avatar mlarraz avatar ollieh-m avatar tapster avatar timboisvert avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.