hcutil 0.0.2 → 0.0.3
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/lib/hcutil/auth.rb +2 -1
- data/lib/hcutil/cli.rb +18 -8
- data/lib/hcutil/copier.rb +3 -13
- data/lib/hcutil/extensions.rb +12 -0
- data/lib/hcutil/op_base.rb +17 -0
- data/lib/hcutil/pinger.rb +53 -0
- data/lib/hcutil/version.rb +1 -1
- data/lib/hcutil.rb +2 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3618c39717485726f3dd3e5ef4a72b96f99acf4
|
4
|
+
data.tar.gz: db70565f9a28b15923f7142e29b846621927ee7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7ff2825adbb74364a3ddc8c1323ac7916c4ee8638dfd8c6abf178302232c2cd339959be6c54e61b06a887b799212d5969d270a2b74f0c895445477a80360bab
|
7
|
+
data.tar.gz: 8424f71db151157a418918739e40f101b03487d4f6319c758b8b13d6439c9aa642a0db560131a0846938fe0fd6476b4ab28576e88fe416b16e7cab731044066d
|
data/lib/hcutil/auth.rb
CHANGED
@@ -10,7 +10,8 @@ module HCUtil
|
|
10
10
|
attr_reader :auth_token
|
11
11
|
|
12
12
|
def initialize(options = {})
|
13
|
-
|
13
|
+
home_env = ENV['HOME']
|
14
|
+
if home_env.nil_or_empty? or not Dir.exist?(ENV['HOME'])
|
14
15
|
raise(AuthError, 'HOME env var not set or dir does not exist')
|
15
16
|
end
|
16
17
|
|
data/lib/hcutil/cli.rb
CHANGED
@@ -4,16 +4,11 @@
|
|
4
4
|
require 'thor'
|
5
5
|
require 'hcutil/version'
|
6
6
|
require 'hcutil/copier'
|
7
|
+
require 'hcutil/pinger'
|
7
8
|
|
8
9
|
module HCUtil
|
9
10
|
class CLI < Thor
|
10
11
|
|
11
|
-
class_option(:room,
|
12
|
-
:desc => 'HipChat room with which to work',
|
13
|
-
:aliases => '-r',
|
14
|
-
:type => :string,
|
15
|
-
:default => 'Client Services')
|
16
|
-
|
17
12
|
class_option(:verbose,
|
18
13
|
:desc => 'Verbose output',
|
19
14
|
:type => :boolean,
|
@@ -29,6 +24,11 @@ module HCUtil
|
|
29
24
|
end
|
30
25
|
|
31
26
|
desc('copy ROOM_NAME', 'copy chat messages from ROOM_NAME')
|
27
|
+
option(:room,
|
28
|
+
:desc => 'HipChat room with which to work',
|
29
|
+
:aliases => '-r',
|
30
|
+
:type => :string,
|
31
|
+
:default => 'Client Services')
|
32
32
|
option(:date,
|
33
33
|
:desc => 'Date from which to copy messages',
|
34
34
|
:type => :string,
|
@@ -41,12 +41,22 @@ module HCUtil
|
|
41
41
|
:default => 25)
|
42
42
|
def copy(room_name)
|
43
43
|
begin
|
44
|
-
|
45
|
-
|
44
|
+
copier = HCUtil::Copier.new(room_name, options)
|
45
|
+
copier.copy()
|
46
46
|
rescue AuthError, CopierError => e
|
47
47
|
$stderr.puts("[error] #{e.message}")
|
48
48
|
end
|
49
49
|
end
|
50
|
+
|
51
|
+
desc('ping TICKET_NUM RESPONSE_FILE SUMMARY', 'Ping Client Services HipChat room for ticket TICKET_NUM with text from RESPONSE_FILE. SUMMARY is optional.')
|
52
|
+
def ping(ticket_num, response_file, summary=nil)
|
53
|
+
begin
|
54
|
+
pinger = HCUtil::Pinger.new(ticket_num, response_file, summary, options)
|
55
|
+
pinger.ping()
|
56
|
+
rescue AuthError, PingerError => e
|
57
|
+
$stderr.puts("[error] #{e.message}")
|
58
|
+
end
|
59
|
+
end
|
50
60
|
end
|
51
61
|
end
|
52
62
|
|
data/lib/hcutil/copier.rb
CHANGED
@@ -1,8 +1,4 @@
|
|
1
|
-
require '
|
2
|
-
require 'rest_client'
|
3
|
-
require 'time'
|
4
|
-
|
5
|
-
require 'hcutil/auth'
|
1
|
+
require 'hcutil/op_base'
|
6
2
|
|
7
3
|
module HCUtil
|
8
4
|
|
@@ -12,17 +8,11 @@ module HCUtil
|
|
12
8
|
end
|
13
9
|
end
|
14
10
|
|
15
|
-
class Copier
|
11
|
+
class Copier < OpBase
|
16
12
|
def initialize(room_name = 'Client Services', options = {})
|
13
|
+
super(options)
|
17
14
|
@room_name = room_name
|
18
|
-
@options = options
|
19
|
-
|
20
|
-
@debug = @options[:debug]
|
21
|
-
@verbose = @options[:verbose] || @options[:debug]
|
22
15
|
@num_items = @options[:num_items] ||25
|
23
|
-
|
24
|
-
RestClient.log = 'stdout' if @debug
|
25
|
-
@auth = Auth.new(@options)
|
26
16
|
end
|
27
17
|
|
28
18
|
def copy
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'rest_client'
|
3
|
+
require 'time'
|
4
|
+
require 'hcutil/auth'
|
5
|
+
|
6
|
+
module HCUtil
|
7
|
+
class OpBase
|
8
|
+
def initialize(options = {})
|
9
|
+
@options = options
|
10
|
+
@debug = @options[:debug]
|
11
|
+
@verbose = @options[:verbose] || @options[:debug]
|
12
|
+
RestClient.log = 'stdout' if @debug
|
13
|
+
@auth = Auth.new(@options)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'hcutil/op_base'
|
2
|
+
|
3
|
+
module HCUtil
|
4
|
+
|
5
|
+
class PingerError < StandardError
|
6
|
+
def initialize(msg = 'PingerError')
|
7
|
+
super
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class Pinger < OpBase
|
12
|
+
def initialize(ticket_num = nil, response_file = nil, summary = nil, options = {})
|
13
|
+
super(options)
|
14
|
+
if ticket_num =~ /^[0-9]{4,}$/
|
15
|
+
@ticket_num = ticket_num
|
16
|
+
else
|
17
|
+
raise(PingerError, 'Ticket number must be 4 or more digits')
|
18
|
+
end
|
19
|
+
if File.exists?(response_file)
|
20
|
+
@response_file = response_file
|
21
|
+
else
|
22
|
+
raise(PingerError, "Response file '#{response_file}' does not exist")
|
23
|
+
end
|
24
|
+
@summary = summary
|
25
|
+
end
|
26
|
+
|
27
|
+
def ping
|
28
|
+
message = <<"EOT"
|
29
|
+
ticket ##{@ticket_num} - #{@summary}
|
30
|
+
#{File.read(@response_file)}
|
31
|
+
EOT
|
32
|
+
post_data = {
|
33
|
+
:message_format => 'text',
|
34
|
+
:color => 'purple',
|
35
|
+
:message => message
|
36
|
+
}
|
37
|
+
|
38
|
+
header_args = {
|
39
|
+
:content_type => :json,
|
40
|
+
:accept => :json,
|
41
|
+
:authorization => "Bearer #{@auth.auth_token}"
|
42
|
+
}
|
43
|
+
|
44
|
+
RestClient.post('https://api.hipchat.com/v2/room/61640/notification',
|
45
|
+
post_data.to_json, header_args) do |response, request, result|
|
46
|
+
unless result.is_a? Net::HTTPSuccess
|
47
|
+
raise(PingerError, "REST error: #{result}|#{response}")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
data/lib/hcutil/version.rb
CHANGED
data/lib/hcutil.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hcutil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luke Bakken
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -66,6 +66,9 @@ files:
|
|
66
66
|
- lib/hcutil/auth.rb
|
67
67
|
- lib/hcutil/cli.rb
|
68
68
|
- lib/hcutil/copier.rb
|
69
|
+
- lib/hcutil/extensions.rb
|
70
|
+
- lib/hcutil/op_base.rb
|
71
|
+
- lib/hcutil/pinger.rb
|
69
72
|
- lib/hcutil/version.rb
|
70
73
|
homepage: http://github.com/lukebakken/hipchat-util
|
71
74
|
licenses: []
|