chatroid 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: 5490844628c9620f4f703dbe657443b7e148fd65
4
- data.tar.gz: 0fe04d7f425547c00fa32fbdee4cdf3427dd6c2d
5
- !binary "U0hBNTEy":
6
- metadata.gz: ffe07c85555ec0abf7b98e5dd474a51bcf986bd1e784c47be638dbdd11814975bc6716df5be29517f7831f95ab93fd0a70b45bc3377e620e6b3f59f442447732
7
- data.tar.gz: 352715111451a95d8243d83af564dfcfe631e8b0ff599ecb6c65b7a84f272c68475f63fd64a6fb3320fa32b42c054dd55b6e65c64a25367a9f8c51d1719c8e35
2
+ SHA1:
3
+ metadata.gz: ed33cf56b42c7384dc3d1480c838016f87f7c3a7
4
+ data.tar.gz: 7d3cf465882d9f195f4045a8c57246dfad5c77a3
5
+ SHA512:
6
+ metadata.gz: 19e8cb14ebbd811986bf49af560b5c1a8f8bebd0a748d2da212f32aebfe02d5f0a8dedda3d46c55ad6928a7fd72b86411266f9015e065c1c8b64504cc3fe98a5
7
+ data.tar.gz: 3b3325761dda3369916dddebf43d81cf39b4f647f843d709775e3b49c642b4518732064a55a13554538f57344abc09eb36335425145b61979d9a59bfc33bdaf5
data/README.md CHANGED
@@ -4,13 +4,16 @@ Chatroid is a gem for quickly creating chatterbot in Ruby.
4
4
  ## Installation
5
5
 
6
6
  ```
7
- $ gem "chatroid"
7
+ $ gem install chatroid
8
8
  ```
9
9
 
10
+ ## Requirements
11
+ * Ruby >= 1.9
12
+
10
13
  ## Supported
11
14
  * IRC
12
15
  * Twitter
13
- * [Campfire](http://campfirenow.com/)
16
+ * Campfire
14
17
  * xmpp (Google Talk, HipChat, ...)
15
18
 
16
19
  ## Example
@@ -21,10 +24,10 @@ require "chatroid"
21
24
 
22
25
  Chatroid.new do
23
26
  set :service, "Twitter"
24
- set :consumer_key, "..."
25
- set :consumer_secret, "..."
26
- set :access_key, "..."
27
- set :access_secret, "..."
27
+ set :consumer_key, ENV["CONSUMER_KEY"]
28
+ set :consumer_secret, ENV["CONSUMER_SECRET"]
29
+ set :access_key, ENV["ACCESS_KEY"]
30
+ set :access_secret, ENV["ACCESS_SECRET"]
28
31
 
29
32
  on_tweet do |event|
30
33
  if event["text"] =~ /chatroid/
@@ -43,6 +46,11 @@ end.run!
43
46
  ```
44
47
 
45
48
  ## Deploy to Heroku
49
+ 1. Create Procfile, Gemfile, and bot.rb
50
+ 2. Execute `bundle install`
51
+ 3. Create app on Heroku
52
+ 4. Configure environment variables
53
+ 5. Deploy app
46
54
 
47
55
  ```
48
56
  $ gem install heroku
@@ -53,28 +61,8 @@ $ cd !$
53
61
  $ echo "bot: bundle exec ruby bot.rb" >> Procfile
54
62
  $ echo "source :rubygems" >> Gemfile
55
63
  $ echo "gem 'chatroid'" >> Gemfile
56
- $ bundle install
57
64
  $ vim bot.rb
58
-
59
- require "chatroid"
60
-
61
- Chatroid.new do
62
- set :service, "Twitter"
63
- set :filter, "chatroid,Chatroid"
64
- set :consumer_key, ENV["CONSUMER_KEY"]
65
- set :consumer_secret, ENV["CONSUMER_SECRET"]
66
- set :access_key, ENV["ACCESS_KEY"]
67
- set :access_secret, ENV["ACCESS_SECRET"]
68
-
69
- on_tweet do |event|
70
- favorite event
71
- end
72
-
73
- on_reply do |event|
74
- favorite event
75
- end
76
- end.run!
77
-
65
+ $ bundle install
78
66
  $ heroku create your_favorite_bot_name --stack cedar
79
67
  $ heroku config:add CONSUMER_KEY=... CONSUMER_SECRET=... ACCESS_KEY=... ACCESS_SECRET=...
80
68
  $ git push heroku master
@@ -1,5 +1,5 @@
1
- # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/chatroid/version', __FILE__)
1
+ # coding: utf-8
2
+ require File.expand_path("../lib/chatroid/version", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ["Ryo NAKAMURA"]
@@ -14,6 +14,7 @@ Gem::Specification.new do |gem|
14
14
  gem.name = "chatroid"
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Chatroid::VERSION
17
+ gem.license = "MIT"
17
18
 
18
19
  gem.add_dependency "twitter-stream"
19
20
  gem.add_dependency "twitter_oauth"
@@ -29,6 +29,8 @@ class Chatroid
29
29
  "reply"
30
30
  elsif tweet?
31
31
  "tweet"
32
+ elsif favorite?
33
+ "favorite_other"
32
34
  else
33
35
  "unknown"
34
36
  end
@@ -51,6 +53,10 @@ class Chatroid
51
53
  def tweet?
52
54
  @params["text"]
53
55
  end
56
+
57
+ def favorite?
58
+ @params["event"] == "favorite"
59
+ end
54
60
  end
55
61
  end
56
62
  end
@@ -2,6 +2,16 @@ require "avalon"
2
2
  require "xmpp4r"
3
3
  require "xmpp4r/muc/helper/simplemucclient"
4
4
  require "logger"
5
+ require "rexml/source"
6
+
7
+ # Support multybyte characters.
8
+ class REXML::IOSource
9
+ def read
10
+ @buffer << readline.force_encoding("utf-8")
11
+ rescue Exception, NameError
12
+ @source = nil
13
+ end
14
+ end
5
15
 
6
16
  class Chatroid
7
17
  module Adapter
@@ -5,7 +5,7 @@ class Chatroid
5
5
  # * on_message : store a given block as callback for "message"
6
6
  # * trigger_message : trigger callbacks for "message" with given args
7
7
  def method_missing(method_name, *args, &block)
8
- if method_name =~ /(list|on|trigger)_([a-z0-9]+)/
8
+ if method_name =~ /(list|on|trigger)_([a-z0-9_]+)/
9
9
  send($1, $2, *args, &block)
10
10
  else
11
11
  super
@@ -1,3 +1,3 @@
1
1
  class Chatroid
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -14,6 +14,10 @@ describe Chatroid::Adapter::Twitter::Event do
14
14
  1
15
15
  end
16
16
 
17
+ let (:other_id) do
18
+ 2
19
+ end
20
+
17
21
  context "when favorited" do
18
22
  let(:args) do
19
23
  { "event" => "favorite", "target" => { "id" => user_id } }
@@ -24,6 +28,16 @@ describe Chatroid::Adapter::Twitter::Event do
24
28
  end
25
29
  end
26
30
 
31
+ context "when user favorited other's tweet" do
32
+ let(:args) do
33
+ { "event" => "favorite", "target" => { "id" => other_id } }
34
+ end
35
+
36
+ it do
37
+ should == "favorite_other"
38
+ end
39
+ end
40
+
27
41
  context "when unfavorited" do
28
42
  let(:args) do
29
43
  { "event" => "unfavorite", "target" => { "id" => user_id } }
@@ -56,4 +56,14 @@ describe Chatroid::Callback do
56
56
  instance.trigger_xxx(args)
57
57
  end
58
58
  end
59
+
60
+ describe "#method_missing" do
61
+ it "should hundle under_score event like x_x" do
62
+ callback = proc {}
63
+ callback.should_receive(:call)
64
+ instance.on_x_x(&callback)
65
+ instance.send(:list, 'x_x').should_not be_empty
66
+ instance.trigger_x_x
67
+ end
68
+ end
59
69
  end
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chatroid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo NAKAMURA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-01-04 00:00:00.000000000 Z
11
+ date: 2013-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: twitter-stream
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: twitter_oauth
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: xmpp4r
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: avalon
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: zircon
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: tinder
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: Chatroid is a gem for quickly creating chatterbot in Ruby
@@ -115,7 +115,7 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
- - ".gitignore"
118
+ - .gitignore
119
119
  - Gemfile
120
120
  - LICENSE
121
121
  - README.md
@@ -148,7 +148,8 @@ files:
148
148
  - spec/chatroid_spec.rb
149
149
  - spec/spec_helper.rb
150
150
  homepage: https://github.com/r7kamura/chatroid
151
- licenses: []
151
+ licenses:
152
+ - MIT
152
153
  metadata: {}
153
154
  post_install_message:
154
155
  rdoc_options: []
@@ -156,17 +157,17 @@ require_paths:
156
157
  - lib
157
158
  required_ruby_version: !ruby/object:Gem::Requirement
158
159
  requirements:
159
- - - ">="
160
+ - - '>='
160
161
  - !ruby/object:Gem::Version
161
162
  version: '0'
162
163
  required_rubygems_version: !ruby/object:Gem::Requirement
163
164
  requirements:
164
- - - ">="
165
+ - - '>='
165
166
  - !ruby/object:Gem::Version
166
167
  version: '0'
167
168
  requirements: []
168
169
  rubyforge_project:
169
- rubygems_version: 2.0.0.preview3
170
+ rubygems_version: 2.0.0
170
171
  signing_key:
171
172
  specification_version: 4
172
173
  summary: Chatterbot builder
@@ -180,3 +181,4 @@ test_files:
180
181
  - spec/chatroid/callback_spec.rb
181
182
  - spec/chatroid_spec.rb
182
183
  - spec/spec_helper.rb
184
+ has_rdoc: