evados-tracker 0.1.1 → 0.2.1
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 +4 -4
- data/.gitignore +12 -1
- data/bin/et +46 -20
- data/lib/evados_tracker/version.rb +1 -1
- data/lib/evados_tracker.rb +21 -19
- metadata +2 -5
- data/bin/.et.swp +0 -0
- data/lib/.evados_tracker.rb.swp +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82536553d06ffde22ecc1c9f9b9f2617f0974eb0
|
4
|
+
data.tar.gz: b71458ef71e3e4b0d4e6fd0734e9549ab23c493e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 251aad0a2b4e31eb712344e179fdd3daa800394e16290cfec3f6e5191705c06cb2278e70d7eb70ef6b732f209481493661f441c7437a847fba3a3358a72658e2
|
7
|
+
data.tar.gz: 114069961fe55af332329f419cbab2ac2af06a1df39181c3ab77f1c82721942ab5aca7717429f570159d498cdb86beacccb13cdeaf622df9abac83fbe644d3f2
|
data/.gitignore
CHANGED
@@ -15,7 +15,7 @@ doc
|
|
15
15
|
# jeweler generated
|
16
16
|
pkg
|
17
17
|
|
18
|
-
# Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
|
18
|
+
# Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
|
19
19
|
#
|
20
20
|
# * Create a file at ~/.gitignore
|
21
21
|
# * Include files you want ignored
|
@@ -47,3 +47,14 @@ pkg
|
|
47
47
|
|
48
48
|
# For rubinius:
|
49
49
|
#*.rbc
|
50
|
+
|
51
|
+
*.gem
|
52
|
+
Gemfile.lock
|
53
|
+
doc/
|
54
|
+
lib/bundler/man
|
55
|
+
pkg
|
56
|
+
rdoc
|
57
|
+
spec/reports
|
58
|
+
test/tmp
|
59
|
+
test/version_tmp
|
60
|
+
tmp
|
data/bin/et
CHANGED
@@ -5,36 +5,49 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
5
5
|
require 'thor'
|
6
6
|
require 'evados_tracker'
|
7
7
|
|
8
|
-
PATH_TO_KEY = Dir.home + "/.evados-tracker
|
8
|
+
PATH_TO_KEY = Dir.home + "/.evados-tracker/.key"
|
9
9
|
|
10
10
|
class CLI < Thor
|
11
|
-
option :a
|
12
11
|
def initialize(a, b, c)
|
13
12
|
super(a, b, c)
|
14
13
|
get_key!
|
15
14
|
@tracker = EvadosTracker::Core.new(@key)
|
16
|
-
@tracker.get_tasks
|
15
|
+
check_for_response_error @tracker.get_tasks
|
17
16
|
end
|
18
17
|
|
19
18
|
desc "ls", "list tasks"
|
20
19
|
def ls
|
20
|
+
check_for_response_error @tracker.get_tasks
|
21
21
|
@tracker.numerated_list.each {|t| puts "#{t[0]}. " + "#{t[1]['title']}"}
|
22
22
|
end
|
23
23
|
|
24
|
-
desc "start", "start task"
|
24
|
+
desc "start", "start task, with key -a start autocontinue"
|
25
|
+
method_options :a => :boolean
|
25
26
|
def start(task_num)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
27
|
+
check_rescue do
|
28
|
+
begin
|
29
|
+
@tracker.current_isssue_id = @tracker.numerated_list["#{task_num}"]['id']
|
30
|
+
pomodoro = @tracker.create_pomodoro
|
31
|
+
@tracker.pomodoro_id = pomodoro["id"]
|
32
|
+
puts "You started doing #{@tracker.numerated_list[task_num.to_s]['title']}"
|
33
|
+
one_pomodoro_iteration
|
34
|
+
end while options[:a]
|
35
|
+
end
|
33
36
|
end
|
34
37
|
|
35
|
-
|
36
|
-
|
37
38
|
private ##############
|
39
|
+
def check_for_response_error(response)
|
40
|
+
if response.is_a? Hash
|
41
|
+
case response["error"]
|
42
|
+
when "Invalid authentication token.", "You need to sign in or sign up before continuing."
|
43
|
+
puts "Invalid authentication token, try again."
|
44
|
+
File.delete(PATH_TO_KEY) if File.exists?(PATH_TO_KEY)
|
45
|
+
set_key!
|
46
|
+
@tracker.key = @key
|
47
|
+
check_for_response_error @tracker.get_tasks
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
38
51
|
|
39
52
|
def one_pomodoro_iteration
|
40
53
|
display_25_minutes_timer
|
@@ -53,23 +66,36 @@ private ##############
|
|
53
66
|
:progress_mark => ' ',
|
54
67
|
:remainder_mark => '・',
|
55
68
|
:title => "Break")
|
56
|
-
100.times {
|
69
|
+
100.times { sleep(3); progressbar.refresh; progressbar.increment; }
|
57
70
|
end
|
58
71
|
|
59
72
|
def display_25_minutes_timer
|
60
|
-
progressbar = ProgressBar.create
|
61
|
-
|
73
|
+
progressbar = ProgressBar.create( :format => '%a %b %p%% %t',
|
74
|
+
:title => "Work")
|
75
|
+
100.times { sleep(15); progressbar.refresh; progressbar.increment; }
|
62
76
|
end
|
63
77
|
|
64
78
|
def get_key!
|
65
|
-
if File.exists?(PATH_TO_KEY)
|
66
|
-
|
67
|
-
|
79
|
+
@key = File.foreach(PATH_TO_KEY).first.chomp if File.exists?(PATH_TO_KEY)
|
80
|
+
end
|
81
|
+
|
82
|
+
def set_key!
|
83
|
+
check_rescue do
|
68
84
|
puts "Your api key: "
|
69
|
-
@key = gets.chomp
|
85
|
+
@key = $stdin.gets.chomp
|
86
|
+
Dir.mkdir(Dir.home + "/.evados-tracker/") unless File.exists?(Dir.home + "/.evados-tracker/")
|
70
87
|
File.open(PATH_TO_KEY, "a+") { |f| f.puts @key }
|
71
88
|
end
|
72
89
|
end
|
90
|
+
|
91
|
+
def check_rescue
|
92
|
+
begin
|
93
|
+
yield
|
94
|
+
rescue SystemExit, Interrupt
|
95
|
+
@tracker.delete_pomodoro
|
96
|
+
puts "\nBye!"
|
97
|
+
end
|
98
|
+
end
|
73
99
|
end
|
74
100
|
|
75
101
|
CLI.start(ARGV)
|
data/lib/evados_tracker.rb
CHANGED
@@ -3,7 +3,7 @@ require 'ruby-progressbar'
|
|
3
3
|
|
4
4
|
module EvadosTracker
|
5
5
|
class Core
|
6
|
-
attr_accessor :numerated_list, :current_isssue_id, :pomodoro_id
|
6
|
+
attr_accessor :numerated_list, :current_isssue_id, :pomodoro_id, :key
|
7
7
|
|
8
8
|
def initialize(key)
|
9
9
|
@key = key
|
@@ -13,43 +13,45 @@ module EvadosTracker
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def get_tasks
|
16
|
-
|
17
|
-
response = HTTParty.get("http://pm.evados.com/api/v1/issues.json?auth_token=" + @key)
|
16
|
+
check_rescue do
|
17
|
+
response = HTTParty.get("http://pm.evados.com/api/v1/issues.json?auth_token=" + "#{@key}")
|
18
18
|
numerate_task_list response
|
19
|
-
|
20
|
-
p "Have no internet connection"
|
19
|
+
response
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
24
23
|
def create_pomodoro
|
25
|
-
|
24
|
+
check_rescue do
|
26
25
|
@pomodoro_id = HTTParty.post("http://pm.evados.com/api/v1/issues/" + "#{@current_isssue_id}" +
|
27
|
-
"/pomodoros.json?auth_token=" + @key)
|
28
|
-
rescue StandardError
|
29
|
-
p "Have no internet connection"
|
26
|
+
"/pomodoros.json?auth_token=" + "#{@key}")
|
30
27
|
end
|
31
28
|
end
|
32
29
|
|
33
30
|
def commit_pomodoro
|
34
|
-
|
35
|
-
HTTParty.put("http://pm.evados.com/api/v1/issues/" + "#{@current_isssue_id}" +
|
36
|
-
"/pomodoros/" + "#{@pomodoro_id}" + ".json?auth_token=" + @key)
|
37
|
-
rescue StandardError
|
38
|
-
p "Have no internet connection"
|
31
|
+
check_rescue do
|
32
|
+
response = HTTParty.put("http://pm.evados.com/api/v1/issues/" + "#{@current_isssue_id}" +
|
33
|
+
"/pomodoros/" + "#{@pomodoro_id}" + ".json?auth_token=" + "#{@key}")
|
39
34
|
end
|
40
35
|
end
|
41
36
|
|
42
37
|
def delete_pomodoro
|
43
|
-
|
44
|
-
HTTParty.delete("http://pm.evados.com/api/v1/issues/" + "#{@current_isssue_id}" +
|
45
|
-
"/pomodoros/" + "#{@pomodoro_id}" + ".json?auth_token=" + @key)
|
46
|
-
rescue StandardError
|
47
|
-
p "Have no internet connection"
|
38
|
+
check_rescue do
|
39
|
+
response = HTTParty.delete("http://pm.evados.com/api/v1/issues/" + "#{@current_isssue_id}" +
|
40
|
+
"/pomodoros/" + "#{@pomodoro_id}" + ".json?auth_token=" + "#{@key}")
|
48
41
|
end
|
49
42
|
end
|
50
43
|
|
51
44
|
private
|
52
45
|
|
46
|
+
def check_rescue
|
47
|
+
begin
|
48
|
+
yield
|
49
|
+
rescue SocketError
|
50
|
+
p "Have no internet connection"
|
51
|
+
yield
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
53
55
|
def numerate_task_list(task_list)
|
54
56
|
@numerated_list = {};
|
55
57
|
task_list.each_with_index{ |t, index| @numerated_list["#{index + 1}"] = t }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evados-tracker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seva Rybakov
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-03-
|
12
|
+
date: 2014-03-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
@@ -142,7 +142,6 @@ email:
|
|
142
142
|
- codingfu@gmail.com
|
143
143
|
- vmatiyko@gmail.com
|
144
144
|
executables:
|
145
|
-
- .et.swp
|
146
145
|
- et
|
147
146
|
extensions: []
|
148
147
|
extra_rdoc_files: []
|
@@ -154,10 +153,8 @@ files:
|
|
154
153
|
- LICENSE.txt
|
155
154
|
- README.rdoc
|
156
155
|
- Rakefile
|
157
|
-
- bin/.et.swp
|
158
156
|
- bin/et
|
159
157
|
- evados_tracker.gemspec
|
160
|
-
- lib/.evados_tracker.rb.swp
|
161
158
|
- lib/evados_tracker.rb
|
162
159
|
- lib/evados_tracker/core.rb
|
163
160
|
- lib/evados_tracker/version.rb
|
data/bin/.et.swp
DELETED
Binary file
|
data/lib/.evados_tracker.rb.swp
DELETED
Binary file
|