syndi 0.1.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/CHANGELOG.md +0 -0
  4. data/Gemfile +8 -0
  5. data/LICENSE +28 -0
  6. data/README.md +104 -0
  7. data/Rakefile +30 -0
  8. data/WINDOWS.md +64 -0
  9. data/bin/syndi +102 -0
  10. data/bin/syndi-conf +47 -0
  11. data/conf/example.yml +101 -0
  12. data/docs/Events.md +103 -0
  13. data/docs/Upgrade.md +16 -0
  14. data/ext/csyndi/events.c +50 -0
  15. data/ext/csyndi/extconf.rb +20 -0
  16. data/ext/csyndi/integer.c +53 -0
  17. data/ext/csyndi/libauto.c +37 -0
  18. data/ext/csyndi/logger.c +229 -0
  19. data/include/syndi.h +22 -0
  20. data/include/syndi/csyndi.h +38 -0
  21. data/include/syndi/events.h +19 -0
  22. data/include/syndi/integer.h +17 -0
  23. data/include/syndi/logger.h +56 -0
  24. data/lib/csyndi.so +0 -0
  25. data/lib/syndi.rb +137 -0
  26. data/lib/syndi/actress.rb +12 -0
  27. data/lib/syndi/api.rb +7 -0
  28. data/lib/syndi/api/object.rb +29 -0
  29. data/lib/syndi/bot.rb +266 -0
  30. data/lib/syndi/config.rb +113 -0
  31. data/lib/syndi/dsl/base.rb +74 -0
  32. data/lib/syndi/dsl/irc.rb +13 -0
  33. data/lib/syndi/events.rb +130 -0
  34. data/lib/syndi/irc.rb +8 -0
  35. data/lib/syndi/irc/common.rb +63 -0
  36. data/lib/syndi/irc/library.rb +89 -0
  37. data/lib/syndi/irc/object/channel.rb +21 -0
  38. data/lib/syndi/irc/object/entity.rb +90 -0
  39. data/lib/syndi/irc/object/message.rb +99 -0
  40. data/lib/syndi/irc/object/user.rb +139 -0
  41. data/lib/syndi/irc/protocol.rb +161 -0
  42. data/lib/syndi/irc/protocol/numerics.rb +60 -0
  43. data/lib/syndi/irc/sasl/diffie_hellman.rb +36 -0
  44. data/lib/syndi/irc/sasl/mech.rb +7 -0
  45. data/lib/syndi/irc/sasl/mech/dh_blowfish.rb +83 -0
  46. data/lib/syndi/irc/sasl/mech/plain.rb +39 -0
  47. data/lib/syndi/irc/server.rb +301 -0
  48. data/lib/syndi/irc/state/channel_manager.rb +6 -0
  49. data/lib/syndi/irc/state/support.rb +142 -0
  50. data/lib/syndi/irc/state/user_manager.rb +6 -0
  51. data/lib/syndi/irc/std/commands.rb +99 -0
  52. data/lib/syndi/irc/std/numerics.rb +216 -0
  53. data/lib/syndi/jewel.rb +5 -0
  54. data/lib/syndi/jewel/specification.rb +121 -0
  55. data/lib/syndi/jewel/util.rb +27 -0
  56. data/lib/syndi/rubyext/string.rb +10 -0
  57. data/lib/syndi/verbosity.rb +10 -0
  58. data/lib/syndi/version.rb +38 -0
  59. data/spec/helper.rb +37 -0
  60. data/spec/syndi/events_spec.rb +89 -0
  61. data/tasks/compile.rake +15 -0
  62. data/tasks/install.rake +10 -0
  63. data/tasks/package.rake +13 -0
  64. data/tasks/spec.rake +12 -0
  65. metadata +243 -0
@@ -0,0 +1,5 @@
1
+ # Copyright (c) 2013, Autumn Perrault, et al. All rights reserved.
2
+ # This free software is distributed under the FreeBSD license (see LICENSE).
3
+
4
+
5
+ # vim: set ts=4 sts=2 sw=2 et:
@@ -0,0 +1,121 @@
1
+ # Copyright (c) 2013, Autumn Perrault, et al. All rights reserved.
2
+ # This free software is distributed under the FreeBSD license (see LICENSE).
3
+
4
+ require 'syndi'
5
+ require 'syndi/jewel/util'
6
+
7
+ class JewelError < StandardError; end
8
+
9
+ module Syndi
10
+
11
+ module Jewel
12
+ include Syndi::Jewel::Util
13
+
14
+ # A specification for an Syndi jewel (i.e. plugin, extension, etc.).
15
+ #
16
+ # @!attribute name
17
+ class Specification
18
+
19
+ attr_reader :name, :version, :authors, :syndi_version, :our_dir,
20
+ :bundle, :code_files, :doc_files, :post_message,
21
+ :install_do
22
+
23
+ def omg *args
24
+ args.each do |unicorn|
25
+ puts "==> #{unicorn}".magenta
26
+ end
27
+ end
28
+
29
+ # Construct a new specification.
30
+ #
31
+ # @param [String] file The value of +__FILE__+ as accessed from the spec itself.
32
+ def initialize file
33
+ @name = nil
34
+ @version = nil
35
+ @authors = []
36
+ @syndi_version = nil
37
+ @our_dir = File.expand_path('..', file)
38
+ @bundle = 'Gemfile'
39
+ @code_files = []
40
+ @doc_files = []
41
+ @post_message = nil
42
+
43
+ @install_do = proc { nil }
44
+
45
+ # Yield to block for configuration.
46
+ yield self
47
+
48
+ # Initiate installation.
49
+ install
50
+ end
51
+
52
+ # Sets the jewel name.
53
+ #
54
+ # @param [String] monkey The name of the jewel.
55
+ def name= monkey
56
+ raise JewelError, 'Invalid jewel name!' unless monkey.instance_of? String
57
+ monkey.downcase!
58
+
59
+ @name = monkey
60
+ omg "Jewel name: #{monkey.green}"
61
+ end
62
+
63
+ # Sets the jewel version.
64
+ #
65
+ # @param [String] mascara The version of the jewel.
66
+ def version= mascara
67
+ mascara.downcase!
68
+
69
+ @version = mascara
70
+ omg "Jewel version: #{mascara.green}"
71
+ end
72
+
73
+ # Sets the jewel author (only one).
74
+ #
75
+ # @param [String] its_a_trap The (sole) author of the jewel.
76
+ def author= its_a_trap
77
+ raise JewelError, 'Invalid jewel author!' unless its_a_trap.instance_of? String
78
+
79
+ @authors.push its_a_trap
80
+ omg "Jewel written by #{its_a_trap.blue}"
81
+ end
82
+
83
+ # Sets multiple jewel authors.
84
+ #
85
+ # @param [Array] chi The authors of the jewel. (splat)
86
+ def authors= *chi
87
+ raise JewelError, 'Invalid jewel author list!' unless chi.instance_of? Array
88
+ raise JewelError, 'Invalid method of author specification!' unless chi.length > 1
89
+
90
+ @authors = chi
91
+ omg "Jewel written by #{chi.join ', '}"
92
+ end
93
+
94
+ # Sets the Syndi version required by the jewel.
95
+ #
96
+ # @param [String] essie The minimum Syndi version required.
97
+ def syndi_version= essie
98
+ if Gem::Version.new(essie.dup) < Gem::Version.new(Syndi::VERSION.dup)
99
+ raise JewelError, "This jewel requires Syndi version >= #{essie.red} but current version is #{Syndi::VERSION}!"
100
+ end
101
+
102
+ @syndi_version = essie
103
+ omg "Jewel is compatible with your version of Syndi (requires: >= #{essie.green})!"
104
+ end
105
+
106
+ # Sets the name of the GemBundler Gemfile. Default is +Gemfile+.
107
+ #
108
+ # @param [String] sephora The name of the Gemfile.
109
+ def bundle= sephora = 'Gemfile'
110
+ raise JewelError, "Jewel's Gemfile is missing!" unless File.exists? File.join(@our_dir, sephora)
111
+
112
+ @bundle = sephora
113
+ end
114
+
115
+ end # class Specification
116
+
117
+ end # module Jewel
118
+
119
+ end # module Syndi
120
+
121
+ # vim: set ts=4 sts=2 sw=2 et:
@@ -0,0 +1,27 @@
1
+ # Copyright (c) 2013, Autumn Perrault, et al. All rights reserved.
2
+ # This free software is distributed under the FreeBSD license (see LICENSE).
3
+
4
+ require 'syndi'
5
+
6
+ class JewelCutError < StandardError; end
7
+
8
+ module Syndi
9
+
10
+ module Jewel
11
+
12
+ module Util
13
+
14
+ # Install the jewel.
15
+ def install
16
+
17
+
18
+ end
19
+
20
+ end
21
+
22
+ end
23
+
24
+ end
25
+
26
+
27
+ # vim: set ts=4 sts=2 sw=2 et:
@@ -0,0 +1,10 @@
1
+ # This changes the String class in Ruby's standard library to make life easier
2
+ # by aliasing String#uc to String#upcase and String#dc to String#downcase
3
+ class String
4
+ alias_method :uc, :upcase
5
+ alias_method :dc, :downcase
6
+ alias_method :uc!, :upcase!
7
+ alias_method :dc!, :downcase!
8
+ end
9
+
10
+ # vim: set ts=4 sts=2 sw=2 et:
@@ -0,0 +1,10 @@
1
+ # Copyright (c) 2013, Autumn Perrault, et al. All rights reserved.
2
+ # This free software is distributed under the FreeBSD license (see LICENSE).
3
+
4
+ $VERBOSITY = 0
5
+
6
+ VSIMPLE = 1
7
+ VUSEFUL = 2
8
+ VNOISY = 3
9
+
10
+ # vim: set ts=4 sts=2 sw=2 et:
@@ -0,0 +1,38 @@
1
+ # Copyright (c) 2013, Autumn Perrault, et al. All rights reserved.
2
+ # This free software is distributed under the FreeBSD license (see LICENSE).
3
+
4
+ module Syndi
5
+
6
+ # Standard version string.
7
+ #
8
+ # We use semantic versioning: +MAJOR.MINOR.PATCH.PRE.PRENUM+
9
+ VERSION = '0.1.1'.freeze
10
+
11
+ # Standard version plus the codename (assigned to each minor release).
12
+ #
13
+ # i.e., +VERSION-CODENAME+
14
+ FULLVERSION = "#{VERSION}-phoenix".freeze
15
+
16
+ # @return [Boolean] Whether this is an alpha-stage copy.
17
+ def self.alpha?
18
+ (VERSION =~ /alpha/).nil? ? false : true
19
+ end
20
+
21
+ # @return [Boolean] Whether this is a beta-stage copy.
22
+ def self.beta?
23
+ (VERSION =~ /beta/).nil? ? false : true
24
+ end
25
+
26
+ # @return [Boolean] Whether this is a release candidate copy.
27
+ def self.rc?
28
+ (VERSION =~ /rc/).nil? ? false : true
29
+ end
30
+
31
+ # @return [Boolean] Whether this is an edge (i.e. testing, development, unstable) copy.
32
+ def self.edge?
33
+ alpha? || beta? || rc?
34
+ end
35
+
36
+ end
37
+
38
+ # vim: set ts=4 sts=2 sw=2 et:
data/spec/helper.rb ADDED
@@ -0,0 +1,37 @@
1
+ # Copyright (c) 2013, Autumn Perrault, et al. All rights reserved.
2
+ # This free software is distributed under the FreeBSD license (see LICENSE).
3
+
4
+ require 'English'
5
+ $LOAD_PATH.unshift File.join __dir__, '..', 'lib'
6
+
7
+ require 'rspec/core'
8
+ require 'rspec/expectations'
9
+ require 'rspec/mocks'
10
+ require 'fileutils'
11
+ require 'stringio'
12
+ require 'tmpdir'
13
+
14
+ require 'syndi'
15
+
16
+ $temp_dir = Dir.mktmpdir
17
+ Syndi.dir = $temp_dir
18
+ $VERBOSITY = -1
19
+
20
+ module Helper
21
+
22
+ end
23
+
24
+ RSpec.configure do |conf|
25
+ conf.include Helper
26
+
27
+ conf.after(:all) do
28
+ Dir.chdir __dir__
29
+ FileUtils.remove_entry $temp_dir
30
+ end
31
+
32
+ conf.expect_with :rspec do |c|
33
+ c.syntax = :expect
34
+ end
35
+ end
36
+
37
+ # vim: set ts=4 sts=2 sw=2 et:
@@ -0,0 +1,89 @@
1
+ # Copyright (c) 2013, Autumn Perrault, et al. All rights reserved.
2
+ # This free software is distributed under the FreeBSD license (see LICENSE).
3
+
4
+ require 'syndi/events'
5
+
6
+ describe Syndi::Events do
7
+
8
+ before do
9
+ @events = Syndi::Events.new
10
+ end
11
+
12
+ describe '#on' do
13
+
14
+ it 'listens for an event' do
15
+ @events.on(:moo) do |magic|
16
+ magic.write 'OK'
17
+ end
18
+
19
+ rawr = StringIO.new
20
+ @events.emit :moo, rawr
21
+ sleep 0.1
22
+
23
+ rawr.seek 0
24
+ expect(rawr.string).to eq 'OK'
25
+ end
26
+
27
+ it 'returns a listener' do
28
+ hook = @events.on(:cows) { nil }
29
+ expect(hook).to be_an_instance_of Syndi::Events::Listener
30
+ end
31
+
32
+ context 'when given a priority outside 1..5' do
33
+ it 'raises an ArgumentError' do
34
+ expect { @events.on(:meowbar, 6) { nil } }.to raise_error ArgumentError
35
+ end
36
+ end
37
+
38
+ end
39
+
40
+ describe '#emit' do
41
+
42
+ it 'broadcasts an event' do
43
+ @events.on(:fairy) do |cat, meow|
44
+ cat.write meow
45
+ end
46
+
47
+ cat = StringIO.new
48
+ @events.emit :fairy, cat, 'meow'
49
+ sleep 0.1
50
+
51
+ expect(cat.string).to eq 'meow'
52
+ end
53
+
54
+ it 'respects priority' do
55
+ @order = ''
56
+ @events.on(:a, 1) { |order| order << 'A' }
57
+ @events.on(:a, 3) { |order| order << 'B' }
58
+ @events.on(:a, 5) { |order| order << 'C' }
59
+
60
+ @events.emit :a, @order
61
+ sleep 0.1
62
+
63
+ expect(@order).to eq 'ABC'
64
+ end
65
+
66
+ end
67
+
68
+ describe Syndi::Events::Listener do
69
+
70
+ describe '#deaf' do
71
+
72
+ it 'terminates a listener' do
73
+ @ok = true
74
+ hook = @events.on(:beep) { @ok = false }
75
+ hook.deaf
76
+
77
+ @events.emit :beep
78
+ sleep 0.1
79
+
80
+ expect(@ok).to be_true
81
+ end
82
+
83
+ end
84
+
85
+ end
86
+
87
+ end
88
+
89
+ # vim: set ts=4 sts=2 sw=2 et:
@@ -0,0 +1,15 @@
1
+ # Copyright (c) 2013, Autumn Perrault, et al. All rights reserved.
2
+ # This free software is distributed under the FreeBSD license (see LICENSE).
3
+
4
+ require 'rake/extensiontask'
5
+
6
+ desc 'Compile the native extension.'
7
+ Rake::ExtensionTask.new 'csyndi', $gemspec do |ext|
8
+ ext.cross_compile = true
9
+
10
+ ext.cross_compiling do |spec|
11
+ spec.post_install_message << "\r\nNOTICE: You have installed the binary distribution of this gem."
12
+ end
13
+ end
14
+
15
+ # vim: set ts=4 sts=2 sw=2 et:
@@ -0,0 +1,10 @@
1
+ # Copyright (c) 2013, Autumn Perrault, et al. All rights reserved.
2
+ # This free software is distributed under the FreeBSD license (see LICENSE).
3
+
4
+ desc 'Install the gem.'
5
+ task :install => :gem do
6
+ gempkg = Dir["pkg/Syndi-#{$gemspec.version}.gem"].last
7
+ sh "gem install #{gempkg}"
8
+ end
9
+
10
+ # vim: set ts=4 sts=2 sw=2 et:
@@ -0,0 +1,13 @@
1
+ # Copyright (c) 2013, Autumn Perrault, et al. All rights reserved.
2
+ # This free software is distributed under the FreeBSD license (see LICENSE).
3
+
4
+ require 'rubygems'
5
+ require 'rubygems/package_task'
6
+
7
+ desc 'Package the gem.'
8
+ Gem::PackageTask.new($gemspec) do |pkg|
9
+ pkg.need_zip = true
10
+ pkg.need_tar = true
11
+ end
12
+
13
+ # vim: set ts=4 sts=2 sw=2 et:
data/tasks/spec.rake ADDED
@@ -0,0 +1,12 @@
1
+ # Copyright (c) 2013, Autumn Perrault, et al. All rights reserved.
2
+ # This free software is distributed under the FreeBSD license (see LICENSE).
3
+
4
+ require 'rspec/core/rake_task'
5
+
6
+ desc 'Test the application.'
7
+ RSpec::Core::RakeTask.new do |t|
8
+ t.pattern = "#{__dir__}/../spec/**/*_spec.rb"
9
+ t.rspec_opts = ["-I #{__dir__}/../lib", "-r #{__dir__}/../spec/helper.rb"]
10
+ end
11
+
12
+ # vim: set ts=4 sts=2 sw=2 et:
metadata ADDED
@@ -0,0 +1,243 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: syndi
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: x86-mingw32
6
+ authors:
7
+ - Autumn Perrault
8
+ - Matthew Carey
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.2'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.2'
28
+ - !ruby/object:Gem::Dependency
29
+ name: celluloid
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '0.12'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '0.12'
42
+ - !ruby/object:Gem::Dependency
43
+ name: celluloid-io
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '0.12'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '0.12'
56
+ - !ruby/object:Gem::Dependency
57
+ name: colored
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '1.2'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.2'
70
+ - !ruby/object:Gem::Dependency
71
+ name: redis
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '3.0'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '3.0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: slop
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '3.4'
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '3.4'
98
+ - !ruby/object:Gem::Dependency
99
+ name: rake
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: rake-compiler
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rspec
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ description: |2
141
+ An elegant, modern, multithreaded, event-driven, modular chat bot
142
+ designed upon a multi-protocol model.
143
+ email: syndibot@googlegroups.com
144
+ executables:
145
+ - syndi
146
+ - syndi-conf
147
+ extensions: []
148
+ extra_rdoc_files: []
149
+ files:
150
+ - bin/syndi-conf
151
+ - bin/syndi
152
+ - lib/csyndi.so
153
+ - lib/syndi/dsl/irc.rb
154
+ - lib/syndi/dsl/base.rb
155
+ - lib/syndi/verbosity.rb
156
+ - lib/syndi/api.rb
157
+ - lib/syndi/rubyext/string.rb
158
+ - lib/syndi/irc.rb
159
+ - lib/syndi/api/object.rb
160
+ - lib/syndi/config.rb
161
+ - lib/syndi/version.rb
162
+ - lib/syndi/actress.rb
163
+ - lib/syndi/jewel/specification.rb
164
+ - lib/syndi/jewel/util.rb
165
+ - lib/syndi/events.rb
166
+ - lib/syndi/jewel.rb
167
+ - lib/syndi/irc/protocol.rb
168
+ - lib/syndi/irc/library.rb
169
+ - lib/syndi/irc/object/message.rb
170
+ - lib/syndi/irc/object/entity.rb
171
+ - lib/syndi/irc/object/user.rb
172
+ - lib/syndi/irc/object/channel.rb
173
+ - lib/syndi/irc/sasl/mech.rb
174
+ - lib/syndi/irc/sasl/diffie_hellman.rb
175
+ - lib/syndi/irc/sasl/mech/dh_blowfish.rb
176
+ - lib/syndi/irc/sasl/mech/plain.rb
177
+ - lib/syndi/irc/protocol/numerics.rb
178
+ - lib/syndi/irc/state/support.rb
179
+ - lib/syndi/irc/state/channel_manager.rb
180
+ - lib/syndi/irc/state/user_manager.rb
181
+ - lib/syndi/irc/common.rb
182
+ - lib/syndi/irc/server.rb
183
+ - lib/syndi/irc/std/numerics.rb
184
+ - lib/syndi/irc/std/commands.rb
185
+ - lib/syndi/bot.rb
186
+ - lib/syndi.rb
187
+ - ext/csyndi/events.c
188
+ - ext/csyndi/logger.c
189
+ - ext/csyndi/extconf.rb
190
+ - ext/csyndi/integer.c
191
+ - ext/csyndi/libauto.c
192
+ - docs/Upgrade.md
193
+ - docs/Events.md
194
+ - include/syndi/integer.h
195
+ - include/syndi/logger.h
196
+ - include/syndi/csyndi.h
197
+ - include/syndi/events.h
198
+ - include/syndi.h
199
+ - tasks/spec.rake
200
+ - tasks/compile.rake
201
+ - tasks/package.rake
202
+ - tasks/install.rake
203
+ - README.md
204
+ - LICENSE
205
+ - WINDOWS.md
206
+ - CHANGELOG.md
207
+ - Gemfile
208
+ - Rakefile
209
+ - ".yardopts"
210
+ - conf/example.yml
211
+ - spec/helper.rb
212
+ - spec/syndi/events_spec.rb
213
+ homepage: http://syndibot.com
214
+ licenses:
215
+ - FreeBSD
216
+ metadata: {}
217
+ post_install_message: "Thanks for choosing Syndi to serve your chat bot needs! (:\n\nWe
218
+ suggest that, if you're not already consulting it, you read the Syndi Handbook:\nhttps://github.com/syndibot/syndi/wiki/Handbook\n\nMoreover,
219
+ you should typically now run `syndi-conf` to produce a configuration file.\n\r\nNOTICE:
220
+ You have installed the binary distribution of this gem."
221
+ rdoc_options: []
222
+ require_paths:
223
+ - lib
224
+ required_ruby_version: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - ">="
227
+ - !ruby/object:Gem::Version
228
+ version: '0'
229
+ required_rubygems_version: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - ">="
232
+ - !ruby/object:Gem::Version
233
+ version: '0'
234
+ requirements: []
235
+ rubyforge_project:
236
+ rubygems_version: 2.0.0.rc.1
237
+ signing_key:
238
+ specification_version: 4
239
+ summary: A modern, elegant, extensible multi-protocol bot.
240
+ test_files:
241
+ - spec/helper.rb
242
+ - spec/syndi/events_spec.rb
243
+ - Rakefile