chatroid 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/chatroid.gemspec CHANGED
@@ -20,5 +20,6 @@ Gem::Specification.new do |gem|
20
20
  gem.add_dependency "xmpp4r"
21
21
  gem.add_dependency "avalon"
22
22
  gem.add_dependency "zircon"
23
+ gem.add_dependency "tinder"
23
24
  gem.add_development_dependency "rspec"
24
25
  end
@@ -0,0 +1,11 @@
1
+ require "chatroid"
2
+
3
+ Chatroid.new do
4
+ set :service, "Campfire"
5
+ set :subdomain, "example"
6
+ set :token, "..."
7
+ set :room_name, "Bots" # or `set :room_id, 12345`
8
+ on_message do |message|
9
+ speak "Hi #{message.user.name}" if message.user.name != user_info.name
10
+ end
11
+ end.run!
@@ -1,3 +1,4 @@
1
+ require "chatroid/adapter/campfire"
1
2
  require "chatroid/adapter/irc"
2
3
  require "chatroid/adapter/twitter"
3
4
  require "chatroid/adapter/xmpp"
@@ -0,0 +1,60 @@
1
+ require "tinder"
2
+
3
+ class Chatroid
4
+ module Adapter
5
+ module Campfire
6
+ private
7
+
8
+ def connect
9
+ observe
10
+ end
11
+
12
+ def client
13
+ @client ||= Tinder::Campfire.new(
14
+ config[:subdomain],
15
+ :token => config[:token]
16
+ )
17
+ end
18
+
19
+ def room
20
+ @room ||=
21
+ if config[:room_id]
22
+ client.find_room_by_id(config[:room_id])
23
+ elsif config[:room_name]
24
+ client.find_room_by_name(config[:room_name])
25
+ else
26
+ raise ArgumentError.new("Missing required config: room_id or room_name")
27
+ end
28
+ end
29
+
30
+ def observe
31
+ room.listen do |message|
32
+ case message.type
33
+ when 'TextMessage', 'PasteMessage', 'SoundMessage'
34
+ trigger_message(message)
35
+ end
36
+ end
37
+ end
38
+
39
+ def speak(message)
40
+ room.speak(message)
41
+ end
42
+
43
+ def paste(message)
44
+ room.paste(message)
45
+ end
46
+
47
+ def play(sound)
48
+ room.play(sound)
49
+ end
50
+
51
+ def tweet(url)
52
+ room.tweet(url)
53
+ end
54
+
55
+ def user_info
56
+ @info ||= client.me
57
+ end
58
+ end
59
+ end
60
+ end
@@ -1,3 +1,3 @@
1
1
  class Chatroid
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -0,0 +1,55 @@
1
+ require "spec_helper"
2
+
3
+ describe Chatroid::Adapter::Campfire do
4
+ before do
5
+ Tinder::Campfire.stub(:new).and_return(campfire)
6
+ campfire.stub(:find_room_by_id).and_return(room)
7
+ campfire.stub(:find_room_by_name).and_return(room)
8
+ end
9
+
10
+ let(:chatroid) do
11
+ Chatroid.new do
12
+ extend Chatroid::Adapter::Campfire
13
+ set :subdomainm, 'example'
14
+ set :token, 'token'
15
+ set :room_id, 'room_id'
16
+ end
17
+ end
18
+
19
+ let(:campfire) do
20
+ mock.as_null_object
21
+ end
22
+
23
+ let(:room) do
24
+ mock.as_null_object
25
+ end
26
+
27
+ describe "#speak" do
28
+ it "calls Tinder::Room#speak with body" do
29
+ room.should_receive(:speak).with("body")
30
+ chatroid.send(:speak, "body")
31
+ end
32
+ end
33
+
34
+ describe "#paste" do
35
+ it "calls Tinder::Room#paste with body" do
36
+ room.should_receive(:paste).with("body")
37
+ chatroid.send(:paste, "body")
38
+ end
39
+ end
40
+
41
+ describe "#play" do
42
+ it "calls Tinder::Room#play with sound" do
43
+ room.should_receive(:play).with("sound")
44
+ chatroid.send(:play, "sound")
45
+ end
46
+ end
47
+
48
+ describe "#tweet" do
49
+ it "calls Tinder::Room#tweet with url" do
50
+ url = "http://example.com/tweet"
51
+ room.should_receive(:tweet).with(url)
52
+ chatroid.send(:tweet, url)
53
+ end
54
+ end
55
+ end
metadata CHANGED
@@ -1,95 +1,137 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: chatroid
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 1
10
+ version: 0.1.1
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Ryo NAKAMURA
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-10-01 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-10-19 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: twitter-stream
16
- requirement: &70298935184040 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
22
32
  type: :runtime
23
- prerelease: false
24
- version_requirements: *70298935184040
25
- - !ruby/object:Gem::Dependency
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
26
35
  name: twitter_oauth
27
- requirement: &70298935183240 !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
28
38
  none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
33
46
  type: :runtime
34
- prerelease: false
35
- version_requirements: *70298935183240
36
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
37
49
  name: xmpp4r
38
- requirement: &70298935208540 !ruby/object:Gem::Requirement
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
39
52
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 3
57
+ segments:
58
+ - 0
59
+ version: "0"
44
60
  type: :runtime
