syndi 0.1.1-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.yardopts +12 -0
- data/CHANGELOG.md +0 -0
- data/Gemfile +8 -0
- data/LICENSE +28 -0
- data/README.md +104 -0
- data/Rakefile +30 -0
- data/WINDOWS.md +64 -0
- data/bin/syndi +102 -0
- data/bin/syndi-conf +47 -0
- data/conf/example.yml +101 -0
- data/docs/Events.md +103 -0
- data/docs/Upgrade.md +16 -0
- data/ext/csyndi/events.c +50 -0
- data/ext/csyndi/extconf.rb +20 -0
- data/ext/csyndi/integer.c +53 -0
- data/ext/csyndi/libauto.c +37 -0
- data/ext/csyndi/logger.c +229 -0
- data/include/syndi.h +22 -0
- data/include/syndi/csyndi.h +38 -0
- data/include/syndi/events.h +19 -0
- data/include/syndi/integer.h +17 -0
- data/include/syndi/logger.h +56 -0
- data/lib/csyndi.so +0 -0
- data/lib/syndi.rb +137 -0
- data/lib/syndi/actress.rb +12 -0
- data/lib/syndi/api.rb +7 -0
- data/lib/syndi/api/object.rb +29 -0
- data/lib/syndi/bot.rb +266 -0
- data/lib/syndi/config.rb +113 -0
- data/lib/syndi/dsl/base.rb +74 -0
- data/lib/syndi/dsl/irc.rb +13 -0
- data/lib/syndi/events.rb +130 -0
- data/lib/syndi/irc.rb +8 -0
- data/lib/syndi/irc/common.rb +63 -0
- data/lib/syndi/irc/library.rb +89 -0
- data/lib/syndi/irc/object/channel.rb +21 -0
- data/lib/syndi/irc/object/entity.rb +90 -0
- data/lib/syndi/irc/object/message.rb +99 -0
- data/lib/syndi/irc/object/user.rb +139 -0
- data/lib/syndi/irc/protocol.rb +161 -0
- data/lib/syndi/irc/protocol/numerics.rb +60 -0
- data/lib/syndi/irc/sasl/diffie_hellman.rb +36 -0
- data/lib/syndi/irc/sasl/mech.rb +7 -0
- data/lib/syndi/irc/sasl/mech/dh_blowfish.rb +83 -0
- data/lib/syndi/irc/sasl/mech/plain.rb +39 -0
- data/lib/syndi/irc/server.rb +301 -0
- data/lib/syndi/irc/state/channel_manager.rb +6 -0
- data/lib/syndi/irc/state/support.rb +142 -0
- data/lib/syndi/irc/state/user_manager.rb +6 -0
- data/lib/syndi/irc/std/commands.rb +99 -0
- data/lib/syndi/irc/std/numerics.rb +216 -0
- data/lib/syndi/jewel.rb +5 -0
- data/lib/syndi/jewel/specification.rb +121 -0
- data/lib/syndi/jewel/util.rb +27 -0
- data/lib/syndi/rubyext/string.rb +10 -0
- data/lib/syndi/verbosity.rb +10 -0
- data/lib/syndi/version.rb +38 -0
- data/spec/helper.rb +37 -0
- data/spec/syndi/events_spec.rb +89 -0
- data/tasks/compile.rake +15 -0
- data/tasks/install.rake +10 -0
- data/tasks/package.rake +13 -0
- data/tasks/spec.rake +12 -0
- metadata +243 -0
data/lib/syndi/jewel.rb
ADDED
@@ -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,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:
|
data/tasks/compile.rake
ADDED
@@ -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:
|
data/tasks/install.rake
ADDED
@@ -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:
|
data/tasks/package.rake
ADDED
@@ -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
|