kirby 4 → 4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (7) hide show
  1. data.tar.gz.sig +0 -0
  2. data/CHANGELOG +2 -0
  3. data/README +13 -4
  4. data/kirby.gemspec +25 -22
  5. data/lib/kirby.rb +14 -1
  6. metadata +76 -48
  7. metadata.gz.sig +2 -0
Binary file
data/CHANGELOG CHANGED
@@ -1,4 +1,6 @@
1
1
 
2
+ v4.1. Watch atom feeds for git commits [lifo].
3
+
2
4
  v4. Documentation; Rakefile. Shouldn't have bumped the version, but all right.
3
5
 
4
6
  v3. del.icio.us integration.
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 repository commit watching
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
- * * * * * /path/to/kirby [options...] > /dev/null 2>&1
41
+ * * * * * bash -c 'cd /working/directory; kirby -d [options...] &> /dev/null'
40
42
 
41
- == Further resources
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
@@ -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
- s.date = %q{2007-08-12}
9
- s.summary = %q{A super-clean IRC bot with sandboxed Ruby evaluation, svn watching, and link-logging to del.icio.us.}
10
- s.email = %q{}
11
- s.homepage = %q{http://blog.evanweaver.com/pages/code#kirby}
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.files = ["lib/kirby.rb", "bin/kirby", "README", "LICENSE", "CHANGELOG", "kirby.gemspec"]
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.add_dependency(%q<hpricot>, ["> 0.0.0"])
20
- s.add_dependency(%q<daemons>, ["> 0.0.0"])
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/pages/code#kirby"
36
- # p.docs_host = "blog.evanweaver.com:~/www/snax/public/files/doc/"
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.need_tar = false
41
- # p.need_tar_gz = true
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
@@ -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
- files:
32
- - lib/kirby.rb
33
- - bin/kirby
34
- - README
35
- - LICENSE
36
- - CHANGELOG
37
- - kirby.gemspec
38
- test_files: []
39
-
40
- rdoc_options: []
41
-
42
- extra_rdoc_files: []
43
-
44
- executables:
45
- - kirby
46
- extensions: []
47
-
48
- requirements: []
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::Version::Requirement
39
+ version_requirements: !ruby/object:Gem::Requirement
55
40
  requirements:
56
- - - ">"
41
+ - - ">="
57
42
  - !ruby/object:Gem::Version
58
- version: 0.0.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::Version::Requirement
48
+ version_requirements: !ruby/object:Gem::Requirement
64
49
  requirements:
65
- - - ">"
50
+ - - ">="
66
51
  - !ruby/object:Gem::Version
67
- version: 0.0.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
+
@@ -0,0 +1,2 @@
1
+ �Ӝ`g~xs���08��#��
2
+ �B����T&����Eeɋ���y?XW��`#�N��}7�e6��wQ��ޑ�^�3(��u������ �b�L_S4K����q����9`�;��g����U�ߡ��J5#��0;q�BU6Gc��m��ic ��(9� �<m�(�/ �`�R���b��> 2fp��jH��?\�M1-