45
- prerelease: false
46
- version_requirements: *70298935208540
47
- - !ruby/object:Gem::Dependency
61
+ version_requirements: *id003
62
+ - !ruby/object:Gem::Dependency
48
63
  name: avalon
49
- requirement: &70298935207480 !ruby/object:Gem::Requirement
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
50
66
  none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ hash: 3
71
+ segments:
72
+ - 0
73
+ version: "0"
55
74
  type: :runtime
56
- prerelease: false
57
- version_requirements: *70298935207480
58
- - !ruby/object:Gem::Dependency
75
+ version_requirements: *id004
76
+ - !ruby/object:Gem::Dependency
59
77
  name: zircon
60
- requirement: &70298935206580 !ruby/object:Gem::Requirement
78
+ prerelease: false
79
+ requirement: &id005 !ruby/object:Gem::Requirement
61
80
  none: false
62
- requirements:
63
- - - ! '>='
64
- - !ruby/object:Gem::Version
65
- version: '0'
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ hash: 3
85
+ segments:
86
+ - 0
87
+ version: "0"
66
88
  type: :runtime
89
+ version_requirements: *id005
90
+ - !ruby/object:Gem::Dependency
91
+ name: tinder
67
92
  prerelease: false
68
- version_requirements: *70298935206580
69
- - !ruby/object:Gem::Dependency
93
+ requirement: &id006 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ hash: 3
99
+ segments:
100
+ - 0
101
+ version: "0"
102
+ type: :runtime
103
+ version_requirements: *id006
104
+ - !ruby/object:Gem::Dependency
70
105
  name: rspec
71
- requirement: &70298935205840 !ruby/object:Gem::Requirement
106
+ prerelease: false
107
+ requirement: &id007 !ruby/object:Gem::Requirement
72
108
  none: false
73
- requirements:
74
- - - ! '>='
75
- - !ruby/object:Gem::Version
76
- version: '0'
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ hash: 3
113
+ segments:
114
+ - 0
115
+ version: "0"
77
116
  type: :development
78
- prerelease: false
79
- version_requirements: *70298935205840
117
+ version_requirements: *id007
80
118
  description: Chatroid is a gem for quickly creating chatterbot in Ruby
81
- email:
119
+ email:
82
120
  - r7kamura@gmail.com
83
121
  executables: []
122
+
84
123
  extensions: []
124
+
85
125
  extra_rdoc_files: []
86
- files:
126
+
127
+ files:
87
128
  - .gitignore
88
129
  - Gemfile
89
130
  - LICENSE
90
131
  - README.md
91
132
  - Rakefile
92
133
  - chatroid.gemspec
134
+ - examples/campfire.rb
93
135
  - examples/irc.rb
94
136
  - examples/twitter_public_stream.rb
95
137
  - examples/twitter_timer.rb
@@ -97,6 +139,7 @@ files:
97
139
  - examples/xmpp.rb
98
140
  - lib/chatroid.rb
99
141
  - lib/chatroid/adapter.rb
142
+ - lib/chatroid/adapter/campfire.rb
100
143
  - lib/chatroid/adapter/irc.rb
101
144
  - lib/chatroid/adapter/twitter.rb
102
145
  - lib/chatroid/adapter/twitter/event.rb
@@ -105,6 +148,7 @@ files:
105
148
  - lib/chatroid/timer.rb
106
149
  - lib/chatroid/timer/event.rb
107
150
  - lib/chatroid/version.rb
151
+ - spec/chatroid/adapter/campfire_spec.rb
108
152
  - spec/chatroid/adapter/irc_spec.rb
109
153
  - spec/chatroid/adapter/twitter/event_spec.rb
110
154
  - spec/chatroid/adapter/twitter_spec.rb
@@ -115,29 +159,39 @@ files:
115
159
  - spec/spec_helper.rb
116
160
  homepage: https://github.com/r7kamura/chatroid
117
161
  licenses: []
162
+
118
163
  post_install_message:
119
164
  rdoc_options: []
120
- require_paths:
165
+
166
+ require_paths:
121
167
  - lib
122
- required_ruby_version: !ruby/object:Gem::Requirement
168
+ required_ruby_version: !ruby/object:Gem::Requirement
123
169
  none: false
124
- requirements:
125
- - - ! '>='
126
- - !ruby/object:Gem::Version
127
- version: '0'
128
- required_rubygems_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ hash: 3
174
+ segments:
175
+ - 0
176
+ version: "0"
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
178
  none: false
130
- requirements:
131
- - - ! '>='
132
- - !ruby/object:Gem::Version
133
- version: '0'
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ hash: 3
183
+ segments:
184
+ - 0
185
+ version: "0"
134
186
  requirements: []
187
+
135
188
  rubyforge_project:
136
- rubygems_version: 1.8.15
189
+ rubygems_version: 1.8.24
137
190
  signing_key:
138
191
  specification_version: 3
139
192
  summary: Chatterbot builder
140
- test_files:
193
+ test_files:
194
+ - spec/chatroid/adapter/campfire_spec.rb
141
195
  - spec/chatroid/adapter/irc_spec.rb
142
196
  - spec/chatroid/adapter/twitter/event_spec.rb
143
197
  - spec/chatroid/adapter/twitter_spec.rb
@@ -146,4 +200,3 @@ test_files:
146
200
  - spec/chatroid/callback_spec.rb
147
201
  - spec/chatroid_spec.rb
148
202
  - spec/spec_helper.rb
149
- has_rdoc: