syndi 0.1.1-x86-mingw32 → 0.1.2-x86-mingw32

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: c5876cdc53db5219da91fc95dcd942786a8402bb
4
- data.tar.gz: bdaa59d5c4823fc64b7e9a26701424b230d17b94
5
- !binary "U0hBNTEy":
6
- metadata.gz: 1aae881581b64b535a17d291f0bdc7a6ecd44590ce12b172a3d05ad57a569bcda6e66ea506e4841cefbbb8a5d8a1a4304f3a196c72190637dc2169d848739c06
7
- data.tar.gz: 0e8939191f33db34fbf5d63dbc56a180b01c35b4f62692b5ce5f9c0f46855c3b1e084d7eca7843e0edadb192236c9dd7341fc506e8f24780deb918115dd74a5a
2
+ SHA1:
3
+ metadata.gz: fcb99f3a15077e9ca9c7eabeda5dfe079b8bf4b7
4
+ data.tar.gz: b5aef319c65fa7d087f8b455fd0299968d4f4a2c
5
+ SHA512:
6
+ metadata.gz: dcad40aabdd6567100d08746bc5ce8f982d629b16a77bb5d5fd1285b34f91900e90c0033d21d4cd4a6f0f388bbb39e63ee3bab2601c5cea8348dbe3385241962
7
+ data.tar.gz: 33d3d8523115ce2678fc28961cf2487a9c9a40154e66cf245d1b1d36e5b10e2870ab4917621c6d42332ea5e2fb95fe5d92a052b8c2d2fe0bd34d241f1b542147
data/CHANGELOG.md CHANGED
@@ -0,0 +1,9 @@
1
+ Syndi Changelog
2
+ ===============
3
+
4
+ v0.1.2
5
+ ------
6
+
7
+ + csyndi/logger.c: `Syndi::Logger#debug(message)` added. NOTE: This is purely for consistency
8
+ with Celluloid. Use `#verbose` instead.
9
+ + csyndi/logger.c: `Syndi::Logger#deprecate(message)` added.
data/README.md CHANGED
@@ -1,67 +1,30 @@
1
1
  Syndi
2
2
  =====
3
3
 
