fabriq 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []