kirby 4 → 4.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.tar.gz.sig +0 -0
- data/CHANGELOG +2 -0
- data/README +13 -4
- data/kirby.gemspec +25 -22
- data/lib/kirby.rb +14 -1
- metadata +76 -48
- metadata.gz.sig +2 -0
data.tar.gz.sig
ADDED
Binary file
|
data/CHANGELOG
CHANGED
data/README
CHANGED
@@ -7,11 +7,13 @@ A super-clean IRC bot.
|
|
7
7
|
|
8
8
|
Copyright 2007 Cloudburst, LLC. See included LICENSE file.
|
9
9
|
|
10
|
+
The public certificate for this gem is at http://rubyforge.org/frs/download.php/25331/evan_weaver-original-public_cert.pem.
|
11
|
+
|
10
12
|
== Features
|
11
13
|
|
12
14
|
* <tt>irb</tt>-like interface
|
13
15
|
* safe, sandboxed Ruby environment
|
14
|
-
* svn
|
16
|
+
* svn and git-atom commit watching
|
15
17
|
* silent del.icio.us link saving
|
16
18
|
* tolerable channel fault recovery
|
17
19
|
|
@@ -36,9 +38,16 @@ See the Kirby class for commands.
|
|
36
38
|
|
37
39
|
You can use a crontask to keep Kirby alive at all times.
|
38
40
|
|
39
|
-
* * * * * /
|
41
|
+
* * * * * bash -c 'cd /working/directory; kirby -d [options...] &> /dev/null'
|
40
42
|
|
41
|
-
==
|
43
|
+
== Reporting problems
|
42
44
|
|
43
|
-
* http://blog.evanweaver.com/pages/code#kirby
|
44
45
|
* http://rubyforge.org/forum/forum.php?forum_id=13984
|
46
|
+
|
47
|
+
Patches and contributions are very welcome. Please note that contributors are required to assign copyright for their additions to Cloudburst, LLC.
|
48
|
+
|
49
|
+
== Further resources
|
50
|
+
|
51
|
+
* http://blog.evanweaver.com/articles/2007/01/04/kirby-spies-your-svn
|
52
|
+
* http://blog.evanweaver.com/articles/2007/01/06/kirby-gets-a-del-icio-us-account
|
53
|
+
* http://blog.evanweaver.com/articles/2007/01/02/a-ruby-eval-bot-for-irc-kirby
|
data/kirby.gemspec
CHANGED
@@ -1,23 +1,30 @@
|
|
1
1
|
|
2
|
-
# Gem::Specification for Kirby-4
|
2
|
+
# Gem::Specification for Kirby-4.1
|
3
3
|
# Originally generated by Echoe
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = %q{kirby}
|
7
|
-
s.version = "4"
|
8
|
-
|
9
|
-
s.
|
10
|
-
|
11
|
-
s.
|
12
|
-
s.rubyforge_project = %q{fauna}
|
13
|
-
s.description = %q{A super-clean IRC bot with sandboxed Ruby evaluation, svn watching, and link-logging to del.icio.us.}
|
14
|
-
s.default_executable = %q{kirby}
|
15
|
-
s.has_rdoc = true
|
7
|
+
s.version = "4.1"
|
8
|
+
|
9
|
+
s.specification_version = 2 if s.respond_to? :specification_version=
|
10
|
+
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
16
12
|
s.authors = [""]
|
17
|
-
s.
|
13
|
+
s.date = %q{2007-12-15}
|
14
|
+
s.default_executable = %q{kirby}
|
15
|
+
s.description = %q{A super-clean IRC bot with sandboxed Ruby evaluation, svn watching, and link-logging to del.icio.us.}
|
16
|
+
s.email = %q{}
|
18
17
|
s.executables = ["kirby"]
|
19
|
-
s.
|
20
|
-
s.
|
18
|
+
s.files = ["lib/kirby.rb", "bin/kirby", "README", "LICENSE", "CHANGELOG", "kirby.gemspec"]
|
19
|
+
s.has_rdoc = true
|
20
|
+
s.homepage = %q{http://blog.evanweaver.com/files/doc/fauna/kirby/}
|
21
|
+
s.require_paths = ["lib"]
|
22
|
+
s.rubyforge_project = %q{fauna}
|
23
|
+
s.rubygems_version = %q{0.9.5}
|
24
|
+
s.summary = %q{A super-clean IRC bot with sandboxed Ruby evaluation, svn watching, and link-logging to del.icio.us.}
|
25
|
+
|
26
|
+
s.add_dependency(%q<hpricot>, [">= 0"])
|
27
|
+
s.add_dependency(%q<daemons>, [">= 0"])
|
21
28
|
end
|
22
29
|
|
23
30
|
|
@@ -27,19 +34,15 @@ end
|
|
27
34
|
# require 'rubygems'
|
28
35
|
# require 'echoe'
|
29
36
|
#
|
30
|
-
# Echoe.new("kirby", `cat CHANGELOG`[/^v([\d\.]+)\. /, 1]) do |p|
|
31
|
-
#
|
37
|
+
# Echoe.new("kirby", `cat CHANGELOG`[/^v([\d\.]+)\. /, 1]) do |p|
|
32
38
|
# p.name = "kirby"
|
33
39
|
# p.rubyforge_name = "fauna"
|
34
40
|
# p.description = p.summary = "A super-clean IRC bot with sandboxed Ruby evaluation, svn watching, and link-logging to del.icio.us."
|
35
|
-
# p.url = "http://blog.evanweaver.com/
|
36
|
-
# p.docs_host = "blog.evanweaver.com:~/www/
|
41
|
+
# p.url = "http://blog.evanweaver.com/files/doc/fauna/kirby/"
|
42
|
+
# p.docs_host = "blog.evanweaver.com:~/www/bax/public/files/doc/"
|
37
43
|
# p.changes = `cat CHANGELOG`[/^v([\d\.]+\. .*)/, 1]
|
38
44
|
#
|
39
45
|
# p.extra_deps = ["hpricot", "daemons"]
|
40
|
-
# p.
|
41
|
-
# p.
|
42
|
-
#
|
43
|
-
# p.rdoc_pattern = /bin|lib|README|CHANGELOG|LICENSE/
|
44
|
-
#
|
46
|
+
# p.rdoc_pattern = /bin|lib|README|CHANGELOG|LICENSE/
|
47
|
+
# p.require_signed = true
|
45
48
|
# end
|
data/lib/kirby.rb
CHANGED
@@ -12,6 +12,7 @@ class Kirby
|
|
12
12
|
|
13
13
|
PATH = Pathname.new(".").dirname.realpath.to_s
|
14
14
|
STORE = PATH + '/kirby.repositories'
|
15
|
+
ATOM = PATH + '/kirby.atoms'
|
15
16
|
PIDFILE = PATH + '/kirby.pid'
|
16
17
|
|
17
18
|
NICK = (ARGV[1] or "kirby-dev")
|
@@ -23,6 +24,7 @@ class Kirby
|
|
23
24
|
# Connect and reconnect to the server
|
24
25
|
def restart
|
25
26
|
$store = (YAML.load_file STORE rescue {})
|
27
|
+
$atom = (YAML.load_file ATOM rescue {})
|
26
28
|
@socket.close if @socket
|
27
29
|
connect
|
28
30
|
listen
|
@@ -48,9 +50,10 @@ class Kirby
|
|
48
50
|
if msg = line[/ PRIVMSG #{CHANNEL} \:(.+)/, 1]
|
49
51
|
case msg
|
50
52
|
when /^>>\s*(.+)/ then try $1.chop
|
51
|
-
when /^#{NICK}/ then say "Usage: '>> CODE'. Say 'reset_irb' for a clean session. Say 'add_svn [repository_url]' to watch an svn repository
|
53
|
+
when /^#{NICK}/ then say "Usage: '>> CODE'. Say 'reset_irb' for a clean session. Say 'add_svn [repository_url]' to watch an svn repository and add_atom [atom_feed_url] to watch an atom feed"
|
52
54
|
when /^reset_irb/ then reset_irb
|
53
55
|
when /^add_svn (.+?)(\s|\r|\n|$)/ then $store[$1] = 0 and say $store.inspect
|
56
|
+
when /^add_atom (.+?)(\s|\r|\n|$)/ then $atom[$1] = '' and say $atom.inspect
|
54
57
|
end unless SILENT
|
55
58
|
post($1) if DELICIOUS_PASS and msg =~ /(http:\/\/.*?)(\s|\r|\n|$)/
|
56
59
|
end
|
@@ -102,6 +105,16 @@ class Kirby
|
|
102
105
|
end rescue nil
|
103
106
|
end
|
104
107
|
File.open(STORE, 'w') {|f| f.puts YAML.dump($store)}
|
108
|
+
|
109
|
+
$atom.each do |feed, last|
|
110
|
+
begin
|
111
|
+
e = (Hpricot(open(feed))/:entry).first
|
112
|
+
$atom[feed] = link = e.at("link")['href']
|
113
|
+
say "#{(e/:title).text} by #{((e/:author)/:name).text} : #{link}" unless link == last
|
114
|
+
rescue
|
115
|
+
end
|
116
|
+
end
|
117
|
+
File.open(ATOM, 'w') {|f| f.puts YAML.dump($atom)}
|
105
118
|
end
|
106
119
|
|
107
120
|
# Post a url to the del.icio.us account.
|
metadata
CHANGED
@@ -1,68 +1,96 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.4
|
3
|
-
specification_version: 1
|
4
2
|
name: kirby
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: "4"
|
7
|
-
date: 2007-08-12 00:00:00 -04:00
|
8
|
-
summary: A super-clean IRC bot with sandboxed Ruby evaluation, svn watching, and link-logging to del.icio.us.
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: ""
|
12
|
-
homepage: http://blog.evanweaver.com/pages/code#kirby
|
13
|
-
rubyforge_project: fauna
|
14
|
-
description: A super-clean IRC bot with sandboxed Ruby evaluation, svn watching, and link-logging to del.icio.us.
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: "4.1"
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- ""
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDLjCCAhagAwIBAgIBADANBgkqhkiG9w0BAQUFADA9MQ0wCwYDVQQDDARldmFu
|
14
|
+
MRgwFgYKCZImiZPyLGQBGRYIY2xvdWRidXIxEjAQBgoJkiaJk/IsZAEZFgJzdDAe
|
15
|
+
Fw0wNzA5MTYxMDMzMDBaFw0wODA5MTUxMDMzMDBaMD0xDTALBgNVBAMMBGV2YW4x
|
16
|
+
GDAWBgoJkiaJk/IsZAEZFghjbG91ZGJ1cjESMBAGCgmSJomT8ixkARkWAnN0MIIB
|
17
|
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5C0Io89nyApnr+PvbNFge9Vs
|
18
|
+
yRWAlGBUEMahpXp28VrrfXZT0rAW7JBo4PlCE3jl4nE4dzE6gAdItSycjTosrw7A
|
19
|
+
Ir5+xoyl4Vb35adv56TIQQXvNz+BzlqnkAY5JN0CSBRTQb6mxS3hFyD/h4qgDosj
|
20
|
+
R2RFVzHqSxCS8xq4Ny8uzOwOi+Xyu4w67fI5JvnPvMxqrlR1eaIQHmxnf76RzC46
|
21
|
+
QO5QhufjAYGGXd960XzbQsQyTDUYJzrvT7AdOfiyZzKQykKt8dEpDn+QPjFTnGnT
|
22
|
+
QmgJBX5WJN0lHF2l1sbv3gh4Kn1tZu+kTUqeXY6ShAoDTyvZRiFqQdwh8w2lTQID
|
23
|
+
AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU+WqJz3xQ
|
24
|
+
XSea1hRvvHWcIMgeeC4wDQYJKoZIhvcNAQEFBQADggEBAGLZ75jfOEW8Nsl26CTt
|
25
|
+
JFrWxQTcQT/UljeefVE3xYr7lc9oQjbqO3FOyued3qW7TaNEtZfSHoYeUSMYbpw1
|
26
|
+
XAwocIPuSRFDGM4B+hgQGVDx8PMGiJKom4qLXjO40UZsR7QyN/u869Vj45LURm6h
|
27
|
+
MBcPeqCASI+WNprj9+uZa2kmHiitrFqqfMBNlm5IFbn9XeYSta9AHVvs5QQqV2m5
|
28
|
+
hIPfLqCyxsn/YgOGvo6iwyQTWyTswamaAC3HRWZxIS1sfn/Ssqa7E7oQMkv5FAXr
|
29
|
+
x5rKePfXINf8XTJczkl9OBEYdE9aNdJsJpXD0asLgGVwBICS5Bjohp6mizJcDC1+
|
30
|
+
yZ0=
|
31
|
+
-----END CERTIFICATE-----
|
49
32
|
|
33
|
+
date: 2007-12-15 00:00:00 -05:00
|
34
|
+
default_executable:
|
50
35
|
dependencies:
|
51
36
|
- !ruby/object:Gem::Dependency
|
52
37
|
name: hpricot
|
53
38
|
version_requirement:
|
54
|
-
version_requirements: !ruby/object:Gem::
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
40
|
requirements:
|
56
|
-
- - "
|
41
|
+
- - ">="
|
57
42
|
- !ruby/object:Gem::Version
|
58
|
-
version: 0
|
43
|
+
version: "0"
|
59
44
|
version:
|
60
45
|
- !ruby/object:Gem::Dependency
|
61
46
|
name: daemons
|
62
47
|
version_requirement:
|
63
|
-
version_requirements: !ruby/object:Gem::
|
48
|
+
version_requirements: !ruby/object:Gem::Requirement
|
64
49
|
requirements:
|
65
|
-
- - "
|
50
|
+
- - ">="
|
66
51
|
- !ruby/object:Gem::Version
|
67
|
-
version: 0
|
52
|
+
version: "0"
|
68
53
|
version:
|
54
|
+
description: A super-clean IRC bot with sandboxed Ruby evaluation, svn watching, and link-logging to del.icio.us.
|
55
|
+
email: ""
|
56
|
+
executables:
|
57
|
+
- kirby
|
58
|
+
extensions: []
|
59
|
+
|
60
|
+
extra_rdoc_files: []
|
61
|
+
|
62
|
+
files:
|
63
|
+
- lib/kirby.rb
|
64
|
+
- bin/kirby
|
65
|
+
- README
|
66
|
+
- LICENSE
|
67
|
+
- CHANGELOG
|
68
|
+
- kirby.gemspec
|
69
|
+
has_rdoc: true
|
70
|
+
homepage: http://blog.evanweaver.com/files/doc/fauna/kirby/
|
71
|
+
post_install_message:
|
72
|
+
rdoc_options: []
|
73
|
+
|
74
|
+
require_paths:
|
75
|
+
- lib
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: "0"
|
81
|
+
version:
|
82
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: "0"
|
87
|
+
version:
|
88
|
+
requirements: []
|
89
|
+
|
90
|
+
rubyforge_project: fauna
|
91
|
+
rubygems_version: 0.9.5
|
92
|
+
signing_key:
|
93
|
+
specification_version: 2
|
94
|
+
summary: A super-clean IRC bot with sandboxed Ruby evaluation, svn watching, and link-logging to del.icio.us.
|
95
|
+
test_files: []
|
96
|
+
|
metadata.gz.sig
ADDED