fitgem-app 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/bin/fitgem +130 -0
  3. metadata +79 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0a0f49f6c140e29b5e2b7c73011cd5d5acb5b05b
4
+ data.tar.gz: a8c6fd7b2d5e73c56fd7a54063de3cb6d56a3759
5
+ SHA512:
6
+ metadata.gz: b95189fce8f159a0788d4d8aa595ffc2e72607fbe21c63c499cb1cd2d0753c2c334e995e31c7b339528dfb14662cf1ccd3319cc32e31e7dcf878cd5a45313ff5
7
+ data.tar.gz: 58f064b14f43cbf0565dec75744f2daf7c1f5dfb5749d78e76ea146244020b66ec4ce1d4d3d6ec2064655f7c35fb71b957da5d4cc18e1ca6453963aaf73c4273
data/bin/fitgem ADDED
@@ -0,0 +1,130 @@
1
+ #!/usr/bin/env ruby
2
+ require 'httparty'
3
+ require 'multi_json'
4
+
5
+ puts "Welcome to FitGem!"
6
+ class FitbitAccount
7
+ include HTTParty
8
+ @@base_uri = 'api.fitbit.com/1/user'
9
+
10
+ def initialize()
11
+ @access_token = `printf $FB_ACCESS_TOKEN`
12
+ @user_id = `printf $FB_USER_ID`
13
+
14
+ if @access_token == "" && @user_id == ""
15
+ puts "We need some information. It will be saved"
16
+ print "Copy your Access Token: "
17
+ @access_token = gets.chomp
18
+
19
+ print "Copy your User ID: "
20
+ @user_id = gets.chomp
21
+
22
+ system( "clear" ) # Clears Screen
23
+ # system( "echo \"export FB_ACCESS_TOKEN=#{@access_token}\" >> ~/.bashrc")
24
+ @authorization_header = {"Authorization" => "Bearer #{@access_token}"}
25
+ end
26
+ end
27
+
28
+ def steps
29
+ @response = self.class.get("https://#{@@base_uri}/#{@user_id}/activities/steps/date/today/1d/1min.json",
30
+ :headers => {"Authorization" => "Bearer #{@access_token}"})
31
+ @parsed_response = MultiJson.load(@response.body)
32
+ @parsed_response = @parsed_response["activities-steps"][0]["value"].to_i
33
+ end
34
+
35
+ def floors
36
+ @response = self.class.get("https://#{@@base_uri}/#{@user_id}/activities/floors/date/today/1d/1min.json",
37
+ :headers => {"Authorization" => "Bearer #{@access_token}"})
38
+ @parsed_response = MultiJson.load(@response.body)
39
+ @parsed_response = @parsed_response["activities-floors"][0]["value"].to_i
40
+ end
41
+
42
+ def cals_out
43
+ @response = self.class.get("https://#{@@base_uri}/#{@user_id}/activities/calories/date/today/1d/1min.json",
44
+ :headers => {"Authorization" => "Bearer #{@access_token}"})
45
+ @parsed_response = MultiJson.load(@response.body)
46
+ @parsed_response = @parsed_response["activities-calories"][0]["value"].to_i
47
+ end
48
+
49
+ def distance
50
+ @response = self.class.get("https://#{@@base_uri}/#{@user_id}/activities/distance/date/today/1d/1min.json",
51
+ :headers => {"Authorization" => "Bearer #{@access_token}"})
52
+ @parsed_response = MultiJson.load(@response.body)
53
+ @parsed_response = @parsed_response["activities-distance"][0]["value"]
54
+ end
55
+
56
+ def full_report
57
+ # Full Report
58
+ puts "Full Report:\n-------"
59
+ puts "#{self.steps} steps"
60
+ puts "#{self.distance} miles"
61
+ puts "#{self.floors} stairs climbed"
62
+ puts "#{self.cals_out} calories burned"
63
+ end
64
+
65
+ def hello
66
+ return "Hello, World!"
67
+ end
68
+ end
69
+
70
+ fitgem = FitbitAccount.new()
71
+ exit_var = false
72
+ travis_ci = `printf $TRAVIS_CI`
73
+ # Main menu
74
+ while !exit_var
75
+ if travis_ci == "true"
76
+ `clear`
77
+ puts "Notice: Travis CI detected\n"
78
+ puts "===Full Report==="
79
+ fitgem.full_report
80
+ puts "===Steps==="
81
+ puts fitgem.steps
82
+ puts "===Floors==="
83
+ puts fitgem.floors
84
+ puts "===Distance==="
85
+ puts fitgem.distance
86
+ puts "===Calories==="
87
+ puts fitgem.cals_out
88
+ exit_var = true
89
+ else
90
+ puts "Choose what to do:\n-------"
91
+ puts "a -- give me full report (steps, calories, floors [if available], and distance)"
92
+ puts "s -- give me steps report"
93
+ puts "d -- give me distance report"
94
+ puts "f -- give me floors report (if availiable)"
95
+ puts "c -- give me calories burned report"
96
+ puts "x -- exit Fitgem"
97
+ choice = gets.chomp
98
+ end
99
+ system( "clear" )
100
+ case choice
101
+ when "a"
102
+ fitgem.full_report
103
+ when "s"
104
+ # Step Count
105
+ puts "Today's Step Count: #{fitgem.steps}"
106
+ when "d"
107
+ puts "Today's Distance: #{fitgem.distance} mi."
108
+ when "f"
109
+ puts "Floors Climbed: #{fitgem.floors}"
110
+ when "c"
111
+ puts "Calories Burned: #{fitgem.cals_out}"
112
+ # when "o"
113
+ # opt_exit = !false
114
+ # while opt_exit
115
+ # puts "Change Options:\n-------"
116
+ # puts "a -- give me full report (steps, calories, floors [if available], and distance)"
117
+ # puts "s -- give me steps report"
118
+ # puts "d -- give me distance report"
119
+ # puts "f -- give me floors report (if availiable)"
120
+ # puts "c -- give me calories burned report"
121
+ # puts "o -- options"
122
+ # puts "x -- exit Fitgem"
123
+ # choice = gets.chomp
124
+ # end
125
+ when "x"
126
+ exit_var = true
127
+ else
128
+ puts "Try Again! Not a command"
129
+ end
130
+ end
metadata ADDED
@@ -0,0 +1,79 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fitgem-app
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Joseph Geis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: multi_json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.11'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.11.2
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.11'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.11.2
33
+ - !ruby/object:Gem::Dependency
34
+ name: httparty
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.13'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.13'
47
+ description: A simple CLI Fitbit Client
48
+ email: geis28@gmail.com
49
+ executables:
50
+ - fitgem
51
+ extensions: []
52
+ extra_rdoc_files: []
53
+ files:
54
+ - bin/fitgem
55
+ homepage: http://juniorrubyist.github.io/fitgem
56
+ licenses:
57
+ - MIT
58
+ metadata: {}
59
+ post_install_message:
60
+ rdoc_options: []
61
+ require_paths:
62
+ - lib
63
+ required_ruby_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ requirements: []
74
+ rubyforge_project:
75
+ rubygems_version: 2.2.2
76
+ signing_key:
77
+ specification_version: 4
78
+ summary: Fitbit CLI
79
+ test_files: []