battlecry 0.1
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.
- data/README.markdown +27 -0
- data/Rakefile +7 -0
- data/battlecry.gemspec +22 -0
- data/lib/battlecry.rb +83 -0
- data/spec/battlecry_spec.rb +33 -0
- data/spec/helper.rb +3 -0
- metadata +85 -0
data/README.markdown
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#Battlecry - A simple abstraction for sydicating messages to OSX hosts via Growl
|
2
|
+
|
3
|
+
##Installation
|
4
|
+
|
5
|
+
gem install ruby-growl
|
6
|
+
gem install battlecry -s http://gemcutter.org
|
7
|
+
|
8
|
+
## Examples
|
9
|
+
|
10
|
+
battlecry = Battlecry.new [{
|
11
|
+
:host => "localhost"
|
12
|
+
},{
|
13
|
+
:host => "otherhost",
|
14
|
+
:password => "password"
|
15
|
+
}]
|
16
|
+
|
17
|
+
#shout a might shout, and all allies will know!
|
18
|
+
battlecry.shout "Victory is ours!"
|
19
|
+
|
20
|
+
#add another ally
|
21
|
+
battlecry.add_ally "hostname", "password"
|
22
|
+
|
23
|
+
#see the army size
|
24
|
+
battlecry.num_allies
|
25
|
+
|
26
|
+
##Dependencies
|
27
|
+
- ruby-growl
|
data/Rakefile
ADDED
data/battlecry.gemspec
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
spec = Gem::Specification.new do |s|
|
2
|
+
s.name = 'battlecry'
|
3
|
+
s.version = '0.1'
|
4
|
+
s.date = '2010-06-16'
|
5
|
+
s.summary = 'A simple abstraction for sydicating messages to OSX hosts via Growl'
|
6
|
+
s.email = 'dan.simpson@gmail.com'
|
7
|
+
s.homepage = 'http://github.com/dansimpson/battlecry'
|
8
|
+
s.description = 'A simple abstraction for sydicating messages to OSX hosts via Growl'
|
9
|
+
s.has_rdoc = true
|
10
|
+
|
11
|
+
s.authors = ['Dan Simpson']
|
12
|
+
s.add_dependency('ruby-growl', '>= 2.0')
|
13
|
+
|
14
|
+
s.files = [
|
15
|
+
'README.markdown',
|
16
|
+
'battlecry.gemspec',
|
17
|
+
'Rakefile',
|
18
|
+
'spec/helper.rb',
|
19
|
+
'spec/battlecry_spec.rb',
|
20
|
+
'lib/battlecry.rb'
|
21
|
+
]
|
22
|
+
end
|
data/lib/battlecry.rb
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
$:.unshift File.dirname(__FILE__)
|
2
|
+
|
3
|
+
require "rubygems"
|
4
|
+
require "ruby-growl"
|
5
|
+
|
6
|
+
##
|
7
|
+
# Battlecry is a simply abstraction for sending growl messages
|
8
|
+
# to many hosts (allies)
|
9
|
+
#
|
10
|
+
# See http://growl.info/
|
11
|
+
#
|
12
|
+
# depends on the ruby-growl gem
|
13
|
+
# gem install ruby-growl
|
14
|
+
#
|
15
|
+
# Allies must have OSX installed and must listen for incoming
|
16
|
+
# notifcations to hear the cry.
|
17
|
+
# You can enable this by going to the Growl configuration panel
|
18
|
+
# under System Preferences. Go to the network tab and check the following boxes
|
19
|
+
# - Listen for incoming notifications
|
20
|
+
# - Allow remote application registration
|
21
|
+
#
|
22
|
+
# = Example
|
23
|
+
#
|
24
|
+
# battlecry = Battlecry.new [{
|
25
|
+
# :host => "localhost"
|
26
|
+
# },{
|
27
|
+
# :host => "myhost.com",
|
28
|
+
# :password => "test"
|
29
|
+
# }]
|
30
|
+
# battlecry.shout "We will defeat our enemies!"
|
31
|
+
class Battlecry
|
32
|
+
|
33
|
+
VERSION = 0.1
|
34
|
+
|
35
|
+
##
|
36
|
+
# Creates a Battlecry, which registers notificaitons with one or
|
37
|
+
# more remote machines, known as allies
|
38
|
+
#
|
39
|
+
# +allies+ is an array of allies which will be affected by
|
40
|
+
# a battlecry. An ally is a hash object with a :host param (hostname),
|
41
|
+
# and an optional :password param
|
42
|
+
# eg: { :host => "localhost", :password => "password" }
|
43
|
+
|
44
|
+
def initialize allies
|
45
|
+
@allies = []
|
46
|
+
allies.each do |ally|
|
47
|
+
add_ally ally[:host], ally[:password]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
##
|
52
|
+
# Battlecrys for all allies in the army
|
53
|
+
#
|
54
|
+
# +message+ the content of the battlecry
|
55
|
+
#
|
56
|
+
# +title+ the title, or context of the battlecry
|
57
|
+
#
|
58
|
+
# +priority+ the intensity of the cry from -2 to 2
|
59
|
+
#
|
60
|
+
# +sticky+ makes the cry stick in the heads of allies
|
61
|
+
def shout message, title = "Battlecry", priority = 0, sticky = false
|
62
|
+
@allies.each do |ally|
|
63
|
+
ally.notify "battlecry", title, message, priority, sticky
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
##
|
68
|
+
# Adds an ally to the army
|
69
|
+
#
|
70
|
+
# +host+ the hostname of the ally
|
71
|
+
#
|
72
|
+
# +title+ the password for the ally
|
73
|
+
def add_ally host, password = nil
|
74
|
+
@allies << Growl.new(host, "battlecry", ["battlecry"], nil, password)
|
75
|
+
end
|
76
|
+
|
77
|
+
##
|
78
|
+
# The size of the army
|
79
|
+
def num_allies
|
80
|
+
@allies.size
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/helper"
|
2
|
+
|
3
|
+
describe Battlecry do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@battlecry = Battlecry.new [{ :host => "localhost" }]
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should have a version" do
|
10
|
+
Battlecry.const_defined?("VERSION").should == true
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should take a list of allies" do
|
14
|
+
@battlecry.num_allies.should equal(1)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should shout" do
|
18
|
+
@battlecry.should respond_to(:shout)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should allow additional allies" do
|
22
|
+
@battlecry.should respond_to(:add_ally)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should increase the army size when adding an ally" do
|
26
|
+
@battlecry.add_ally "site.com"
|
27
|
+
@battlecry.num_allies.should equal(2)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should shout and show a growl" do
|
31
|
+
@battlecry.shout "Test"
|
32
|
+
end
|
33
|
+
end
|
data/spec/helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: battlecry
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 9
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
version: "0.1"
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Dan Simpson
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-06-16 00:00:00 -07:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: ruby-growl
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 2
|
31
|
+
- 0
|
32
|
+
version: "2.0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
description: A simple abstraction for sydicating messages to OSX hosts via Growl
|
36
|
+
email: dan.simpson@gmail.com
|
37
|
+
executables: []
|
38
|
+
|
39
|
+
extensions: []
|
40
|
+
|
41
|
+
extra_rdoc_files: []
|
42
|
+
|
43
|
+
files:
|
44
|
+
- README.markdown
|
45
|
+
- battlecry.gemspec
|
46
|
+
- Rakefile
|
47
|
+
- spec/helper.rb
|
48
|
+
- spec/battlecry_spec.rb
|
49
|
+
- lib/battlecry.rb
|
50
|
+
has_rdoc: true
|
51
|
+
homepage: http://github.com/dansimpson/battlecry
|
52
|
+
licenses: []
|
53
|
+
|
54
|
+
post_install_message:
|
55
|
+
rdoc_options: []
|
56
|
+
|
57
|
+
require_paths:
|
58
|
+
- lib
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
hash: 3
|
65
|
+
segments:
|
66
|
+
- 0
|
67
|
+
version: "0"
|
68
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
hash: 3
|
74
|
+
segments:
|
75
|
+
- 0
|
76
|
+
version: "0"
|
77
|
+
requirements: []
|
78
|
+
|
79
|
+
rubyforge_project:
|
80
|
+
rubygems_version: 1.3.7
|
81
|
+
signing_key:
|
82
|
+
specification_version: 3
|
83
|
+
summary: A simple abstraction for sydicating messages to OSX hosts via Growl
|
84
|
+
test_files: []
|
85
|
+
|