chatroid 0.1.0 → 0.1.1

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.
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: