nutrition_calculator 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bb7c8df58d699d0f69ba05ba196c2ffe55f1976e
4
- data.tar.gz: d3185d82f8c2dd202a37a6e17e5ce4a05978840b
3
+ metadata.gz: dd32e4e0cc71be61a0717bb8e04de917ed5743dc
4
+ data.tar.gz: 73c3d155d32120421554e8b4b3bd3442d05efe66
5
5
  SHA512:
6
- metadata.gz: b1e6934c01fe8b9586d8b6e2bb88d9d7400f2fe8f1993eac742f19beb7014ea17ef694cb91705c6ddac4280f64306cc2fc2abca551e44b3d3dd2a5c8b7c8409a
7
- data.tar.gz: e195e994cb4700b66cbb827ab32f6578b88f113a3884c6e4f120139fc92de83f0f6d5ba2994cd08f57bc523d6cb5cbdccd22c90a49d2e6cd714673a6780ea3fc
6
+ metadata.gz: 9ae10f6a15caad532f47181d591171db462d881386f7e4ef96f7c1595144ed03a494ed7ca29d2412576031623bd5a8fd5dbb186582fc297a8ef02767b9abe393
7
+ data.tar.gz: 04e310f5b78a9eb8e96e9cc63eef0402870f48046297fb2b7f4ff4aff812621e4b4d58f863a79c402a5c9996b231bde7d922b9a3219b2d38b9a60748e3c29b37
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ case ARGV[0]
4
+ when nil, '-h', '--help'
5
+ puts <<-EOF
6
+ USAGE: run_calorie_budgeter {DATA_FILE}
7
+
8
+ DATA_FILE should be a YAML file with the following format:
9
+
10
+ ----
11
+ resting_metabolic_rate: 1950
12
+ weekly_calorie_goal: 10_150
13
+
14
+ 1:
15
+ calories_consumed: 1_998
16
+ calories_burned: 182
17
+ 2:
18
+ calories_consumed: 1_998
19
+ calories_burned: 182
20
+ 3:
21
+ calories_consumed: 1_998
22
+ calories_burned: 182
23
+ 4:
24
+ calories_consumed: 1_998
25
+ calories_burned: 182
26
+ 5:
27
+ calories_consumed: 1_998
28
+ calories_burned: 182
29
+ 6:
30
+ calories_consumed: 1_998
31
+ calories_burned: 182
32
+ 7:
33
+ calories_consumed: 1_998
34
+ calories_burned: 182
35
+ ----
36
+
37
+ Each numbered section in the file corresponds to a day of the week, where:
38
+
39
+ 1: Monday
40
+ 2: Tuesday
41
+ 3: Wednesday
42
+ 4: Thursday
43
+ 5: Friday
44
+ 6: Saturday
45
+ 7: Sunday
46
+
47
+ This program considers Monday to be the start of the dieting week (i.e. that
48
+ is when the weekly calorie budget starts over).
49
+
50
+ EOF
51
+ exit
52
+ end
53
+
54
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
55
+
56
+ require 'nutrition_calculator/calorie_budgeter'
57
+ require 'yaml'
58
+ require 'date'
59
+
60
+
61
+ def data
62
+ @data ||= YAML.load_file(ARGV.first)
63
+ end
64
+
65
+ def current_day_num
66
+ day = Date.new.wday
67
+ day = 7 if day == 0 # Sunday is the 7th day of the diet week
68
+ day
69
+ end
70
+
71
+ def data_for_day(day_num)
72
+ data.fetch(day_num) do
73
+ { 'calories_burned' => 0, 'calories_consumed' => 0 }
74
+ end
75
+ end
76
+
77
+ def prior_days_net_calories
78
+ (1..current_day_num).reduce { |sum, day_num|
79
+ day_data = data_for_day(day_num)
80
+ sum + (day_data['calories_consumed'] - day_data['calories_burned'])
81
+ }
82
+ end
83
+
84
+ def today
85
+ data_for_day(current_day_num)
86
+ end
87
+
88
+ def calories_burned_today
89
+ today['calories_burned']
90
+ end
91
+
92
+ def calories_consumed_today
93
+ today['calories_consumed']
94
+ end
95
+
96
+ cb = NutritionCalculator::CalorieBudgeter.new
97
+ cb.resting_metabolic_rate = data['resting_metabolic_rate']
98
+ cb.weekly_calorie_goal = data['weekly_calorie_goal']
99
+ cb.current_day_of_week = current_day_num
100
+ cb.prior_days_calories = prior_days_net_calories
101
+ cb.calories_burned = calories_burned_today
102
+ cb.calories_consumed = calories_consumed_today
103
+
104
+ puts "You have consumed #{cb.calories_consumed} calories today."
105
+ puts "You have burned #{cb.calories_burned} calories today."
106
+ puts "You need to consume #{cb.calories_remaining} more calories today to hit your target of #{cb.target_daily_calorie_consumption}."
107
+ puts "You need to exercise to burn off #{cb.exercise_calories_remaining} more calories today to hit your net calorie goal of #{cb.daily_calorie_goal}."
@@ -1,3 +1,3 @@
1
1
  module NutritionCalculator
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nutrition_calculator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Wilger
@@ -99,7 +99,8 @@ description: "\n NutritionCalculator provides a set of core libraries to help
99
99
  and monitoring the nutritional balance of a diet.\n "
100
100
  email:
101
101
  - johnwilger@gmail.com
102
- executables: []
102
+ executables:
103
+ - run_calorie_budgeter
103
104
  extensions: []
104
105
  extra_rdoc_files: []
105
106
  files:
@@ -111,6 +112,7 @@ files:
111
112
  - LICENSE.txt
112
113
  - README.md
113
114
  - Rakefile
115
+ - bin/run_calorie_budgeter
114
116
  - features/calorie_budgeter.feature
115
117
  - features/step_definitions/.keep
116
118
  - features/step_definitions/calorie_budgeter_steps.rb