miu 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +2 -0
- data/.travis.yml +21 -0
- data/Gemfile +7 -0
- data/Guardfile +8 -0
- data/README.md +19 -2
- data/Rakefile +3 -0
- data/bin/miu +0 -2
- data/lib/miu/cli.rb +49 -24
- data/lib/miu/cli_base.rb +7 -0
- data/lib/miu/command.rb +19 -12
- data/lib/miu/errors.rb +22 -0
- data/lib/miu/forwarder.rb +54 -0
- data/lib/miu/logger.rb +11 -5
- data/lib/miu/messages/base.rb +14 -4
- data/lib/miu/messages/text.rb +4 -2
- data/lib/miu/messages/unknown.rb +11 -0
- data/lib/miu/messages.rb +17 -2
- data/lib/miu/{plugin.rb → node.rb} +10 -9
- data/lib/miu/nodes/.gitkeep +0 -0
- data/lib/miu/{plugins.rb → nodes.rb} +1 -1
- data/lib/miu/packet.rb +11 -18
- data/lib/miu/proxy.rb +57 -0
- data/lib/miu/publishable.rb +18 -0
- data/lib/miu/publisher.rb +16 -22
- data/lib/miu/resources/base.rb +2 -2
- data/lib/miu/resources/content.rb +1 -1
- data/lib/miu/resources/network.rb +1 -1
- data/lib/miu/resources/room.rb +1 -1
- data/lib/miu/resources/text_content.rb +3 -5
- data/lib/miu/resources/user.rb +1 -1
- data/lib/miu/server.rb +10 -25
- data/lib/miu/socket.rb +100 -28
- data/lib/miu/subscribable.rb +44 -0
- data/lib/miu/subscriber.rb +17 -48
- data/lib/miu/utility.rb +13 -8
- data/lib/miu/version.rb +1 -1
- data/lib/miu.rb +42 -25
- data/miu.gemspec +6 -4
- data/spec/miu/command_spec.rb +26 -0
- data/spec/miu/logger_spec.rb +39 -0
- data/spec/miu/messages/base_spec.rb +43 -0
- data/spec/miu/messages/text_spec.rb +35 -0
- data/spec/miu/node_spec.rb +31 -0
- data/spec/miu/packet_spec.rb +47 -0
- data/spec/miu/publishable_spec.rb +24 -0
- data/spec/miu/publisher_spec.rb +36 -0
- data/spec/miu/subscribable_spec.rb +44 -0
- data/spec/miu/subscriber_spec.rb +36 -0
- data/spec/miu/utility_spec.rb +60 -0
- data/spec/miu_spec.rb +23 -0
- data/spec/spec_helper.rb +15 -0
- metadata +86 -19
- data/lib/miu/plugins/null.rb +0 -59
- data/lib/templates/Gemfile +0 -8
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Miu::Logger do
|
4
|
+
before { Miu.logger = Miu.default_logger }
|
5
|
+
|
6
|
+
it { expect(Miu.logger).to be_instance_of ::Logger }
|
7
|
+
it { expect(Miu.logger.level).to eq ::Logger::INFO }
|
8
|
+
|
9
|
+
let(:msg) { 'test message' }
|
10
|
+
|
11
|
+
LEVELS = %w(debug info warn error fatal)
|
12
|
+
|
13
|
+
LEVELS.each do |level|
|
14
|
+
it "call #{level} when logger is default" do
|
15
|
+
Miu.logger.should_receive(level).with(msg).once
|
16
|
+
Miu::Logger.__send__(level, msg)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
LEVELS.each do |level|
|
21
|
+
it "call #{level} when logger is nil" do
|
22
|
+
allow_message_expectations_on_nil
|
23
|
+
Miu.logger = nil
|
24
|
+
Miu.logger.should_not_receive(level)
|
25
|
+
Miu::Logger.__send__(level, msg)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'include' do
|
30
|
+
class MyObject
|
31
|
+
include Miu::Logger
|
32
|
+
end
|
33
|
+
|
34
|
+
let(:obj) { MyObject.new }
|
35
|
+
LEVELS.each do |level|
|
36
|
+
it { expect(obj).to be_respond_to(level, true) }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Miu::Messages::Base do
|
4
|
+
describe '#initialize' do
|
5
|
+
context 'no args' do
|
6
|
+
before { @msg = Miu::Messages::Base.new(:type => 'test') }
|
7
|
+
subject { @msg }
|
8
|
+
|
9
|
+
its(:id) { should be_instance_of String }
|
10
|
+
its(:time) { should be_instance_of Fixnum }
|
11
|
+
its(:network) { should be_instance_of Miu::Resources::Network }
|
12
|
+
its(:type) { should eq 'test' }
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'with args' do
|
16
|
+
before do
|
17
|
+
@msg = Miu::Messages::Base.new({
|
18
|
+
:id => 123,
|
19
|
+
:time => 123,
|
20
|
+
:network => {:name => 'test'},
|
21
|
+
:type => 'type',
|
22
|
+
:content => 'content',
|
23
|
+
})
|
24
|
+
end
|
25
|
+
subject { @msg }
|
26
|
+
|
27
|
+
its(:id) { should eq 123 }
|
28
|
+
its(:time) { should eq 123 }
|
29
|
+
its(:network) { should be_instance_of Miu::Resources::Network }
|
30
|
+
its(:type) { should eq 'type' }
|
31
|
+
its(:content) { should eq 'content' }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '#to_hash' do
|
36
|
+
let(:hash) { Miu::Messages::Base.new(:type => 'test').to_hash }
|
37
|
+
|
38
|
+
it { expect(hash).to be_instance_of ::Hash }
|
39
|
+
it { expect(hash).to have_key :network }
|
40
|
+
it { expect(hash).to have_key :type }
|
41
|
+
it { expect(hash).to have_key :content }
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Miu::Messages::Text do
|
4
|
+
describe '#initialize' do
|
5
|
+
context 'no args' do
|
6
|
+
before do
|
7
|
+
@msg = Miu::Messages::Text.new
|
8
|
+
end
|
9
|
+
subject { @msg }
|
10
|
+
|
11
|
+
its(:id) { should be_instance_of String }
|
12
|
+
its(:time) { should be_instance_of Fixnum }
|
13
|
+
its(:network) { should be_instance_of Miu::Resources::Network }
|
14
|
+
its(:type) { should eq 'text' }
|
15
|
+
end
|
16
|
+
|
17
|
+
context 'with args' do
|
18
|
+
before do
|
19
|
+
@msg = Miu::Messages::Text.new({
|
20
|
+
:id => 123,
|
21
|
+
:time => 123,
|
22
|
+
:network => {:name => 'test'},
|
23
|
+
:content => {},
|
24
|
+
})
|
25
|
+
end
|
26
|
+
subject { @msg }
|
27
|
+
|
28
|
+
its(:id) { should eq 123 }
|
29
|
+
its(:time) { should eq 123 }
|
30
|
+
its(:network) { should be_instance_of Miu::Resources::Network }
|
31
|
+
its(:type) { should eq 'text' }
|
32
|
+
its(:content) { should be_instance_of Miu::Resources::TextContent }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Miu::Node do
|
4
|
+
def create_node_class
|
5
|
+
Class.new do
|
6
|
+
include Miu::Node
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'description' do
|
11
|
+
it do
|
12
|
+
MiuNodeDescriptionTest = create_node_class
|
13
|
+
expect(MiuNodeDescriptionTest.description).to eq MiuNodeDescriptionTest.name
|
14
|
+
end
|
15
|
+
|
16
|
+
it do
|
17
|
+
c = create_node_class
|
18
|
+
c.description 'my node'
|
19
|
+
expect(c.description).to eq 'my node'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe 'register' do
|
24
|
+
it do
|
25
|
+
c = create_node_class
|
26
|
+
block = proc {}
|
27
|
+
Miu.should_receive(:register).with('test', c, {}, &block)
|
28
|
+
c.register 'test', &block
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Miu::Packet do
|
4
|
+
describe '#initialize' do
|
5
|
+
before { @packet = Miu::Packet.new 'tag', 'data' }
|
6
|
+
subject { @packet }
|
7
|
+
|
8
|
+
its(:tag) { should eq 'tag' }
|
9
|
+
its(:data) { should eq 'data' }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '#dump' do
|
13
|
+
before { @packet = Miu::Packet.new 'tag', 'data' }
|
14
|
+
subject { @packet.dump }
|
15
|
+
|
16
|
+
it { should be_instance_of Array }
|
17
|
+
it { should have(2).values }
|
18
|
+
its([0]) { should be_instance_of String }
|
19
|
+
its([1]) { should be_instance_of String }
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '#load' do
|
23
|
+
before do
|
24
|
+
@packet = Miu::Packet.new 'tag', 'data'
|
25
|
+
@dumped = @packet.dump
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'load succeeded' do
|
29
|
+
expect { Miu::Packet.load @dumped }.to_not raise_error
|
30
|
+
end
|
31
|
+
|
32
|
+
context 'attributes' do
|
33
|
+
before { @loaded = Miu::Packet.load @dumped }
|
34
|
+
subject { @loaded }
|
35
|
+
|
36
|
+
its(:tag) { should eq @packet.tag }
|
37
|
+
its(:data) { should eq @packet.data }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe '#inspect' do
|
42
|
+
let(:str) { Miu::Packet.new('tag', 'data').inspect }
|
43
|
+
|
44
|
+
it { expect(str).to be_instance_of String }
|
45
|
+
it { expect(str).to match /^#<Miu::Packet .*>$/ }
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Miu::Publishable do
|
4
|
+
class MySocket
|
5
|
+
def write; end
|
6
|
+
include Miu::Publishable
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:socket) { MySocket.new }
|
10
|
+
|
11
|
+
it { expect(socket).to be_respond_to :write }
|
12
|
+
it { expect(socket).to be_respond_to :write_with_packet }
|
13
|
+
it { expect(socket).to be_respond_to :write_without_packet }
|
14
|
+
|
15
|
+
describe '#write' do
|
16
|
+
let(:tag) { 'tag' }
|
17
|
+
let(:msg) { 'msg' }
|
18
|
+
|
19
|
+
it do
|
20
|
+
socket.should_receive(:write_without_packet)
|
21
|
+
expect(socket.write tag, msg).to be_instance_of Miu::Packet
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'celluloid/zmq'
|
3
|
+
|
4
|
+
describe Miu::Publisher do
|
5
|
+
shared_examples 'publishable socket' do
|
6
|
+
let(:pub) { Miu::Publisher.new(:socket => base) }
|
7
|
+
|
8
|
+
it { expect(pub).to be_kind_of(base) }
|
9
|
+
it { expect(pub).to be_kind_of(Miu::Publishable) }
|
10
|
+
it { expect(pub).to be_kind_of(Miu::Publisher) }
|
11
|
+
it { expect(pub).to be_respond_to(:connect, :write) }
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'miu socket' do
|
15
|
+
it_should_behave_like 'publishable socket' do
|
16
|
+
let(:base) { Miu::PubSocket }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'celluloid/zmq socket' do
|
21
|
+
it_should_behave_like 'publishable socket' do
|
22
|
+
let(:base) { Celluloid::ZMQ::PubSocket }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'other socket' do
|
27
|
+
class MyPubSocket
|
28
|
+
def connect(address); end
|
29
|
+
def write; end
|
30
|
+
end
|
31
|
+
|
32
|
+
it_should_behave_like 'publishable socket' do
|
33
|
+
let(:base) { MyPubSocket }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Miu::Subscribable do
|
4
|
+
class MySocket
|
5
|
+
def read; end
|
6
|
+
include Miu::Subscribable
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:socket) { MySocket.new }
|
10
|
+
|
11
|
+
it { expect(socket).to be_respond_to :read }
|
12
|
+
it { expect(socket).to be_respond_to :read_with_packet }
|
13
|
+
it { expect(socket).to be_respond_to :read_without_packet }
|
14
|
+
|
15
|
+
it { expect(socket).to be_kind_of ::Enumerable }
|
16
|
+
it { expect(socket).to be_respond_to :each }
|
17
|
+
|
18
|
+
describe '#read' do
|
19
|
+
before do
|
20
|
+
socket.stub(:read_without_packet).and_return(tag, data.to_msgpack)
|
21
|
+
socket.stub(:more_parts?).and_return(true, false)
|
22
|
+
end
|
23
|
+
|
24
|
+
context 'invalid data' do
|
25
|
+
let(:tag) { 'tag' }
|
26
|
+
let(:data) { 'data' }
|
27
|
+
let(:packet) { socket.read }
|
28
|
+
|
29
|
+
it { expect(packet.tag).to eq 'tag' }
|
30
|
+
it { expect(packet.data).to be_instance_of Miu::Messages::Unknown }
|
31
|
+
it { expect(packet.data.content).to eq 'data' }
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'valid data' do
|
35
|
+
let(:tag) { 'tag' }
|
36
|
+
let(:data) { Miu::Messages::Text.new(:content => {:text => 'test'}) }
|
37
|
+
let(:packet) { socket.read }
|
38
|
+
|
39
|
+
it { expect(packet.tag).to eq 'tag' }
|
40
|
+
it { expect(packet.data).to be_instance_of Miu::Messages::Text }
|
41
|
+
it { expect(packet.data.content.text).to eq 'test' }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'celluloid/zmq'
|
3
|
+
|
4
|
+
describe Miu::Subscriber do
|
5
|
+
shared_examples 'subscribable socket' do
|
6
|
+
let(:sub) { Miu::Subscriber.new(:socket => base) }
|
7
|
+
|
8
|
+
it { expect(sub).to be_kind_of(base) }
|
9
|
+
it { expect(sub).to be_kind_of(Miu::Subscribable) }
|
10
|
+
it { expect(sub).to be_kind_of(Miu::Subscriber) }
|
11
|
+
it { expect(sub).to be_respond_to(:connect, :read) }
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'miu socket' do
|
15
|
+
it_should_behave_like 'subscribable socket' do
|
16
|
+
let(:base) { Miu::SubSocket }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'celluloid/zmq socket' do
|
21
|
+
it_should_behave_like 'subscribable socket' do
|
22
|
+
let(:base) { Celluloid::ZMQ::SubSocket }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'other socket' do
|
27
|
+
class MySubSocket
|
28
|
+
def connect(address); end
|
29
|
+
def read; end
|
30
|
+
end
|
31
|
+
|
32
|
+
it_should_behave_like 'subscribable socket' do
|
33
|
+
let(:base) { MySubSocket }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Miu::Utility do
|
4
|
+
describe 'adapt' do
|
5
|
+
X = Struct.new(:value)
|
6
|
+
|
7
|
+
it 'adapted' do
|
8
|
+
x = X.new(123)
|
9
|
+
X.should_not_receive(:new)
|
10
|
+
Miu::Utility.adapt(X, x)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'unadapted' do
|
14
|
+
X.should_receive(:new).with(123)
|
15
|
+
Miu::Utility.adapt(X, 123)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe 'extract_options!' do
|
20
|
+
it 'with options' do
|
21
|
+
args = [1, 2, 3, {:a => :b}]
|
22
|
+
options = Miu::Utility.extract_options! args
|
23
|
+
|
24
|
+
args.should == [1, 2, 3]
|
25
|
+
options.should == {:a => :b}
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'without options' do
|
29
|
+
args = [1, 2, 3]
|
30
|
+
options = Miu::Utility.extract_options! args
|
31
|
+
|
32
|
+
args.should == [1, 2, 3]
|
33
|
+
options.should == {}
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe 'symbolize_keys' do
|
38
|
+
it 'symbolize' do
|
39
|
+
h1 = {'a' => 'b', :c => :d, 1 => 2}
|
40
|
+
h2 = Miu::Utility.symbolize_keys h1
|
41
|
+
h2.should == {:a => 'b', :c => :d, 1 => 2}
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe 'underscorize_keys' do
|
46
|
+
it 'underscorize' do
|
47
|
+
h1 = {'a-b' => 1, 'a-b_c-d' => 2, :abc => 3}
|
48
|
+
h2 = Miu::Utility.underscorize_keys h1
|
49
|
+
h2.should == {'a_b' => 1, 'a_b_c_d' => 2, :abc => 3}
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe 'optionify_keys' do
|
54
|
+
it 'optionify' do
|
55
|
+
h1 = {'a-b' => 1, 'a-b_c-d' => 2, :'a-b_c-d_e' => 3}
|
56
|
+
h2 = Miu::Utility.optionify_keys h1
|
57
|
+
h2.should == {:a_b => 1, :a_b_c_d => 2, :a_b_c_d_e => 3}
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/spec/miu_spec.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Miu do
|
4
|
+
describe 'root' do
|
5
|
+
before { Dir.chdir '/tmp' }
|
6
|
+
let(:root) { Miu.root }
|
7
|
+
it { expect(root).to be_instance_of Pathname }
|
8
|
+
it { expect(root.to_s).to eq '/tmp' }
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'default_port' do
|
12
|
+
context 'default' do
|
13
|
+
it { expect(Miu.default_port).to eq 22200 }
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'overwrite' do
|
17
|
+
before { ENV['MIU_DEFAULT_PORT'] = '12345' }
|
18
|
+
after { ENV.delete 'MIU_DEFAULT_PORT' }
|
19
|
+
it { expect(Miu.default_port).to be_instance_of Fixnum }
|
20
|
+
it { expect(Miu.default_port).to eq 12345 }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'miu'
|
2
|
+
require 'rspec/autorun'
|
3
|
+
|
4
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
5
|
+
RSpec.configure do |config|
|
6
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
7
|
+
config.run_all_when_everything_filtered = true
|
8
|
+
config.filter_run :focus
|
9
|
+
|
10
|
+
# Run specs in random order to surface order dependencies. If you find an
|
11
|
+
# order dependency and want to debug it, you can fix the order by providing
|
12
|
+
# the seed, which is printed after each run.
|
13
|
+
# --seed 1234
|
14
|
+
config.order = 'random'
|
15
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: miu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,16 +9,16 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: thor
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 0.18.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,15 +26,15 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 0.18.1
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
31
|
+
name: god
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
35
|
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 0.
|
37
|
+
version: 0.13.2
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.
|
45
|
+
version: 0.13.2
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: ffi-rzmq
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
requirements:
|
67
67
|
- - ! '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.5.
|
69
|
+
version: 0.5.4
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -74,7 +74,7 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0.5.
|
77
|
+
version: 0.5.4
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
79
|
name: rake
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,7 +82,39 @@ dependencies:
|
|
82
82
|
requirements:
|
83
83
|
- - ! '>='
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: 10.0.
|
85
|
+
version: 10.0.4
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 10.0.4
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: rspec
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 2.13.0
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 2.13.0
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: celluloid-zmq
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.13.0
|
86
118
|
type: :development
|
87
119
|
prerelease: false
|
88
120
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -90,7 +122,7 @@ dependencies:
|
|
90
122
|
requirements:
|
91
123
|
- - ! '>='
|
92
124
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
125
|
+
version: 0.13.0
|
94
126
|
description: miu miu
|
95
127
|
email:
|
96
128
|
- mail@mashiro.org
|
@@ -100,22 +132,31 @@ extensions: []
|
|
100
132
|
extra_rdoc_files: []
|
101
133
|
files:
|
102
134
|
- .gitignore
|
135
|
+
- .rspec
|
136
|
+
- .travis.yml
|
103
137
|
- Gemfile
|
138
|
+
- Guardfile
|
104
139
|
- LICENSE.txt
|
105
140
|
- README.md
|
106
141
|
- Rakefile
|
107
142
|
- bin/miu
|
108
143
|
- lib/miu.rb
|
109
144
|
- lib/miu/cli.rb
|
145
|
+
- lib/miu/cli_base.rb
|
110
146
|
- lib/miu/command.rb
|
147
|
+
- lib/miu/errors.rb
|
148
|
+
- lib/miu/forwarder.rb
|
111
149
|
- lib/miu/logger.rb
|
112
150
|
- lib/miu/messages.rb
|
113
151
|
- lib/miu/messages/base.rb
|
114
152
|
- lib/miu/messages/text.rb
|
153
|
+
- lib/miu/messages/unknown.rb
|
154
|
+
- lib/miu/node.rb
|
155
|
+
- lib/miu/nodes.rb
|
156
|
+
- lib/miu/nodes/.gitkeep
|
115
157
|
- lib/miu/packet.rb
|
116
|
-
- lib/miu/
|
117
|
-
- lib/miu/
|
118
|
-
- lib/miu/plugins/null.rb
|
158
|
+
- lib/miu/proxy.rb
|
159
|
+
- lib/miu/publishable.rb
|
119
160
|
- lib/miu/publisher.rb
|
120
161
|
- lib/miu/resources.rb
|
121
162
|
- lib/miu/resources/base.rb
|
@@ -126,12 +167,25 @@ files:
|
|
126
167
|
- lib/miu/resources/user.rb
|
127
168
|
- lib/miu/server.rb
|
128
169
|
- lib/miu/socket.rb
|
170
|
+
- lib/miu/subscribable.rb
|
129
171
|
- lib/miu/subscriber.rb
|
130
172
|
- lib/miu/utility.rb
|
131
173
|
- lib/miu/version.rb
|
132
|
-
- lib/templates/Gemfile
|
133
174
|
- lib/templates/config/miu.god
|
134
175
|
- miu.gemspec
|
176
|
+
- spec/miu/command_spec.rb
|
177
|
+
- spec/miu/logger_spec.rb
|
178
|
+
- spec/miu/messages/base_spec.rb
|
179
|
+
- spec/miu/messages/text_spec.rb
|
180
|
+
- spec/miu/node_spec.rb
|
181
|
+
- spec/miu/packet_spec.rb
|
182
|
+
- spec/miu/publishable_spec.rb
|
183
|
+
- spec/miu/publisher_spec.rb
|
184
|
+
- spec/miu/subscribable_spec.rb
|
185
|
+
- spec/miu/subscriber_spec.rb
|
186
|
+
- spec/miu/utility_spec.rb
|
187
|
+
- spec/miu_spec.rb
|
188
|
+
- spec/spec_helper.rb
|
135
189
|
homepage: ''
|
136
190
|
licenses: []
|
137
191
|
post_install_message:
|
@@ -146,7 +200,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
146
200
|
version: '0'
|
147
201
|
segments:
|
148
202
|
- 0
|
149
|
-
hash:
|
203
|
+
hash: -2159721735902272457
|
150
204
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
205
|
none: false
|
152
206
|
requirements:
|
@@ -155,11 +209,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
155
209
|
version: '0'
|
156
210
|
segments:
|
157
211
|
- 0
|
158
|
-
hash:
|
212
|
+
hash: -2159721735902272457
|
159
213
|
requirements: []
|
160
214
|
rubyforge_project:
|
161
215
|
rubygems_version: 1.8.24
|
162
216
|
signing_key:
|
163
217
|
specification_version: 3
|
164
218
|
summary: miu miu
|
165
|
-
test_files:
|
219
|
+
test_files:
|
220
|
+
- spec/miu/command_spec.rb
|
221
|
+
- spec/miu/logger_spec.rb
|
222
|
+
- spec/miu/messages/base_spec.rb
|
223
|
+
- spec/miu/messages/text_spec.rb
|
224
|
+
- spec/miu/node_spec.rb
|
225
|
+
- spec/miu/packet_spec.rb
|
226
|
+
- spec/miu/publishable_spec.rb
|
227
|
+
- spec/miu/publisher_spec.rb
|
228
|
+
- spec/miu/subscribable_spec.rb
|
229
|
+
- spec/miu/subscriber_spec.rb
|
230
|
+
- spec/miu/utility_spec.rb
|
231
|
+
- spec/miu_spec.rb
|
232
|
+
- spec/spec_helper.rb
|