hcl 0.3.1 → 0.3.2
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.
- data/CHANGELOG +5 -0
- data/Rakefile +0 -1
- data/VERSION +1 -1
- data/lib/hcl/app.rb +10 -7
- data/lib/hcl/commands.rb +2 -1
- data/lib/hcl/timesheet_resource.rb +3 -3
- data/test/app_test.rb +1 -1
- metadata +14 -28
data/CHANGELOG
CHANGED
data/Rakefile
CHANGED
@@ -14,7 +14,6 @@ begin
|
|
14
14
|
gem.email = "zack@opensourcery.com"
|
15
15
|
gem.homepage = "http://github.com/zenhob/hcl"
|
16
16
|
gem.authors = ["Zack Hobson"]
|
17
|
-
gem.add_dependency "termios"
|
18
17
|
gem.add_dependency "trollop", ">= 1.10.2"
|
19
18
|
gem.add_dependency "chronic", ">= 0.2.3"
|
20
19
|
gem.add_dependency "highline", ">= 1.5.1"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.2
|
data/lib/hcl/app.rb
CHANGED
@@ -54,7 +54,7 @@ module HCl
|
|
54
54
|
# @param [#to_s] command name of command
|
55
55
|
# @return [true, false]
|
56
56
|
def command? command
|
57
|
-
Commands.
|
57
|
+
Commands.method_defined? command
|
58
58
|
end
|
59
59
|
|
60
60
|
# Start the application.
|
@@ -64,8 +64,8 @@ module HCl
|
|
64
64
|
if command? @command
|
65
65
|
result = send @command, *@args
|
66
66
|
if not result.nil?
|
67
|
-
if result.respond_to? :
|
68
|
-
puts result.
|
67
|
+
if result.respond_to? :join
|
68
|
+
puts result.join(', ')
|
69
69
|
elsif result.respond_to? :to_s
|
70
70
|
puts result
|
71
71
|
end
|
@@ -80,8 +80,11 @@ module HCl
|
|
80
80
|
rescue RuntimeError => e
|
81
81
|
STDERR.puts "Error: #{e}"
|
82
82
|
exit 1
|
83
|
+
rescue SocketError => e
|
84
|
+
STDERR.puts "Connection failed. (#{e.message})"
|
85
|
+
exit 1
|
83
86
|
rescue TimesheetResource::Failure => e
|
84
|
-
STDERR.puts "
|
87
|
+
STDERR.puts "API failure: #{e}"
|
85
88
|
exit 1
|
86
89
|
end
|
87
90
|
end
|
@@ -133,9 +136,9 @@ EOM
|
|
133
136
|
else
|
134
137
|
config = {}
|
135
138
|
puts "Please specify your Harvest credentials.\n"
|
136
|
-
config['login'] = ask("Email Address: ")
|
137
|
-
config['password'] = ask("Password: ") { |q| q.echo = false }
|
138
|
-
config['subdomain'] = ask("Subdomain: ")
|
139
|
+
config['login'] = ask("Email Address: ").to_s
|
140
|
+
config['password'] = ask("Password: ") { |q| q.echo = false }.to_s
|
141
|
+
config['subdomain'] = ask("Subdomain: ").to_s
|
139
142
|
config['ssl'] = %w(y yes).include?(ask("Use SSL? (y/n): ").downcase)
|
140
143
|
TimesheetResource.configure config
|
141
144
|
write_config config
|
data/lib/hcl/commands.rb
CHANGED
@@ -54,9 +54,10 @@ module HCl
|
|
54
54
|
puts "Started timer for #{timer} (at #{current_time})"
|
55
55
|
end
|
56
56
|
|
57
|
-
def stop
|
57
|
+
def stop *args
|
58
58
|
entry = DayEntry.with_timer
|
59
59
|
if entry
|
60
|
+
entry.append_note(*args.join(' ')) if args.any?
|
60
61
|
entry.toggle
|
61
62
|
puts "Stopped #{entry} (at #{current_time})"
|
62
63
|
else
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module HCl
|
2
2
|
class TimesheetResource
|
3
|
-
class Failure <
|
3
|
+
class Failure < StandardError; end
|
4
4
|
|
5
5
|
def self.configure opts = nil
|
6
6
|
if opts
|
@@ -48,9 +48,9 @@ module HCl
|
|
48
48
|
if response.kind_of? Net::HTTPSuccess
|
49
49
|
response.body
|
50
50
|
elsif response.kind_of? Net::HTTPFound
|
51
|
-
raise "Redirected in the request. Perhaps your ssl configuration variable is set incorrectly?"
|
51
|
+
raise Failure, "Redirected in the request. Perhaps your ssl configuration variable is set incorrectly?"
|
52
52
|
else
|
53
|
-
raise
|
53
|
+
raise Failure, "Unexpected response from the upstream API"
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
data/test/app_test.rb
CHANGED
@@ -3,6 +3,6 @@ class AppTest < Test::Unit::TestCase
|
|
3
3
|
|
4
4
|
should "permit commands from the HCl::Commands module" do
|
5
5
|
app = HCl::App.new
|
6
|
-
assert HCl::Commands.instance_methods.all? { |c| app.command? c }
|
6
|
+
assert HCl::Commands.instance_methods.all? { |c| app.command? c }, 'all methods are commands'
|
7
7
|
end
|
8
8
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hcl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 2
|
10
|
+
version: 0.3.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Zack Hobson
|
@@ -15,27 +15,13 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-12-30 00:00:00 -08:00
|
19
19
|
default_executable: hcl
|
20
20
|
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
22
|
-
name: termios
|
23
|
-
prerelease: false
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
version: "0"
|
33
|
-
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
21
|
- !ruby/object:Gem::Dependency
|
36
22
|
name: trollop
|
37
23
|
prerelease: false
|
38
|
-
requirement: &
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
39
25
|
none: false
|
40
26
|
requirements:
|
41
27
|
- - ">="
|
@@ -47,11 +33,11 @@ dependencies:
|
|
47
33
|
- 2
|
48
34
|
version: 1.10.2
|
49
35
|
type: :runtime
|
50
|
-
version_requirements: *
|
36
|
+
version_requirements: *id001
|
51
37
|
- !ruby/object:Gem::Dependency
|
52
38
|
name: chronic
|
53
39
|
prerelease: false
|
54
|
-
requirement: &
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
55
41
|
none: false
|
56
42
|
requirements:
|
57
43
|
- - ">="
|
@@ -63,11 +49,11 @@ dependencies:
|
|
63
49
|
- 3
|
64
50
|
version: 0.2.3
|
65
51
|
type: :runtime
|
66
|
-
version_requirements: *
|
52
|
+
version_requirements: *id002
|
67
53
|
- !ruby/object:Gem::Dependency
|
68
54
|
name: highline
|
69
55
|
prerelease: false
|
70
|
-
requirement: &
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
71
57
|
none: false
|
72
58
|
requirements:
|
73
59
|
- - ">="
|
@@ -79,11 +65,11 @@ dependencies:
|
|
79
65
|
- 1
|
80
66
|
version: 1.5.1
|
81
67
|
type: :runtime
|
82
|
-
version_requirements: *
|
68
|
+
version_requirements: *id003
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: shoulda
|
85
71
|
prerelease: false
|
86
|
-
requirement: &
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
87
73
|
none: false
|
88
74
|
requirements:
|
89
75
|
- - ">="
|
@@ -93,11 +79,11 @@ dependencies:
|
|
93
79
|
- 0
|
94
80
|
version: "0"
|
95
81
|
type: :development
|
96
|
-
version_requirements: *
|
82
|
+
version_requirements: *id004
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: mocha
|
99
85
|
prerelease: false
|
100
|
-
requirement: &
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
101
87
|
none: false
|
102
88
|
requirements:
|
103
89
|
- - ">="
|
@@ -107,7 +93,7 @@ dependencies:
|
|
107
93
|
- 0
|
108
94
|
version: "0"
|
109
95
|
type: :development
|
110
|
-
version_requirements: *
|
96
|
+
version_requirements: *id005
|
111
97
|
description: HCl is a command-line client for manipulating Harvest time sheets.
|
112
98
|
email: zack@opensourcery.com
|
113
99
|
executables:
|