hcl 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aacea7a83e911178697ab35835691bab2827299a
4
- data.tar.gz: b85493c73665fa37297841027ceb12c2ffbe8b90
3
+ metadata.gz: f8860d754ce1f11debeb1148da0dfe589df72aff
4
+ data.tar.gz: 8135fb56ef40b3d6966d31551d842f43182c3192
5
5
  SHA512:
6
- metadata.gz: 40d2a72969d751827efe2cdfeb11e49522787dcc9bc089042bba3470e367c9e1f600599c05da241312be4050b328a67ea862ba43ee4737159d31697bb3f1e729
7
- data.tar.gz: 9c9b1c0af9ea5cce5f48032c93584472f288b8ca01402eb4fc0cfd7d1b5884c961c9523bd543a00dc5eeeca78322ae5107e82f75c5bece8f47dfae5ca53b14ca
6
+ metadata.gz: dac13754647a2858e99a0d38b276f02e75f0a7140cfb4859f8bfd94231e5b0372865256628ff6c274f7af7162ddc18baf4ac0a5b633063b6bb38d388405ca613
7
+ data.tar.gz: a4d934b2cb3435cfa90f6caf243f18e4b42a37f428d113044623d6c900750af602182c4b6e54bc73f7b818903881ede611f38c2946774ce90ce7b390990aff0c
data/CHANGELOG CHANGED
@@ -1,5 +1,10 @@
1
1
  = Recent Changes in HCl
2
2
 
3
+ == v0.4.4
4
+
5
+ * added completion command to output a Bash auto-complete script, closes #34
6
+ * removed jeweler dependency
7
+
3
8
  == v0.4.3
4
9
 
5
10
  * added cancel command to delete the last running timer, closes #13
data/README.markdown CHANGED
@@ -1,4 +1,4 @@
1
- # HCl
1
+ # Harvest Command Line
2
2
 
3
3
  HCl is a command-line tool for interacting with Harvest time sheets using the
4
4
  [Harvest time tracking API][htt].
@@ -10,20 +10,23 @@ HCl is a command-line tool for interacting with Harvest time sheets using the
10
10
  You can install hcl directly from rubygems.org:
11
11
 
12
12
  $ gem install hcl
13
- $ hcl show [date]
14
13
 
15
- or you can install from source using jeweler:
14
+ or you can install from source:
16
15
 
17
- $ gem install jeweler
18
16
  $ rake install
19
17
 
18
+ If you're using HCl for the first time, the show command sets up your
19
+ Harvest credentials:
20
+
21
+ $ hcl show
22
+
20
23
  ## Usage
21
24
 
22
- hcl [start] (@<task_alias> | <project_id> <task_id>) [+<time>] [<message>]
25
+ hcl [start] @<task_alias> [+<time>] [<message>]
23
26
  hcl note <message>
24
27
  hcl stop [message]
25
28
  hcl resume [@<task_alias>]
26
- hcl log (@<task_alias> | <project_id> <task_id>) [+<time>] [<message>]
29
+ hcl log @<task_alias> [+<time>] [<message>]
27
30
  hcl show [date]
28
31
  hcl tasks
29
32
  hcl alias <task_alias> <project_id> <task_id>
@@ -96,6 +99,12 @@ the same arguments as start:
96
99
 
97
100
  The above starts and immediately stops a one-hour timer with the given note.
98
101
 
102
+ ### Bash Auto-completion of Task Aliases
103
+
104
+ You can enable auto-completion of task aliases by adding this to your bashrc:
105
+
106
+ eval `hcl completion`
107
+
99
108
  ### Date Formats
100
109
 
101
110
  Dates can be expressed in a variety of ways. See the [Chronic documentation][cd]
data/Rakefile CHANGED
@@ -1,27 +1,15 @@
1
- require 'rake/testtask'
1
+ require 'rubygems/tasks'
2
+ Gem::Tasks.new
2
3
 
4
+ require 'rake/testtask'
3
5
  Rake::TestTask.new do |t|
4
6
  t.libs << 'test'
5
7
  t.test_files = FileList['test/*_test.rb']
6
8
  end
9
+ task :default => :test
7
10
 
8
- begin
9
- require 'jeweler'
10
- Jeweler::Tasks.new do |gem|
11
- gem.name = "hcl"
12
- gem.summary = "Harvest timesheets from the command-line"
13
- gem.description = "HCl is a command-line client for manipulating Harvest time sheets."
14
- gem.email = "zack@zackhobson.com"
15
- gem.homepage = "http://github.com/zenhob/hcl"
16
- gem.authors = ["Zack Hobson"]
17
- gem.license = "MIT"
18
- gem.add_dependency "trollop"
19
- gem.add_dependency "chronic"
20
- gem.add_dependency "highline"
21
- gem.add_development_dependency "shoulda"
22
- gem.add_development_dependency "mocha"
23
- end
24
- Jeweler::GemcutterTasks.new
25
- rescue LoadError
26
- puts "Jeweler not available. Install it with: sudo gem install jeweler"
11
+ require 'yard'
12
+ YARD::Rake::YardocTask.new do |t|
13
+ t.options = %w[--files CHANGELOG]
27
14
  end
