fitgem-app 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []