fabriq 0.1.0
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/Gemfile +16 -0
- data/Gemfile.lock +42 -0
- data/LICENSE.txt +20 -0
- data/README.md +7 -0
- data/Rakefile +42 -0
- data/TODO.md +1 -0
- data/VERSION +1 -0
- data/bin/fabriq +4 -0
- data/fabriq.gemspec +79 -0
- data/lib/fabriq.rb +43 -0
- data/lib/fabriq/adapter.rb +95 -0
- data/lib/fabriq/adapter/rype_adapter.rb +49 -0
- data/lib/fabriq/cli.rb +37 -0
- data/lib/fabriq/logging.rb +26 -0
- data/lib/fabriq/plugin_port.rb +60 -0
- data/lib/fabriq/skype.rb +36 -0
- data/lib/fabriq/skype/message.rb +27 -0
- data/lib/fabriq/skype/room.rb +30 -0
- data/lib/fabriq/skype_proxy.rb +83 -0
- data/spec/helper.rb +18 -0
- data/spec/lib/fabriq/adapter_spec.rb +153 -0
- data/spec/lib/fabriq/cli_spec.rb +43 -0
- data/spec/lib/fabriq/config_spec.rb +92 -0
- data/spec/lib/fabriq/logging_spec.rb +33 -0
- data/spec/lib/fabriq/plugin_port_spec.rb +106 -0
- data/spec/lib/fabriq/skype/message_spec.rb +49 -0
- data/spec/lib/fabriq/skype/room_spec.rb +67 -0
- data/spec/lib/fabriq/skype_proxy_spec.rb +167 -0
- data/spec/lib/fabriq/skype_spec.rb +71 -0
- data/spec/lib/fabriq_spec.rb +65 -0
- metadata +146 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
require_relative "../../helper"
|
2
|
+
require_relative "../../../lib/fabriq/skype"
|
3
|
+
|
4
|
+
describe Fabriq::Skype do
|
5
|
+
|
6
|
+
before do
|
7
|
+
@adapter = mock('Adapter')
|
8
|
+
Fabriq::Skype.adapter = @adapter
|
9
|
+
end
|
10
|
+
|
11
|
+
describe '#rooms' do
|
12
|
+
it "returns Fabriq::Adapter.rooms" do
|
13
|
+
@adapter.stubs(:rooms).returns( [ "r1", "r2" ] )
|
14
|
+
Fabriq::Skype.rooms.must_equal( ["r1", "r2"] )
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#room_by_id' do
|
19
|
+
it "returns the first matching room" do
|
20
|
+
room = stub('Room', :id => "room123")
|
21
|
+
@adapter.stubs(:rooms).returns([room])
|
22
|
+
Fabriq::Skype.room_by_id("room123").must_equal(room)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "returns nil on no match" do
|
26
|
+
@adapter.stubs(:rooms).returns([])
|
27
|
+
Fabriq::Skype.room_by_id("room123").must_be_nil
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#send_message' do
|
32
|
+
it "appends messages to the outgoing-message-collection of the proxy" do
|
33
|
+
message = mock('Message')
|
34
|
+
@adapter.expects(:enqueue_outgoing_message).with(message)
|
35
|
+
Fabriq::Skype.send_message(message)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '#listen_for_messages_to_self' do
|
40
|
+
before do
|
41
|
+
@callback = -> {}
|
42
|
+
@message = mock('Message')
|
43
|
+
@message.stubs(:private_session?).returns(false)
|
44
|
+
@message.stubs(:direct?).returns(false)
|
45
|
+
@adapter.stubs(:subscribe_to_incoming_messages).yields(@message)
|
46
|
+
end
|
47
|
+
|
48
|
+
it "subscribes to incoming messages" do
|
49
|
+
@adapter.expects(:subscribe_to_incoming_messages)
|
50
|
+
Fabriq::Skype.listen_for_messages_to_self
|
51
|
+
end
|
52
|
+
|
53
|
+
it "does not yield the message by default" do
|
54
|
+
@callback.expects(:call).never
|
55
|
+
Fabriq::Skype.listen_for_messages_to_self(&@callback)
|
56
|
+
end
|
57
|
+
|
58
|
+
it "yields the received message if it was delivered to a private session" do
|
59
|
+
@callback.expects(:call).with(@message)
|
60
|
+
@message.stubs(:private_session?).returns(true)
|
61
|
+
Fabriq::Skype.listen_for_messages_to_self(&@callback)
|
62
|
+
end
|
63
|
+
|
64
|
+
it "yields the received message if its a direct message" do
|
65
|
+
@callback.expects(:call).with(@message)
|
66
|
+
@message.stubs(:direct?).returns(true)
|
67
|
+
Fabriq::Skype.listen_for_messages_to_self(&@callback)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require_relative "../helper"
|
2
|
+
require_relative "../../lib/fabriq"
|
3
|
+
|
4
|
+
describe Fabriq do
|
5
|
+
|
6
|
+
describe '.root' do
|
7
|
+
it "returns an instance of Pathname" do
|
8
|
+
Fabriq.root.must_be_kind_of(Pathname)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "points to the current running root directory" do
|
12
|
+
Fabriq.root.to_s.must_equal(File.expand_path(File.join(File.dirname(__FILE__), "..", "..")))
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '.config' do
|
17
|
+
it "yields Fabriq::Config to the provided block" do
|
18
|
+
Fabriq.config { |config| config.must_equal(Fabriq::Config) }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '.boot' do
|
23
|
+
before do
|
24
|
+
Fabriq::Config.stubs(:load)
|
25
|
+
Fabriq::Adapter.stubs(:load)
|
26
|
+
Fabriq::Adapter.stubs(:run).yields
|
27
|
+
Fabriq.stubs(:load_environment)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "loads the Config module" do
|
31
|
+
Fabriq::Config.expects(:load)
|
32
|
+
Fabriq.boot
|
33
|
+
end
|
34
|
+
|
35
|
+
it "loads the Adapter module" do
|
36
|
+
Fabriq::Adapter.expects(:load)
|
37
|
+
Fabriq.boot
|
38
|
+
end
|
39
|
+
|
40
|
+
it "loads the runtime environment encapsuled in Adapter#run" do
|
41
|
+
Fabriq::Adapter.expects(:run).yields
|
42
|
+
Fabriq.expects(:load_environment)
|
43
|
+
Fabriq.boot
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe '.load_environment' do
|
48
|
+
|
49
|
+
it "initializes the PluginPort" do
|
50
|
+
Fabriq::PluginPort.expects(:initialize_plugins)
|
51
|
+
Fabriq.load_environment
|
52
|
+
end
|
53
|
+
|
54
|
+
describe 'with command line arguments' do
|
55
|
+
before do
|
56
|
+
Fabriq.stubs(:argv).returns(["args"])
|
57
|
+
end
|
58
|
+
|
59
|
+
it "run the CLI module" do
|
60
|
+
Fabriq::CLI.expects(:run).with(["args"])
|
61
|
+
Fabriq.load_environment
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
metadata
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fabriq
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Andreas Wolff
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-04-04 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rype
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rdoc
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: minitest
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: jeweler
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.8.3
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.8.3
|
78
|
+
description: A daemon that allows you to run Skype bots and give them power through
|
79
|
+
plugins.
|
80
|
+
email: rubyphunk@gmail.com
|
81
|
+
executables:
|
82
|
+
- fabriq
|
83
|
+
extensions: []
|
84
|
+
extra_rdoc_files:
|
85
|
+
- LICENSE.txt
|
86
|
+
- README.md
|
87
|
+
files:
|
88
|
+
- Gemfile
|
89
|
+
- Gemfile.lock
|
90
|
+
- LICENSE.txt
|
91
|
+
- README.md
|
92
|
+
- Rakefile
|
93
|
+
- TODO.md
|
94
|
+
- VERSION
|
95
|
+
- bin/fabriq
|
96
|
+
- fabriq.gemspec
|
97
|
+
- lib/fabriq.rb
|
98
|
+
- lib/fabriq/adapter.rb
|
99
|
+
- lib/fabriq/adapter/rype_adapter.rb
|
100
|
+
- lib/fabriq/cli.rb
|
101
|
+
- lib/fabriq/logging.rb
|
102
|
+
- lib/fabriq/plugin_port.rb
|
103
|
+
- lib/fabriq/skype.rb
|
104
|
+
- lib/fabriq/skype/message.rb
|
105
|
+
- lib/fabriq/skype/room.rb
|
106
|
+
- lib/fabriq/skype_proxy.rb
|
107
|
+
- spec/helper.rb
|
108
|
+
- spec/lib/fabriq/adapter_spec.rb
|
109
|
+
- spec/lib/fabriq/cli_spec.rb
|
110
|
+
- spec/lib/fabriq/config_spec.rb
|
111
|
+
- spec/lib/fabriq/logging_spec.rb
|
112
|
+
- spec/lib/fabriq/plugin_port_spec.rb
|
113
|
+
- spec/lib/fabriq/skype/message_spec.rb
|
114
|
+
- spec/lib/fabriq/skype/room_spec.rb
|
115
|
+
- spec/lib/fabriq/skype_proxy_spec.rb
|
116
|
+
- spec/lib/fabriq/skype_spec.rb
|
117
|
+
- spec/lib/fabriq_spec.rb
|
118
|
+
homepage: http://github.com/rubyphunk/fabriq
|
119
|
+
licenses:
|
120
|
+
- MIT
|
121
|
+
post_install_message:
|
122
|
+
rdoc_options: []
|
123
|
+
require_paths:
|
124
|
+
- lib
|
125
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
126
|
+
none: false
|
127
|
+
requirements:
|
128
|
+
- - ! '>='
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
131
|
+
segments:
|
132
|
+
- 0
|
133
|
+
hash: -3097632142334878370
|
134
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
|
+
none: false
|
136
|
+
requirements:
|
137
|
+
- - ! '>='
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
requirements: []
|
141
|
+
rubyforge_project:
|
142
|
+
rubygems_version: 1.8.21
|
143
|
+
signing_key:
|
144
|
+
specification_version: 3
|
145
|
+
summary: A Skype bot fabriqation hall
|
146
|
+
test_files: []
|