15
+
data/bin/hcl CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'hcl/app'
3
+ require 'hcl'
4
4
  HCl::App.command *ARGV
5
5
 
data/lib/hcl.rb ADDED
@@ -0,0 +1,10 @@
1
+ module HCl
2
+ autoload :VERSION, 'hcl/version'
3
+ autoload :App, 'hcl/app'
4
+ autoload :Commands, 'hcl/commands'
5
+ autoload :TimesheetResource, 'hcl/timesheet_resource'
6
+ autoload :Utility, 'hcl/utility'
7
+ autoload :Project, 'hcl/project'
8
+ autoload :Task, 'hcl/task'
9
+ autoload :DayEntry, 'hcl/day_entry'
10
+ end
data/lib/hcl/app.rb CHANGED
@@ -1,38 +1,10 @@
1
- ## stdlib dependencies
2
1
  require 'yaml'
3
- require 'rexml/document'
4
- require 'net/http'
5
- require 'net/https'
6
2
  require 'fileutils'
7
3
 
8
- ## gem dependencies
9
- require 'chronic'
10
4
  require 'trollop'
11
- require 'highline/import'
12
-
13
- ## app dependencies
14
- require 'hcl/utility'
15
- require 'hcl/commands'
16
- require 'hcl/timesheet_resource'
17
- require 'hcl/project'
18
- require 'hcl/task'
19
- require 'hcl/day_entry'
20
-
21
- # Workaround for annoying SSL warning:
22
- # >> warning: peer certificate won't be verified in this SSL session
23
- # http://www.5dollarwhitebox.org/drupal/node/64
24
- class Net::HTTP
25
- alias_method :old_initialize, :initialize
26
- def initialize(*args)
27
- old_initialize(*args)
28
- @ssl_context = OpenSSL::SSL::SSLContext.new
29
- @ssl_context.verify_mode = OpenSSL::SSL::VERIFY_NONE
30
- end
31
- end
5
+ require 'highline'
32
6
 
33
7
  module HCl
34
- VERSION = "0.4.3"
35
-
36
8
  class App
37
9
  include HCl::Utility
38
10
  include HCl::Commands
data/lib/hcl/commands.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'chronic'
2
+ require 'highline'
3
+
1
4
  module HCl
2
5
  module Commands
3
6
  def tasks
@@ -62,6 +65,10 @@ module HCl
62
65
  end
63
66
  end
64
67
 
68
+ def completion
69
+ %[complete -W "#{aliases.join ' '}" hcl]
70
+ end
71
+
65
72
  def aliases
66
73
  @settings.keys.select { |s| s =~ /^task\./ }.map { |s| "@"+s.slice(5..-1) }
67
74
  end
data/lib/hcl/day_entry.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'rexml/document'
1
2
 
2
3
  module HCl
3
4
  class DayEntry < TimesheetResource
data/lib/hcl/task.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'yaml'
1
2
  require 'fileutils'
2
3
 
3
4
  module HCl
@@ -1,3 +1,18 @@
1
+ require 'net/http'
2
+ require 'net/https'
3
+
4
+ # Workaround for annoying SSL warning:
5
+ # >> warning: peer certificate won't be verified in this SSL session
6
+ # http://www.5dollarwhitebox.org/drupal/node/64
7
+ class Net::HTTP
8
+ alias_method :old_initialize, :initialize
9
+ def initialize(*args)
10
+ old_initialize(*args)
11
+ @ssl_context = OpenSSL::SSL::SSLContext.new
12
+ @ssl_context.verify_mode = OpenSSL::SSL::VERIFY_NONE
13
+ end
14
+ end
15
+
1
16
  module HCl
2
17
  class TimesheetResource
3
18
  class Failure < StandardError; end
@@ -0,0 +1,3 @@
1
+ module HCl
2
+ VERSION = '0.4.4'
3
+ end
data/test/test_helper.rb CHANGED
@@ -2,6 +2,6 @@ $:.unshift(File.dirname(__FILE__) + '/../lib')
2
2
 
3
3
  require 'rubygems'
4
4
  require 'test/unit'
5
- require 'hcl/app'
5
+ require 'hcl'
6
6
  require 'shoulda'
7
7
  require 'mocha/setup'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hcl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zack Hobson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-19 00:00:00.000000000 Z
