andyh-xttc 0.1.4

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.
Files changed (5) hide show
  1. data/VERSION.yml +4 -0
  2. data/bin/xttc +5 -0
  3. data/lib/cli.rb +52 -0
  4. data/lib/xttc.rb +32 -0
  5. metadata +92 -0
@@ -0,0 +1,4 @@
1
+ ---
2
+ :minor: 1
3
+ :patch: 4
4
+ :major: 0
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
4
+ require 'xttc'
5
+ require 'cli'
@@ -0,0 +1,52 @@
1
+ gem 'main', '>= 2.8.2'
2
+ gem 'highline', '>= 1.4.0'
3
+ require 'main'
4
+ require 'highline/import'
5
+
6
+ HighLine.track_eof = false
7
+
8
+ def with_progress(message = nil, &work)
9
+ print "#{message}" if message
10
+ finished = false
11
+ progress_thread = Thread.new { until finished; print "."; $stdout.flush; sleep 0.5; end; }
12
+ work_thread = Thread.new(binding()) do |b|
13
+ work.call
14
+ finished = true
15
+ end
16
+ work_thread.join
17
+ progress_thread.join
18
+ say "\nDone!"
19
+ end
20
+
21
+ Main {
22
+
23
+ description "A command line bot for working with XTT, ENTP's rad time tracking app"
24
+
25
+ examples 'xttc status', 'xttc projects', 'xttc @projectcode status', 'xttc out'
26
+
27
+ def run
28
+ s = ARGV.size > 1 ? ARGV.join(" ") : ARGV.shift
29
+ help! if s.blank?
30
+ with_progress("Updating Status") do
31
+ status = Status.create(:code_and_message => s)
32
+ end
33
+ end
34
+
35
+ mode 'projects' do
36
+ description 'List all projects available, and their short code.'
37
+ def run
38
+ Project.find(:all).each do |p|
39
+ say "#{p.name}: @#{p.project_code}"
40
+ end
41
+ end
42
+ end
43
+
44
+ mode 'status' do
45
+ description 'List your current status'
46
+ def run
47
+ status = Status.find(:first)
48
+ say status.message
49
+ end
50
+ end
51
+
52
+ }
@@ -0,0 +1,32 @@
1
+ require 'yaml'
2
+
3
+ require 'rubygems'
4
+ require 'activesupport'
5
+ require 'activeresource'
6
+
7
+ begin
8
+ CONFIG = YAML.load(File.read(ENV['HOME'] + '/.xttc'))
9
+ rescue
10
+ puts """To use XTTC:\n
11
+ $ vi ~/.xttc
12
+ site: http://tt.example.com
13
+ username: foo
14
+ password: sekret
15
+
16
+ # secure this file
17
+ $ chmod 700 ~/.xttc
18
+ """
19
+ exit(1)
20
+ end
21
+
22
+ class Project < ActiveResource::Base
23
+ self.site = CONFIG["site"]
24
+ self.user = CONFIG["username"]
25
+ self.password = CONFIG["password"]
26
+ end
27
+
28
+ class Status < ActiveResource::Base
29
+ self.site = CONFIG["site"]
30
+ self.user = CONFIG["username"]
31
+ self.password = CONFIG["password"]
32
+ end
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: andyh-xttc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
5
+ platform: ruby
6
+ authors:
7
+ - Jesse Newland
8
+ - Andy Henson
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-01-18 00:00:00 -08:00
14
+ default_executable: xttc
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: activesupport
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "2.1"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: activeresource
27
+ version_requirement:
28
+ version_requirements: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.1.0
33
+ version:
34
+ - !ruby/object:Gem::Dependency
35
+ name: main
36
+ version_requirement:
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: 2.8.2
42
+ version:
43
+ - !ruby/object:Gem::Dependency
44
+ name: highline
45
+ version_requirement:
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 1.4.0
51
+ version:
52
+ description: A command line bot for working with XTT, ENTP's rad time tracking app
53
+ email: andy@elaptics.co.uk
54
+ executables:
55
+ - xttc
56
+ extensions: []
57
+
58
+ extra_rdoc_files: []
59
+
60
+ files:
61
+ - VERSION.yml
62
+ - bin/xttc
63
+ - lib/cli.rb
64
+ - lib/xttc.rb
65
+ has_rdoc: false
66
+ homepage: http://github.com/andyh/xttc
67
+ post_install_message:
68
+ rdoc_options: []
69
+
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: "0"
77
+ version:
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: "0"
83
+ version:
84
+ requirements: []
85
+
86
+ rubyforge_project:
87
+ rubygems_version: 1.2.0
88
+ signing_key:
89
+ specification_version: 2
90
+ summary: A command line bot for working with XTT, ENTP's rad time tracking app
91
+ test_files: []
92
+