jnewland-xttc 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/README +20 -0
  2. data/bin/xttc +5 -0
  3. data/lib/cli.rb +52 -0
  4. data/lib/xttc.rb +32 -0
  5. metadata +91 -0
data/README ADDED
@@ -0,0 +1,20 @@
1
+ NAME
2
+ xttc
3
+
4
+ SYNOPSIS
5
+ xttc (projects|status) [options]+
6
+
7
+ DESCRIPTION
8
+ A command line bot for working with XTT, ENTP's rad time tracking bot
9
+
10
+ PARAMETERS
11
+ --help, -h
12
+
13
+ EXAMPLES
14
+ xttc status
15
+ xttc projects
16
+ xttc @projectcode staus
17
+ xttc out
18
+
19
+ LICENSE
20
+ WTFPL - http://sam.zoy.org/wtfpl/
data/bin/xttc ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
4
+ require 'xttc'
5
+ require 'cli'
data/lib/cli.rb ADDED
@@ -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 bot"
24
+
25
+ examples 'xttc status', 'xttc projects', 'xttc @projectcode staus', '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
+ }
data/lib/xttc.rb ADDED
@@ -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
+
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 = 'http://tt.entp.com/'
24
+ self.user = CONFIG["username"]
25
+ self.password = CONFIG["password"]
26
+ end
27
+
28
+ class Status < ActiveResource::Base
29
+ self.site = 'http://tt.entp.com/'
30
+ self.user = CONFIG["username"]
31
+ self.password = CONFIG["password"]
32
+ end
metadata ADDED
@@ -0,0 +1,91 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jnewland-xttc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jesse Newland
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-07-28 00:00:00 -07:00
13
+ default_executable: xttc
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activesupport
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "2.1"
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: activeresource
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 2.1.0
32
+ version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: main
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 2.8.2
41
+ version:
42
+ - !ruby/object:Gem::Dependency
43
+ name: highline
44
+ version_requirement:
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 1.4.0
50
+ version:
51
+ description: A command line bot for working with XTT, ENTP's rad time tracking bot
52
+ email: jnewland@gmail.com
53
+ executables:
54
+ - xttc
55
+ extensions: []
56
+
57
+ extra_rdoc_files: []
58
+
59
+ files:
60
+ - README
61
+ - bin/xttc
62
+ - lib/xttc.rb
63
+ - lib/cli.rb
64
+ has_rdoc: false
65
+ homepage: http://github.com/jnewland
66
+ post_install_message:
67
+ rdoc_options: []
68
+
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: "0"
76
+ version:
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: "0"
82
+ version:
83
+ requirements: []
84
+
85
+ rubyforge_project: xttc
86
+ rubygems_version: 1.2.0
87
+ signing_key:
88
+ specification_version: 2
89
+ summary: A command line bot for working with XTT, ENTP's rad time tracking bot
90
+ test_files: []
91
+