Skip to content

Instantly share code, notes, and snippets.

@cored
Created October 25, 2018 13:38
Show Gist options
  • Save cored/9beb7759ea8ce6620aea5db63556aac7 to your computer and use it in GitHub Desktop.
Save cored/9beb7759ea8ce6620aea5db63556aac7 to your computer and use it in GitHub Desktop.
[41] pry(main)> person
=> {:pounds=>135, :kcal=>1500}
[42] pry(main)> macros
=> [{:protein_per_pound=>0.36, :fat_per_pound=>0.5, :daily_carbs=>255}]
[43] pry(main)> oatmeal_macros
=> {:cup=>{:protein=>5.9, :fat=>3.6, :carbs=>28.1}}
[44] pry(main)> raisins_macros
=> {:cup=>{:protein=>0.0, :fat=>0.0, :carbs=>33}}
[45] pry(main)> person = macros.reduce(person) do |person, macro|
[45] pry(main)* person = person.merge({protein_needed: person[:pounds] * macro[:protein_per_pound]})
[45] pry(main)* person = person.merge({fat_needed: person[:pounds] * macro[:fat_per_pound]})
[45] pry(main)* person
[45] pry(main)* end
=> {:pounds=>135, :kcal=>1500, :protein_needed=>48.6, :fat_needed=>67.5}
[47] pry(main)> person[:protein_needed] - oatmeal_macros[:cup][:protein]
=> 42.7
[48] pry(main)> person[:fat_needed] - oatmeal_macros[:cup][:fat]
=> 63.9
[49] pry(main)> person[:carbs_needed] = 255
=> 255
[51] pry(main)> person
=> {:pounds=>135, :kcal=>1500, :protein_needed=>48.6, :fat_needed=>67.5, :carbs_needed=>255}
[52] pry(main)> person[carbs_needed] - (oatmeal_macros[:cup][:carbs] + raisins_macros[:cup][:carbs])
[53] pry(main)> person[:carbs_needed] - (oatmeal_macros[:cup][:carbs] + raisins_macros[:cup][:carbs])
=> 193.9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment