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.
- checksums.yaml +7 -0
- data/bin/fitgem +130 -0
- 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: []
|