11
+ date: 2013-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: trollop
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubygems-tasks
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: shoulda
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -80,25 +94,33 @@ dependencies:
80
94
  - - '>='
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: yard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  description: HCl is a command-line client for manipulating Harvest time sheets.
84
112
  email: zack@zackhobson.com
85
113
  executables:
86
114
  - hcl
87
115
  extensions: []
88
- extra_rdoc_files:
89
- - LICENSE
90
- - README.markdown
116
+ extra_rdoc_files: []
91
117
  files:
92
- - .document
93
118
  - CHANGELOG
94
- - HACKING.markdown
95
119
  - LICENSE
96
- - README.markdown
97
120
  - Rakefile
98
- - VERSION
121
+ - HACKING.markdown
122
+ - README.markdown
99
123
  - bin/hcl
100
- - deps.rip
101
- - hcl.gemspec
102
124
  - lib/hcl/app.rb
103
125
  - lib/hcl/commands.rb
104
126
  - lib/hcl/day_entry.rb
@@ -106,11 +128,13 @@ files:
106
128
  - lib/hcl/task.rb
107
129
  - lib/hcl/timesheet_resource.rb
108
130
  - lib/hcl/utility.rb
131
+ - lib/hcl/version.rb
132
+ - lib/hcl.rb
109
133
  - test/app_test.rb
110
134
  - test/day_entry_test.rb
111
135
  - test/test_helper.rb
112
136
  - test/utility_test.rb
113
- homepage: http://github.com/zenhob/hcl
137
+ homepage: http://zackhobson.com/hcl/
114
138
  licenses:
115
139
  - MIT
116
140
  metadata: {}
data/.document DELETED
@@ -1 +0,0 @@
1
- --files CHANGELOG
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.4.3
data/deps.rip DELETED
@@ -1,3 +0,0 @@
1
- git://github.com/lutzky/trollop.git a8d63c816 # 1.10.2
2
- git://github.com/mojombo/chronic.git 180e44763 # 0.3.0
3
- git://github.com/JEG2/highline.git rel_1_5_1
data/hcl.gemspec DELETED
@@ -1,73 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = "hcl"
8
- s.version = "0.4.3"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Zack Hobson"]
12
- s.date = "2013-11-19"
13
- s.description = "HCl is a command-line client for manipulating Harvest time sheets."
14
- s.email = "zack@zackhobson.com"
15
- s.executables = ["hcl"]
16
- s.extra_rdoc_files = [
17
- "LICENSE",
18
- "README.markdown"
19
- ]
20
- s.files = [
21
- ".document",
22
- "CHANGELOG",
23
- "HACKING.markdown",
24
- "LICENSE",
25
- "README.markdown",
26
- "Rakefile",
27
- "VERSION",
28
- "bin/hcl",
29
- "deps.rip",
30
- "hcl.gemspec",
31
- "lib/hcl/app.rb",
32
- "lib/hcl/commands.rb",
33
- "lib/hcl/day_entry.rb",
34
- "lib/hcl/project.rb",
35
- "lib/hcl/task.rb",
36
- "lib/hcl/timesheet_resource.rb",
37
- "lib/hcl/utility.rb",
38
- "test/app_test.rb",
39
- "test/day_entry_test.rb",
40
- "test/test_helper.rb",
41
- "test/utility_test.rb"
42
- ]
43
- s.homepage = "http://github.com/zenhob/hcl"
44
- s.licenses = ["MIT"]
45
- s.require_paths = ["lib"]
46
- s.rubygems_version = "2.0.3"
47
- s.summary = "Harvest timesheets from the command-line"
48
-
49
- if s.respond_to? :specification_version then
50
- s.specification_version = 4
51
-
52
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
53
- s.add_runtime_dependency(%q<trollop>, [">= 0"])
54
- s.add_runtime_dependency(%q<chronic>, [">= 0"])
55
- s.add_runtime_dependency(%q<highline>, [">= 0"])
56
- s.add_development_dependency(%q<shoulda>, [">= 0"])
57
- s.add_development_dependency(%q<mocha>, [">= 0"])
58
- else
59
- s.add_dependency(%q<trollop>, [">= 0"])
60
- s.add_dependency(%q<chronic>, [">= 0"])
61
- s.add_dependency(%q<highline>, [">= 0"])
62
- s.add_dependency(%q<shoulda>, [">= 0"])
63
- s.add_dependency(%q<mocha>, [">= 0"])
64
- end
65
- else
66
- s.add_dependency(%q<trollop>, [">= 0"])
67
- s.add_dependency(%q<chronic>, [">= 0"])
68
- s.add_dependency(%q<highline>, [">= 0"])
69
- s.add_dependency(%q<shoulda>, [">= 0"])
70
- s.add_dependency(%q<mocha>, [">= 0"])
71
- end
72
- end
73
-