langrove 0.0.4.5 → 0.0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.rvmrc +29 -38
- data/Gemfile +13 -7
- data/Gemfile.lock +35 -32
- data/Guardfile +11 -0
- data/README.md +34 -0
- data/Rakefile +8 -6
- data/bin/README.md +3 -0
- data/bin/langrove +1 -2
- data/langrove.gemspec +35 -0
- data/lib/langrove/README.md +82 -0
- data/lib/langrove/adaptor/README.md +92 -0
- data/lib/langrove/adaptor/adaptor_base.rb +123 -0
- data/lib/langrove/adaptor/base.rb +12 -2
- data/lib/langrove/adaptor/default.rb +8 -0
- data/lib/langrove/adaptor/event_machine_adaptor.rb +152 -0
- data/lib/langrove/adaptor/query_adaptor.rb +271 -0
- data/lib/langrove/behaviour/README.md +170 -0
- data/lib/langrove/behaviour/assessable.rb +63 -0
- data/lib/langrove/behaviour/base.rb +16 -0
- data/lib/langrove/behaviour/behaviour_base.rb +341 -0
- data/lib/langrove/behaviour/enqueueable.rb +104 -0
- data/lib/langrove/behaviour/notifiable.rb +48 -0
- data/lib/langrove/behaviour/persistable.rb +89 -0
- data/lib/langrove/behaviour/preloadable.rb +63 -0
- data/lib/langrove/daemon/README.md +7 -0
- data/lib/langrove/daemon/base.rb +9 -2
- data/lib/langrove/daemon/daemon_base.rb +330 -0
- data/lib/langrove/daemon/default.rb +3 -0
- data/lib/langrove/ext/README.md +48 -0
- data/lib/langrove/ext/class_loader.rb +9 -66
- data/lib/langrove/ext/config_item.rb +31 -23
- data/lib/langrove/ext/config_loader.rb +42 -8
- data/lib/langrove/ext/fake_config.rb +121 -0
- data/lib/langrove/ext/fake_logger.rb +50 -7
- data/lib/langrove/ext/fake_root.rb +38 -0
- data/lib/langrove/ext/hash.rb +56 -0
- data/lib/langrove/ext/i.rb +43 -0
- data/lib/langrove/ext/log_monitor.rb +272 -0
- data/lib/langrove/ext/module_loader.rb +52 -0
- data/lib/langrove/ext/recursive_string.rb +94 -0
- data/lib/langrove/ext/spec_helper.rb +84 -0
- data/lib/langrove/ext.rb +8 -2
- data/lib/langrove/handler/README.md +161 -0
- data/lib/langrove/handler/base.rb +29 -2
- data/lib/langrove/handler/default.rb +4 -0
- data/lib/langrove/handler/deferred.rb +105 -0
- data/lib/langrove/handler/handler_base.rb +242 -0
- data/lib/langrove/handler/http_servlet.rb +58 -0
- data/lib/langrove/handler/socket.rb +21 -0
- data/lib/langrove/handler/socket_base.rb +127 -0
- data/lib/langrove/handler/socket_multiplexer.rb +438 -0
- data/lib/langrove/handler/web_socket.rb +41 -0
- data/lib/langrove/plugin/README.md +76 -0
- data/lib/langrove/plugin/assessor.rb +363 -0
- data/lib/langrove/plugin/base.rb +18 -0
- data/lib/langrove/plugin/buffered_persistor.rb +97 -0
- data/lib/langrove/plugin/enqueuer.rb +186 -0
- data/lib/langrove/plugin/notifier.rb +144 -0
- data/lib/langrove/plugin/persistor.rb +360 -0
- data/lib/langrove/plugin/plugin_base.rb +79 -0
- data/lib/langrove/plugin/yaml_file.md +5 -0
- data/lib/langrove/plugin/yaml_file.rb +261 -0
- data/lib/langrove/protocol/README.md +102 -0
- data/lib/langrove/protocol/base.rb +10 -2
- data/lib/langrove/protocol/default.rb +3 -0
- data/lib/langrove/protocol/protocol_base.rb +60 -0
- data/lib/langrove/protocol/syslog.rb +34 -27
- data/lib/langrove/root/README.md +17 -0
- data/lib/langrove/root/base.rb +11 -0
- data/lib/langrove/root/config.rb +163 -0
- data/lib/langrove/root/root_base.rb +259 -0
- data/lib/langrove/server/README.md +7 -0
- data/lib/langrove/server/base.rb +9 -0
- data/lib/langrove/server/default.rb +3 -0
- data/lib/langrove/server/server_base.rb +301 -0
- data/lib/langrove/version.rb +3 -1
- data/lib/langrove.rb +44 -1
- data/spec/langrove/adaptor/adaptor_base_spec.rb +33 -0
- data/spec/langrove/adaptor/event_machine_adaptor_spec.rb +62 -0
- data/spec/langrove/adaptor/query_adaptor_spec.rb +94 -0
- data/spec/langrove/behaviour/assessable_spec.rb +42 -0
- data/spec/langrove/behaviour/behaviour_base_spec.rb +396 -0
- data/spec/langrove/behaviour/enqueueable_spec.rb +19 -0
- data/spec/langrove/behaviour/notifiable_spec.rb +6 -0
- data/spec/langrove/behaviour/persistable_spec.rb +19 -0
- data/spec/langrove/behaviour/preloadable_spec.rb +19 -0
- data/spec/langrove/daemon/base_spec.rb +6 -0
- data/spec/langrove/daemon/daemon_base_spec.rb +253 -0
- data/spec/langrove/ext/class_loader_spec.rb +9 -12
- data/spec/langrove/ext/fake_config_spec.rb +50 -0
- data/spec/langrove/ext/fake_logger_spec.rb +12 -0
- data/spec/langrove/ext/fake_root_spec.rb +19 -0
- data/spec/langrove/ext/hash_spec.rb +54 -0
- data/spec/langrove/ext/i_spec.rb +11 -0
- data/spec/langrove/ext/log_monitor_spec.rb +254 -0
- data/spec/langrove/ext/module_loader_spec.rb +70 -0
- data/spec/langrove/ext/recursive_string_spec.rb +132 -0
- data/{functional/config/environments/development.rb → spec/langrove/ext/spec_helper_spec.rb} +0 -0
- data/spec/langrove/handler/deferred_spec.rb +9 -0
- data/spec/langrove/handler/handler_base_spec.rb +134 -0
- data/spec/langrove/handler/socket_base_spec.rb +76 -0
- data/spec/langrove/handler/socket_multiplexer_spec.rb +480 -0
- data/spec/langrove/handler/socket_spec.rb +6 -0
- data/spec/langrove/handler/web_socket_spec.rb +19 -0
- data/spec/langrove/plugin/assessor_spec.rb +278 -0
- data/spec/langrove/plugin/buffered_persistor_spec.rb +94 -0
- data/spec/langrove/plugin/enqueuer_spec.rb +136 -0
- data/spec/langrove/plugin/notifier_spec.rb +107 -0
- data/spec/langrove/plugin/persistor_spec.rb +300 -0
- data/spec/langrove/plugin/plugin_base_spec.rb +86 -0
- data/spec/langrove/plugin/yaml_file_spec.rb +348 -0
- data/spec/langrove/protocol/protocol_base_spec.rb +19 -0
- data/spec/langrove/protocol/syslog_spec.rb +5 -2
- data/spec/langrove/root/config_spec.rb +103 -0
- data/spec/langrove/root/root_base_spec.rb +93 -0
- data/spec/langrove/server/server_base_spec.rb +414 -0
- data/spec/spec_helper.rb +38 -0
- metadata +157 -92
- data/.watchr +0 -27
- data/functional/config/boot.rb +0 -64
- data/functional/config/daemons.yml +0 -13
- data/functional/config/environment.rb +0 -28
- data/functional/config/environments/production.rb +0 -0
- data/functional/config/environments/test.rb +0 -0
- data/functional/lib/client/socket_to_file.rb +0 -47
- data/functional/lib/daemon/datagram.rb +0 -21
- data/functional/lib/protocol/socket_to_file.rb +0 -55
- data/functional/libexec/daemon.rb +0 -68
- data/functional/tmp/README +0 -1
- data/lib/langrove/_base.rb +0 -28
- data/lib/langrove/adaptor_base.rb +0 -116
- data/lib/langrove/client/base.rb +0 -2
- data/lib/langrove/client/datagram.rb +0 -25
- data/lib/langrove/client_base.rb +0 -92
- data/lib/langrove/daemon_base.rb +0 -281
- data/lib/langrove/ext/find.rb +0 -90
- data/lib/langrove/ext/persistable.rb +0 -103
- data/lib/langrove/handler_base.rb +0 -148
- data/lib/langrove/job/base.rb +0 -1
- data/lib/langrove/job_base.rb +0 -24
- data/lib/langrove/protocol_base.rb +0 -32
- data/spec/functional/daemon/datagram_spec.rb +0 -121
- data/spec/langrove/adaptor_base_spec.rb +0 -63
- data/spec/langrove/client/datagram_spec.rb +0 -1
- data/spec/langrove/client_base_spec.rb +0 -5
- data/spec/langrove/daemon_base_spec.rb +0 -154
- data/spec/langrove/ext/find_spec.rb +0 -53
- data/spec/langrove/ext/persistable_spec.rb +0 -117
- data/spec/langrove/handler_base_spec.rb +0 -103
- data/spec/langrove/job_base_spec.rb +0 -28
- data/spec/langrove/protocol_base_spec.rb +0 -6
- data/spec/todo_spec.rb +0 -12
- data/tmp/README +0 -2
@@ -1,117 +0,0 @@
|
|
1
|
-
require 'langrove/ext'
|
2
|
-
|
3
|
-
#
|
4
|
-
# This will likely change.
|
5
|
-
#
|
6
|
-
|
7
|
-
describe LanGrove::Persistable do
|
8
|
-
|
9
|
-
before :each do
|
10
|
-
|
11
|
-
class TestSerialization
|
12
|
-
attr_accessor :data
|
13
|
-
end
|
14
|
-
|
15
|
-
@class_instance = TestSerialization.new
|
16
|
-
@class_instance.data = 'VALUE'
|
17
|
-
|
18
|
-
@now = Time.now
|
19
|
-
@state_file = File.dirname( __FILE__ ) + "/../../../tmp/persistable.yml"
|
20
|
-
|
21
|
-
#
|
22
|
-
# delete the file
|
23
|
-
#
|
24
|
-
File.delete( @state_file ) if File.file?( @state_file )
|
25
|
-
|
26
|
-
@hash = {
|
27
|
-
'tree' => {
|
28
|
-
'type' => {
|
29
|
-
:thing1 => 1
|
30
|
-
}
|
31
|
-
},
|
32
|
-
:now => @now,
|
33
|
-
:class_instance => @class_instance
|
34
|
-
}
|
35
|
-
|
36
|
-
end
|
37
|
-
|
38
|
-
subject do
|
39
|
-
|
40
|
-
test = LanGrove::Persistable.new
|
41
|
-
test.instance_variable_set :@logger, (LanGrove::FakeLogger.new :silent)
|
42
|
-
test
|
43
|
-
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'can serialize a hash to file' do
|
47
|
-
|
48
|
-
#
|
49
|
-
# install the hash to be 'stored'
|
50
|
-
#
|
51
|
-
subject.instance_variable_set( :@hash, @hash )
|
52
|
-
subject.store_hash( '@hash', @state_file )
|
53
|
-
|
54
|
-
#
|
55
|
-
# is the file there?
|
56
|
-
#
|
57
|
-
File.file?( @state_file ).should == true
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
context 'can de-serialize a hash' do
|
62
|
-
|
63
|
-
before :each do
|
64
|
-
|
65
|
-
#
|
66
|
-
# set up the file to read
|
67
|
-
#
|
68
|
-
subject.instance_variable_set( :@hash, @hash )
|
69
|
-
subject.store_hash( '@hash', @state_file )
|
70
|
-
|
71
|
-
#
|
72
|
-
# replace the hash with another containg other things
|
73
|
-
#
|
74
|
-
subject.instance_variable_set( :@hash, { 'thing2' => 2 } )
|
75
|
-
|
76
|
-
end
|
77
|
-
|
78
|
-
it 'from file' do
|
79
|
-
|
80
|
-
subject.load_hash( '@hash', @state_file )
|
81
|
-
|
82
|
-
hash = subject.instance_variable_get( :@hash )
|
83
|
-
hash['tree']['type'][:thing1].should == 1
|
84
|
-
|
85
|
-
end
|
86
|
-
|
87
|
-
it 'from file and re-instanciate as correct native ruby classes' do
|
88
|
-
|
89
|
-
subject.load_hash( '@hash', @state_file )
|
90
|
-
hash = subject.instance_variable_get( :@hash )
|
91
|
-
|
92
|
-
hash[:now].should be_a( Time )
|
93
|
-
hash[:now].should == @now
|
94
|
-
|
95
|
-
end
|
96
|
-
|
97
|
-
it 'from file and re-instanciate as correct userland ruby classes' do
|
98
|
-
|
99
|
-
subject.load_hash( '@hash', @state_file )
|
100
|
-
hash = subject.instance_variable_get( :@hash )
|
101
|
-
|
102
|
-
hash[:class_instance].should be_a( TestSerialization )
|
103
|
-
hash[:class_instance].data.should == 'VALUE'
|
104
|
-
|
105
|
-
end
|
106
|
-
|
107
|
-
it 'from file and not overrwrite other variables in the hash' do
|
108
|
-
|
109
|
-
subject.load_hash( '@hash', @state_file )
|
110
|
-
hash = subject.instance_variable_get( :@hash )
|
111
|
-
|
112
|
-
hash['tree']['type'][:thing1].should == 1
|
113
|
-
hash['thing2'].should == 2
|
114
|
-
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
@@ -1,103 +0,0 @@
|
|
1
|
-
require 'langrove'
|
2
|
-
|
3
|
-
describe LanGrove::Handler::Base do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
|
7
|
-
@logger = LanGrove::FakeLogger.new :silent
|
8
|
-
|
9
|
-
@daemon_name = 'test_daemon'
|
10
|
-
|
11
|
-
@config = {
|
12
|
-
|
13
|
-
:daemons => {
|
14
|
-
|
15
|
-
@daemon_name => {
|
16
|
-
|
17
|
-
:handler => {
|
18
|
-
|
19
|
-
:collection => 'Base'
|
20
|
-
}
|
21
|
-
}
|
22
|
-
}
|
23
|
-
}
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
subject do
|
28
|
-
|
29
|
-
LanGrove::Handler::Base.new( @config, @daemon_name, @logger )
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
context 'maintains a connected client collection with' do
|
34
|
-
|
35
|
-
it 'in a hash' do
|
36
|
-
|
37
|
-
clients = subject.instance_variable_get( :@clients )
|
38
|
-
|
39
|
-
clients.should be_a( Hash )
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
context 'connect()' do
|
44
|
-
|
45
|
-
it 'using a key defined by the client' do
|
46
|
-
|
47
|
-
client = double( 'Client' )
|
48
|
-
client.should_receive( :respond_to? ).with( :unique_key ).and_return( true )
|
49
|
-
client.should_receive( :unique_key ).and_return('KEY1')
|
50
|
-
|
51
|
-
subject.connect( client )
|
52
|
-
|
53
|
-
clients = subject.instance_variable_get( :@clients )
|
54
|
-
|
55
|
-
clients['KEY1'].should == client
|
56
|
-
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'using the client itself as the key if unique is not defined' do
|
60
|
-
|
61
|
-
client = double( 'Client' )
|
62
|
-
client.should_receive( :respond_to? ).with( :unique_key ).and_return( false )
|
63
|
-
|
64
|
-
subject.connect( client )
|
65
|
-
|
66
|
-
clients = subject.instance_variable_get( :@clients )
|
67
|
-
|
68
|
-
clients[ client ].should == 1
|
69
|
-
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
73
|
-
|
74
|
-
context 'disconnect()' do
|
75
|
-
|
76
|
-
it 'to remove the client from the collection'
|
77
|
-
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'call the periodic ticker to all attached clients' do
|
81
|
-
|
82
|
-
client1 = Object.const_set( 'Client', Class.new() do
|
83
|
-
|
84
|
-
self.class_eval { attr_accessor :unique }
|
85
|
-
|
86
|
-
end).new
|
87
|
-
client1.unique = 'kEy'
|
88
|
-
|
89
|
-
client2 = Object.new
|
90
|
-
|
91
|
-
client1.should_receive( :periodic )
|
92
|
-
client2.should_receive( :periodic )
|
93
|
-
|
94
|
-
subject.connect( client1 )
|
95
|
-
subject.connect( client2 )
|
96
|
-
|
97
|
-
subject.periodic
|
98
|
-
|
99
|
-
end
|
100
|
-
|
101
|
-
end
|
102
|
-
|
103
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require 'langrove'
|
2
|
-
|
3
|
-
describe LanGrove::Job::Base do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
|
7
|
-
@logger = LanGrove::FakeLogger.new
|
8
|
-
|
9
|
-
@queue_name = :snooker_queue
|
10
|
-
|
11
|
-
@config = {}
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'initializes' do
|
16
|
-
|
17
|
-
test = LanGrove::Job::Base.new( @config, @queue_name, @logger )
|
18
|
-
test.should be_a( LanGrove::Job::Base )
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'has methods' do
|
23
|
-
|
24
|
-
LanGrove::Job::Base.new( @config, @queue_name, @logger ).undefined_method( "TEST" )
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
data/spec/todo_spec.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
describe 'Outstanding:' do
|
2
|
-
|
3
|
-
pending 'Symbolize the config keys'
|
4
|
-
pending 'make a langrove --create for developers to recursively copy ./functional from the gem install dir as a base for getting the framework up and running'
|
5
|
-
pending 'cut and publish'
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
pending 'rdoc'
|
11
|
-
|
12
|
-
end
|
data/tmp/README
DELETED