integrity-bonjour 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/bonjour.rb +38 -0
  2. data/lib/config.haml +3 -0
  3. metadata +86 -0
@@ -0,0 +1,38 @@
1
+ require "integrity"
2
+ require "ahoy"
3
+
4
+ module Integrity
5
+ class Notifier
6
+ class Bonjour < Notifier::Base
7
+ attr_reader :recipients
8
+
9
+ def self.to_haml
10
+ File.read(File.dirname(__FILE__) / "config.haml")
11
+ end
12
+
13
+ def initialize(build, config={})
14
+ @recipients = config["recipients"].nil? ? [] : config.delete("recipients").split(/\s+/)
15
+ super
16
+ end
17
+
18
+ def deliver!
19
+ user = Ahoy::User.new("Integrity")
20
+ user.sign_in
21
+ sleep 1 # wait for the contact list to populate
22
+
23
+ contacts = user.contacts.select{|c|@recipients.include?(c.name)}
24
+
25
+ contacts.each do |contact|
26
+ chat = user.chat(contact)
27
+ chat.send(message)
28
+ chat.close
29
+ end
30
+ user.sign_out
31
+ end
32
+
33
+ def message
34
+ @message ||= commit.successful? ? short_message : "#{short_message} #{commit_url}"
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,3 @@
1
+ %p.normal
2
+ %label{ :for => "bonjour_notifier_recipients" } Recipients (separated by space)
3
+ %input.text#bonjour_notifier_recipients{:name => "notifiers[Bonjour][recipients]", :type => "text", :value => config['recipients'] }
metadata ADDED
@@ -0,0 +1,86 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: integrity-bonjour
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Duarte Henriques
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-05-08 00:00:00 +01:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: integrity
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ version: "0"
30
+ type: :runtime
31
+ version_requirements: *id001
32
+ - !ruby/object:Gem::Dependency
33
+ name: ahoy
34
+ prerelease: false
35
+ requirement: &id002 !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ segments:
40
+ - 0
41
+ version: "0"
42
+ type: :runtime
43
+ version_requirements: *id002
44
+ description: Easily let Integrity send bonjour messages after each build
45
+ email: duarte@byclosure.ocm
46
+ executables: []
47
+
48
+ extensions: []
49
+
50
+ extra_rdoc_files: []
51
+
52
+ files:
53
+ - lib/config.haml
54
+ - lib/bonjour.rb
55
+ has_rdoc: true
56
+ homepage: http://integrityapp.com
57
+ licenses: []
58
+
59
+ post_install_message:
60
+ rdoc_options: []
61
+
62
+ require_paths:
63
+ - lib
64
+ required_ruby_version: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ segments:
69
+ - 0
70
+ version: "0"
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ segments:
76
+ - 0
77
+ version: "0"
78
+ requirements: []
79
+
80
+ rubyforge_project:
81
+ rubygems_version: 1.3.6
82
+ signing_key:
83
+ specification_version: 3
84
+ summary: Bonjour notifier for the Integrity continuous integration server
85
+ test_files: []
86
+