4
- _A modern, elegant, extensible multi-protocol chat bot—reloaded._
5
-
6
- **Formerly known as Auto.**
7
-
8
- **Version**: 0.1.1 "Phoenix"
9
- [![Build Status](https://travis-ci.org/syndibot/syndi.png?branch=master)](https://travis-ci.org/syndibot/syndi)
10
- [![Dependency Status](https://gemnasium.com/syndibot/syndi.png)](https://gemnasium.com/syndibot/syndi)
11
4
  [![Code Climate](https://codeclimate.com/github/syndibot/syndi.png)](https://codeclimate.com/github/syndibot/syndi)
5
+ [![Gem Version](https://badge.fury.io/rb/syndi.png)](http://badge.fury.io/rb/syndi)
6
+ [![Build Status](https://travis-ci.org/syndibot/syndi.png?branch=master)](https://travis-ci.org/syndibot/syndi)
7
+ [![Dependency Status](https://gemnasium.com/syndibot/syndi.png)](https://gemnasium.com/syndibot/syndi)
12
8
 
13
- + [Website](http://syndibot.com) (lots of information)
14
- + [RubyGems](https://rubygems.org/gems/syndi)
15
- + [Wiki](https://github.com/syndibot/syndi/wiki)
16
- + [Mailing List](https://groups.google.com/group/syndibot)
17
- + [Issue Hub](https://github.com/syndibot/syndi/issues)
9
+ | | |
10
+ | --------------:|:------------------------------------------ |
11
+ | **Name:** | Syndi |
12
+ | **Version:** | 0.1.2 "Phoenix" |
13
+ | **Summary:** | A modern, elegant, modular chat bot. |
14
+ | **Author:** | [Autumn Perrault](http://destellae.net/) |
15
+ | **Homepage:** | [http://syndibot.com](http://syndibot.com) |
16
+ | **Languages:** | Ruby, C |
18
17
 
18
+ * [Wiki](https://github.com/syndibot/syndi/wiki)
19
+ * [Mailing List](https://groups.google.com/group/syndibot)
20
+ * [Issue Tracker](https://github.com/syndibot/syndi/issues)
19
21
 
20
22
  Our official IRC channel is [#syndi on irc.freenode.net](irc://irc.freenode.net/#syndi).
21
23
 
22
- Synopsis
23
- --------
24
-
25
- Syndi is automated chat bot software, developed per this philosophy:
26
-
27
- * _Friendly_ to users, and to developers.
28
- * _Simple_, _smart_, and _clean_.
29
- * _Minimal_ but _extensible_.
30
-
31
- It is a reboot of Auto, an old IRC bot which, though featureful, suffered of design flaws.
32
-
33
- ### Is it Production-Ready™?
34
-
35
- Not yet. Syndi's a fairly sizable project. We're getting close though.
36
-
37
24
  Installation
38
25
  ------------
39
26
 
40
- Please read the [Syndi Handbook](https://github.com/syndibot/syndi/wiki/Handbook).
41
-
42
- **Compiling from source:**
43
-
44
- ```shell
45
- $ git clone git://github.com/syndibot/syndi.git syndi
46
- $ cd syndi/
47
- ```
48
- Use a [specific version](https://github.com/syndibot/syndi/tags):
49
-
50
- ```shell
51
- $ git checkout v4.0.0.alpha.1
52
- ```
53
-
54
- Or the cutting-edge HEAD:
55
-
56
- ```shell
57
- $ git checkout master
58
- ```
59
-
60
- ```shell
61
- $ bundle install
62
- $ rake
63
- $ rake install
64
- ```
27
+ Please read the [Syndi Handbook](http://syndibot.com/handbook/).
65
28
 
66
29
  Syndi is currently known to function on these operating systems:
67
30
 
@@ -74,31 +37,10 @@ Using these Ruby virtual machines:
74
37
 
75
38
  + MRI/YARV (official) 2.0.0
76
39
 
77
- Support
78
- -------
79
-
80
- If you should find yourself in need of support, please foremost consult with the
81
- documentation on the [wiki](https://github.com/syndibot/syndi/wiki).
82
-
83
- If the wiki fails to address your needs, please either:
84
-
85
- 1. Post to the [syndibot](https://groups.google.com/group/syndibot)
86
- group under the _support_ category, **or**
87
- 2. Join the official IRC chatroom at
88
- [#syndi on irc.freenode.net](http://webchat.freenode.net/?randomnick=1&channels=#syndi&prompt=1)
89
-
90
- **Bugs** should be reported on the [issue management hub](https://github.com/syndibot/syndi/issues).
91
-
92
- Authors
93
- -------
94
-
95
- Syndi 4 was rewritten from scratch by Autumn Perrault (noxgirl) in Ruby and C,
96
- and is actively developed by the core team.
97
-
98
40
  Legal
99
41
  -----
100
42
 
101
43
  Copyright (c) 2009-2013, Autumn Perrault. All rights reserved.
102
44
 
103
45
  Syndi is free, open-source software, distributed per the terms of the two-clause
104
- ("FreeBSD") license, the full terms of which are in [**LICENSE**](LICENSE).
46
+ ("FreeBSD") BSD license, the full terms of which are in [**LICENSE**](LICENSE).
data/bin/syndi CHANGED
@@ -5,12 +5,6 @@
5
5
  require 'English'
6
6
  require 'rbconfig'
7
7
 
8
- # Perform a check of the Ruby version.
9
- if ::RbConfig::CONFIG['ruby_version'] < '2.0.0'
10
- puts 'Syndi requires Ruby v2.0.0 or later. Please read the Syndi Handbook.'
11
- exit 1
12
- end
13
-
14
8
  # Forbid root.
15
9
  if ENV.include? 'USER'
16
10
  if ENV['USER'] == 'root'
@@ -19,21 +13,22 @@ if ENV.include? 'USER'
19
13
  end
20
14
  end
21
15
 
22
- # Import necessary libraries.
23
- require 'slop'
24
16
  # Import system Syndi libraries, or fall back to internal ones.
25
17
  begin
26
- require 'syndi'
18
+ require 'syndi/ruby_version_check'
27
19
  rescue LoadError
28
20
  $LOAD_PATH.unshift File.join(__dir__, '..', 'lib')
29
- require 'syndi'
21
+ require 'syndi/ruby_version_check'
30
22
  end
23
+
24
+ # Import necessary libraries.
25
+ require 'slop'
26
+ require 'syndi'
31
27
  require 'syndi/verbosity'
32
28
 
33
29
  # Change to the Syndi directory.
34
- SYNDI_DIR = File.join ENV['HOME'], '.syndi'
35
- Dir.mkdir SYNDI_DIR unless Dir.exists? SYNDI_DIR
36
- Dir.chdir SYNDI_DIR
30
+ Syndi.dir = File.join ENV['HOME'], '.syndi'
31
+ Syndi.celluloid_log
37
32
 
38
33
  $VERBOSITY = 0
39
34
 
data/bin/synditool ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+ # Copyright (c) 2013, Autumn Perrault, et al. All rights reserved.
3
+ # This free software is distributed under the FreeBSD license (see LICENSE).
4
+
5
+ require 'English'
6
+
7
+ # Import the system libraries, or fall back to internal distribution.
8
+ begin
9
+ require 'syndi/cli'
10
+ rescue LoadError
11
+ $LOAD_PATH.unshift File.join(__dir__, '..', 'lib')
12
+ require 'syndi/cli'
13
+ end
14
+
15
+ # Start the CLI.
16
+ Syndi::CLI.start ARGV
17
+
18
+ # vim: set ts=4 sts=2 sw=2 et:
data/ext/csyndi/logger.c CHANGED
@@ -104,19 +104,19 @@ static void log_dircheck()
104
104
  *
105
105
  * @return [Syndi::Logger]
106
106
  */
107
- VALUE logger_init(VALUE self)
107
+ static VALUE logger_init(VALUE self)
108
108
  {
109
109
  log_dircheck();
110
110
  return self;
111
111
  }
112
112
 
113
113
  /* @overload fatal(message)
114
- * This will log +message+ as a fatal error, as well as kill the program.
114
+ * This will log `message` as a fatal error, as well as kill the program.
115
115
  *
116
116
  * @param [String] message The fatal error message to be reported.
117
117
  * @return [nil]
118
118
  */
119
- VALUE logger_fatal(VALUE self, VALUE message)
119
+ static VALUE logger_fatal(VALUE self, VALUE message)
120
120
  {
121
121
  char *msg = RSTRING_PTR(message);
122
122
  log_out2file("FATAL ERROR", msg);
@@ -126,14 +126,14 @@ VALUE logger_fatal(VALUE self, VALUE message)
126
126
  }
127
127
 
128
128
  /* @overload error(message)
129
- * This will log +message+ as an error, optionally also outputting +backtrace+,
129
+ * This will log `message` as an error, optionally also outputting `backtrace`,
130
130
  * the data for which shall be obtained from Kernel#caller.
131
131
  *
132
132
  * @param [String] message The error message to be reported.
133
133
  * @param [Boolean] backtrace Whether to output a backtrace.
134
134
  * @return [nil]
135
135
  */
136
- VALUE logger_error(int argc, VALUE *argv, VALUE self)
136
+ static VALUE logger_error(int argc, VALUE *argv, VALUE self)
137
137
  {
138
138
  VALUE message;
139
139
  VALUE backtrace;
@@ -157,12 +157,12 @@ VALUE logger_error(int argc, VALUE *argv, VALUE self)
157
157
  }
158
158
 
159
159
  /* @overload warn(message)
160
- * This will log +message+ as a warning.
160
+ * This will log `message` as a warning.
161
161
  *
162
162
  * @param [String] message The admonitory message to be reported.
163
163
  * @return [nil]
164
164
  */
165
- VALUE logger_warn(VALUE self, VALUE message)
165
+ static VALUE logger_warn(VALUE self, VALUE message)
166
166
  {
167
167
  char *msg = RSTRING_PTR(message);
168
168
  log_out2file("WARNING", msg);
@@ -170,13 +170,36 @@ VALUE logger_warn(VALUE self, VALUE message)
170
170
  return Qnil;
171
171
  }
172
172
 
173
+ /* @overload deprecate(message)
174
+ * This will call Kernel#warn with the notice of deprecation.
175
+ *
176
+ * @param [String] message The notice regarding usage of a deprecated method.
177
+ * @return [nil]
178
+ */
179
+ static VALUE logger_deprecate(VALUE self, VALUE message)
180
+ {
181
+ VALUE backtrace;
182
+ VALUE notice;
183
+
184
+ notice = rb_str_new("DEPRECATION WARNING: ", 21);
185
+ rb_str_append(notice, message);
186
+
187
+ rb_funcall(rb_cObject, SYM(warn), 1, notice);
188
+
189
+ backtrace = rb_funcall(rb_cObject, SYM(caller), 0);
190
+ fprintf(stderr, "Backtrace:%s", OS_LINE_TERM);
191
+ rb_funcall(rb_stderr, SYM(puts), 1, backtrace);
192
+
193
+ return Qnil;
194
+ }
195
+
173
196
  /* @overload info(message)
174
- * This will log +message+ as an informative message.
197
+ * This will log `message` as an informative message.
175
198
  *
176
199
  * @param [String] message The information to be reported.
177
200
  * @return [nil]
178
201
  */
179
- VALUE logger_info(VALUE self, VALUE message)
202
+ static VALUE logger_info(VALUE self, VALUE message)
180
203
  {
181
204
  char *msg = RSTRING_PTR(message);
182
205
  log_out2file("INFO", msg);
@@ -194,7 +217,7 @@ VALUE logger_info(VALUE self, VALUE message)
194
217
  *
195
218
  * @return [nil]
196
219
  */
197
- VALUE logger_verbose(VALUE self, VALUE message, VALUE level)
220
+ static VALUE logger_verbose(VALUE self, VALUE message, VALUE level)
198
221
  {
199
222
  char *msg = RSTRING_PTR(message);
200
223
  int vrb = FIX2INT(level);
@@ -214,6 +237,11 @@ VALUE logger_verbose(VALUE self, VALUE message, VALUE level)
214
237
  return Qnil;
215
238
  }
216
239
 
240
+ static VALUE logger_debug(VALUE self, VALUE message)
241
+ {
242
+ return logger_verbose(self, message, INT2FIX(3));
243
+ }
244
+
217
245
  /* initializes Syndi::Logger in Ruby */
218
246
  void init_syndi_logger()
219
247
  {
@@ -222,7 +250,9 @@ void init_syndi_logger()
222
250
  rb_define_method(cLogger, "fatal", logger_fatal, 1);
223
251
  rb_define_method(cLogger, "error", logger_error, -1);
224
252
  rb_define_method(cLogger, "verbose", logger_verbose, 2);
253
+ rb_define_method(cLogger, "debug", logger_debug, 1);
225
254
  rb_define_method(cLogger, "warn", logger_warn, 1);
255
+ rb_define_method(cLogger, "deprecate", logger_deprecate, 1);
226
256
  rb_define_method(cLogger, "info", logger_info, 1);
227
257
  }
228
258
 
@@ -33,13 +33,15 @@ extern VALUE cLogger;
33
33
  void init_syndi_logger();
34
34
 
35
35
  /* Ruby-accessible methods */
36
- VALUE logger_init(VALUE self);
37
-
38
- VALUE logger_fatal(VALUE self, VALUE message);
39
- VALUE logger_error(int argc, VALUE *argv, VALUE message);
40
- VALUE logger_verbose(VALUE self, VALUE message, VALUE level);
41
- VALUE logger_warning(VALUE self, VALUE message);
42
- VALUE logger_info(VALUE self, VALUE message);
36
+ static VALUE logger_init(VALUE self);
37
+
38
+ static VALUE logger_fatal(VALUE self, VALUE message);
39
+ static VALUE logger_error(int argc, VALUE *argv, VALUE message);
40
+ static VALUE logger_verbose(VALUE self, VALUE message, VALUE level);
41
+ static VALUE logger_warning(VALUE self, VALUE message);
42
+ static VALUE logger_debug(VALUE self, VALUE message);
43
+ static VALUE logger_deprecate(VALUE self, VALUE message);
44
+ static VALUE logger_info(VALUE self, VALUE message);
43
45
 
44
46
  /* internal functions */
45
47
  static void log_out2scrn(int type, const char *message, int level);
data/lib/csyndi.so CHANGED
Binary file
data/lib/syndi.rb CHANGED
@@ -5,6 +5,8 @@ require 'syndi/rubyext/string'
5
5
  require 'syndi/version'
6
6
  require 'fileutils'
7
7
 
8
+ require 'term/ansicolor'
9
+
8
10
  module Syndi
9
11
  extend self
10
12
 
@@ -38,17 +40,14 @@ module Syndi
38
40
  end
39
41
  end
40
42
 
41
- # This fixes coloring issues on Windows--or at least, the ones with which we
42
- # need be concerned.
43
- def windows_colored
44
- colors = [:black, :red, :green, :yellow, :blue, :magenta, :cyan, :white]
45
- extras = [:clear, :bold, :underline, :reversed]
46
-
47
- colors.each do |col|
48
- String.send(:define_method, col, proc { self })
49
- end
50
- extras.each do |extr|
51
- String.send(:define_method, extr, proc { self })
43
+ # Install terminal colors.
44
+ def colorize
45
+ if windows?
46
+ Term::ANSIColor.attributes.each do |name|
47
+ String.send :define_method, name, proc { self }
48
+ end
49
+ else
50
+ String.send :include, Term::ANSIColor
52
51
  end
53
52
  end
54
53
 
@@ -84,6 +83,11 @@ module Syndi
84
83
  @logger ||= Syndi::Logger.new
85
84
  end
86
85
 
86
+ # Make Celluloid logging consistent with Syndi logging.
87
+ def celluloid_log
88
+ Celluloid.logger = self.log
89
+ end
90
+
87
91
  # Central event system access.
88
92
  #
89
93
  # @return [Syndi::Events]
@@ -125,13 +129,9 @@ module Syndi
125
129
 
126
130
  end
127
131
 
128
- if Syndi.windows?
129
- Syndi.windows_colored
130
- else
131
- require 'colored'
132
- end
133
-
134
132
  require 'csyndi'
135
133
  %w[events actress config bot].each { |lib| require "syndi/#{lib}" }
136
134
 
135
+ Syndi.colorize
136
+
137
137
  # vim: set ts=4 sts=2 sw=2 et:
data/lib/syndi/cli.rb ADDED
@@ -0,0 +1,22 @@
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 'thor'
5
+
6
+ require 'syndi/config/generator'
7
+
8
+ module Syndi
9
+
10
+ # The central command-line interface class which underlies synditool.
11
+ class CLI
12
+
13
+ desc 'genconf', 'Start the interactive configuration generator.'
14
+ def confgen
15
+ Syndi::Config::Generator.start
16
+ end
17
+
18
+ end # class CLI
19
+
20
+ end # module Syndi
21
+
22
+ # vim: set ts=4 sts=2 sw=2 et:
@@ -0,0 +1,15 @@
1
+ if RUBY_VERSION < '2.0.0'
2
+ desc = defined?(RUBY_DESCRIPTION) ? RUBY_DESCRIPTION : "ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE})"
3
+
4
+ abort <<-message
5
+
6
+ Syndi requires Ruby 2.0.0+.
7
+
8
+ You're running
9
+ #{desc}
10
+
11
+ Please upgrade Ruby to proceed. For information on this, see the Syndi Handbook:
12
+ http://syndibot.com/handbook/
13
+
14
+ message
15
+ end
@@ -5,6 +5,18 @@ class String
5
5
  alias_method :dc, :downcase
6
6
  alias_method :uc!, :upcase!
7
7
  alias_method :dc!, :downcase!
8
+
9
+ # Somewhat imperfect camelization (from snake-case strings).
10
+ def camelize
11
+ if self !~ /_/
12
+ capitalize
13
+ else
14
+ words = split /_/
15
+ words.map! { |word| word.capitalize }
16
+ words.join
17
+ end
18
+ end
19
+
8
20
  end
9
21
 
10
22
  # vim: set ts=4 sts=2 sw=2 et:
data/lib/syndi/version.rb CHANGED
@@ -6,21 +6,16 @@ module Syndi
6
6
  # Standard version string.
7
7
  #
8
8
  # We use semantic versioning: +MAJOR.MINOR.PATCH.PRE.PRENUM+
9
- VERSION = '0.1.1'.freeze
9
+ VERSION = '0.1.2'.freeze
10
10
 
11
11
  # Standard version plus the codename (assigned to each minor release).
12
12
  #
13
13
  # i.e., +VERSION-CODENAME+
14
14
  FULLVERSION = "#{VERSION}-phoenix".freeze
15
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
16
+ # @return [Boolean] Whether this is a prerelease copy.
17
+ def self.prerelease?
18
+ (VERSION =~ /alpha|beta|pre/).nil? ? false : true
24
19
  end
25
20
 
26
21
  # @return [Boolean] Whether this is a release candidate copy.
@@ -30,7 +25,7 @@ module Syndi
30
25
 
31
26
  # @return [Boolean] Whether this is an edge (i.e. testing, development, unstable) copy.
32
27
  def self.edge?
33
- alpha? || beta? || rc?
28
+ prerelease? || rc? || VERSION < '1'
34
29
  end
35
30
 
36
31
  end
data/spec/helper.rb CHANGED
@@ -16,6 +16,7 @@ require 'syndi'
16
16
  $temp_dir = Dir.mktmpdir
17
17
  Syndi.dir = $temp_dir
18
18
  $VERBOSITY = -1
19
+ Syndi.celluloid_log
19
20
 
20
21
  module Helper
21
22
 
@@ -27,6 +28,7 @@ RSpec.configure do |conf|
27
28
  conf.after(:all) do
28
29
  Dir.chdir __dir__
29
30
  FileUtils.remove_entry $temp_dir
31
+ Syndi.dir = __dir__
30
32
  end
31
33
 
32
34
  conf.expect_with :rspec do |c|
@@ -0,0 +1,4 @@
1
+ [2013-00-09 04:00:40 -0700] [DEBUG] Terminating 4 actors...
2
+ [2013-00-09 04:00:40 -0700] [DEBUG] Shutdown completed cleanly
3
+ [2013-03-09 04:03:12 -0700] [DEBUG] Terminating 4 actors...
4
+ [2013-03-09 04:03:12 -0700] [DEBUG] Shutdown completed cleanly
@@ -0,0 +1,115 @@
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 'fileutils'
5
+ require 'tmpdir'
6
+ require 'psych'
7
+
8
+ desc 'Task for release automation.'
9
+ task :release, [:version] => [:compile, :spec] do |t, args|
10
+ version = args[:version]
11
+
12
+ ## Adjust the version numbers.
13
+ data = ''
14
+
15
+ # lib/syndi/version.rb
16
+ File.open(File.join(__dir__, '..', 'lib', 'syndi', 'version.rb')) { |f| data = f.read }
17
+ data.sub! /VERSION = '(.+?)'\.freeze/, "VERSION = '#{version}'.freeze"
18
+ File.open(File.join(__dir__, '..', 'lib', 'syndi', 'version.rb'), 'w') { |f| f.write data }
19
+
20
+ # README.md
21
+ File.open(File.join(__dir__, '..', 'README.md')) { |f| data = f.read }
22
+ data.sub! /\| \*\*Version:\*\* \| (.+?)\s"([\w\s]+)"\s+\|/ do |string|
23
+ codename = $2
24
+ new = "#{version} \"#{codename}\"".ljust 42
25
+ "| **Version:** | #{new} |"
26
+ end
27
+ File.open(File.join(__dir__, '..', 'README.md'), 'w') { |f| f.write data }
28
+
29
+ # CHANGELOG.md
30
+ File.open(File.join(__dir__, '..', 'CHANGELOG.md')) { |f| data = f.read }
31
+ data.sub! /unreleased\n----------/ do |string|
32
+ line = '-'
33
+ version.length.times { line << '-' }
34
+ "v#{version}\n#{line}"
35
+ end
36
+ File.open(File.join(__dir__, '..', 'CHANGELOG.md'), 'w') { |f| f.write data }
37
+
38
+ # with that mess out of the way, let's do the git stuff
39
+ Dir.chdir File.join(__dir__, '..')
40
+
41
+ `git commit -a -m "Syndi v#{version}"`
42
+ `git tag -a v#{version} -m "Syndi v#{version}"`
43
+ `git push`
44
+ `git push --tags`
45
+
46
+ # now package the gem
47
+ perform :clean
48
+ FileUtils.remove_entry File.join(__dir__, '..', 'pkg')
49
+
50
+ perform :gem # first the Ruby gem
51
+
52
+ # then the Windows gem
53
+ perform :clean
54
+ `rake cross compile native gem`
55
+
56
+ ### NOTE: this is just for me because you can't push gems from prerelease
57
+ ### rubygems, so remove this after 2.0 is released as stable
58
+ ### --Autumn
59
+ `rbenv global system`
60
+
61
+ # push the gems
62
+ Dir['pkg/syndi-*.gem'].each do |gem|
63
+ `gem push #{File.expand_path gem}`
64
+ end
65
+
66
+ # see note above
67
+ `rbenv global 2.0.0-rc2`
68
+
69
+ # clean up
70
+ perform :clean
71
+ FileUtils.remove_entry File.join(__dir__, '..', 'pkg')
72
+
73
+ ## now we need to make a blog post ##
74
+ temp = Dir.mktmpdir
75
+ Dir.chdir temp
76
+
77
+ `git clone git@github.com:syndibot/syndibot.github.com.git blog`
78
+ Dir.chdir 'blog'
79
+
80
+ data = ''
81
+ File.open('_config.yml') { |f| data = f.read }
82
+ info = Psych.load data
83
+ info['versions'].unshift version
84
+
85
+ if version < '1'
86
+ info['latest'] = version
87
+ info['latest_pre'] = version
88
+ else
89
+ if version =~ /alpha|beta|pre|rc/
90
+ info['latest_pre'] = version
91
+ else
92
+ info['latest'] = version
93
+ end
94
+ end
95
+
96
+ File.open('_config.yml', 'w') { |f| f.write info.to_yaml }
97
+ `./manage post --category=releases --title="v#{version} released"`
98
+
99
+ Dir.chdir __dir__
100
+ FileUtils.remove_entry temp
101
+
102
+ puts <<-message
103
+
104
+ Release finished! Syndi #{version} is now available for download.
105
+
106
+ If there was need for a codename change, you ought to have already done that.
107
+
108
+ In any event, you should probably now notify the mailing list with the link above. (:
109
+ https://groups.google.com/group/syndibot
110
+
111
+ message
112
+
113
+ end
114
+
115
+ # vim: set ts=4 sts=2 sw=2 et:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syndi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Autumn Perrault
@@ -9,132 +9,160 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-08 00:00:00.000000000 Z
12
+ date: 2013-02-09 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: archive-tar-minitar
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0.5'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - '>='
26
+ - !ruby/object:Gem::Version
27
+ version: '0.5'
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: bundler
16
30
  requirement: !ruby/object:Gem::Requirement
17
31
  requirements:
18
- - - "~>"
32
+ - - '>='
19
33
  - !ruby/object:Gem::Version
20
34
  version: '1.2'
21
35
  type: :runtime
22
36
  prerelease: false
23
37
  version_requirements: !ruby/object:Gem::Requirement
24
38
  requirements:
25
- - - "~>"
39
+ - - '>='
26
40
  - !ruby/object:Gem::Version
27
41
  version: '1.2'
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: celluloid
30
44
  requirement: !ruby/object:Gem::Requirement
31
45
  requirements:
32
- - - "~>"
46
+ - - ~>
33
47
  - !ruby/object:Gem::Version
34
48
  version: '0.12'
35
49
  type: :runtime
36
50
  prerelease: false
37
51
  version_requirements: !ruby/object:Gem::Requirement
38
52
  requirements:
39
- - - "~>"
53
+ - - ~>
40
54
  - !ruby/object:Gem::Version
41
55
  version: '0.12'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: celluloid-io
44
58
  requirement: !ruby/object:Gem::Requirement
45
59
  requirements:
46
- - - "~>"
60
+ - - ~>
47
61
  - !ruby/object:Gem::Version
48
62
  version: '0.12'
49
63
  type: :runtime
50
64
  prerelease: false
51
65
  version_requirements: !ruby/object:Gem::Requirement
52
66
  requirements:
53
- - - "~>"
67
+ - - ~>
54
68
  - !ruby/object:Gem::Version
55
69
  version: '0.12'
56
70
  - !ruby/object:Gem::Dependency
57
- name: colored
71
+ name: term-ansicolor
58
72
  requirement: !ruby/object:Gem::Requirement
59
73
  requirements:
60
- - - "~>"
74
+ - - '>='
61
75
  - !ruby/object:Gem::Version
62
- version: '1.2'
76
+ version: '1.0'
63
77
  type: :runtime
64
78
  prerelease: false
65
79
  version_requirements: !ruby/object:Gem::Requirement
66
80
  requirements:
67
- - - "~>"
81
+ - - '>='
68
82
  - !ruby/object:Gem::Version
69
- version: '1.2'
83
+ version: '1.0'
70
84
  - !ruby/object:Gem::Dependency
71
85
  name: redis
72
86
  requirement: !ruby/object:Gem::Requirement
73
87
  requirements:
74
- - - "~>"
88
+ - - ~>
75
89
  - !ruby/object:Gem::Version
76
90
  version: '3.0'
77
91
  type: :runtime
78
92
  prerelease: false
79
93
  version_requirements: !ruby/object:Gem::Requirement
80
94
  requirements:
81
- - - "~>"
95
+ - - ~>
82
96
  - !ruby/object:Gem::Version
83
97
  version: '3.0'
84
98
  - !ruby/object:Gem::Dependency
85
99
  name: slop
86
100
  requirement: !ruby/object:Gem::Requirement
87
101
  requirements:
88
- - - "~>"
102
+ - - ~>
89
103
  - !ruby/object:Gem::Version
90
104
  version: '3.4'
91
105
  type: :runtime
92
106
  prerelease: false
93
107
  version_requirements: !ruby/object:Gem::Requirement
94
108
  requirements:
95
- - - "~>"
109
+ - - ~>
96
110
  - !ruby/object:Gem::Version
97
111
  version: '3.4'
112
+ - !ruby/object:Gem::Dependency
113
+ name: thor
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: '0.17'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '0.17'
98
126
  - !ruby/object:Gem::Dependency
99
127
  name: rake
100
128
  requirement: !ruby/object:Gem::Requirement
101
129
  requirements:
102
- - - ">="
130
+ - - '>='
103
131
  - !ruby/object:Gem::Version
104
132
  version: '0'
105
133
  type: :development
106
134
  prerelease: false
107
135
  version_requirements: !ruby/object:Gem::Requirement
108
136
  requirements:
109
- - - ">="
137
+ - - '>='
110
138
  - !ruby/object:Gem::Version
111
139
  version: '0'
112
140
  - !ruby/object:Gem::Dependency
113
141
  name: rake-compiler
114
142
  requirement: !ruby/object:Gem::Requirement
115
143
  requirements:
116
- - - ">="
144
+ - - '>='
117
145
  - !ruby/object:Gem::Version
118
146
  version: '0'
119
147
  type: :development
120
148
  prerelease: false
121
149
  version_requirements: !ruby/object:Gem::Requirement
122
150
  requirements:
123
- - - ">="
151
+ - - '>='
124
152
  - !ruby/object:Gem::Version
125
153
  version: '0'
126
154
  - !ruby/object:Gem::Dependency
127
155
  name: rspec
128
156
  requirement: !ruby/object:Gem::Requirement
129
157
  requirements:
130
- - - ">="
158
+ - - '>='
131
159
  - !ruby/object:Gem::Version
132
160
  version: '0'
133
161
  type: :development
134
162
  prerelease: false
135
163
  version_requirements: !ruby/object:Gem::Requirement
136
164
  requirements:
137
- - - ">="
165
+ - - '>='
138
166
  - !ruby/object:Gem::Version
139
167
  version: '0'
140
168
  description: |2
@@ -149,11 +177,14 @@ extra_rdoc_files: []
149
177
  files:
150
178
  - bin/syndi-conf
151
179
  - bin/syndi
180
+ - bin/synditool
152
181
  - lib/csyndi.so
153
182
  - lib/syndi/dsl/irc.rb
154
183
  - lib/syndi/dsl/base.rb
184
+ - lib/syndi/ruby_version_check.rb
155
185
  - lib/syndi/verbosity.rb
156
186
  - lib/syndi/api.rb
187
+ - lib/syndi/cli.rb
157
188
  - lib/syndi/rubyext/string.rb
158
189
  - lib/syndi/irc.rb
159
190
  - lib/syndi/api/object.rb
@@ -197,6 +228,7 @@ files:
197
228
  - include/syndi/events.h
198
229
  - include/syndi.h
199
230
  - tasks/spec.rake
231
+ - tasks/release.rake
200
232
  - tasks/compile.rake
201
233
  - tasks/package.rake
202
234
  - tasks/install.rake
@@ -206,38 +238,40 @@ files:
206
238
  - CHANGELOG.md
207
239
  - Gemfile
208
240
  - Rakefile
209
- - ".yardopts"
241
+ - .yardopts
210
242
  - conf/example.yml
211
243
  - spec/helper.rb
212
244
  - spec/syndi/events_spec.rb
245
+ - spec/logs/20130209.log
213
246
  homepage: http://syndibot.com
214
247
  licenses:
215
248
  - FreeBSD
216
249
  metadata: {}
217
250
  post_install_message: "Thanks for choosing Syndi to serve your chat bot needs! (:\n\nWe
218
251
  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:
252
+ you should typically now run `synditool genconf` to produce a configuration file.\n\r\nNOTICE:
220
253
  You have installed the binary distribution of this gem."
221
254
  rdoc_options: []
222
255
  require_paths:
223
256
  - lib
224
257
  required_ruby_version: !ruby/object:Gem::Requirement
225
258
  requirements:
226
- - - ">="
259
+ - - '>='
227
260
  - !ruby/object:Gem::Version
228
261
  version: '0'
229
262
  required_rubygems_version: !ruby/object:Gem::Requirement
230
263
  requirements:
231
- - - ">="
264
+ - - '>='
232
265
  - !ruby/object:Gem::Version
233
266
  version: '0'
234
267
  requirements: []
235
268
  rubyforge_project:
236
- rubygems_version: 2.0.0.rc.1
269
+ rubygems_version: 2.0.0.rc.2
237
270
  signing_key:
238
271
  specification_version: 4
239
272
  summary: A modern, elegant, extensible multi-protocol bot.
240
273
  test_files:
241
274
  - spec/helper.rb
242
275
  - spec/syndi/events_spec.rb
276
+ - spec/logs/20130209.log
243
277
  - Rakefile