miu 0.1.0 → 0.2.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/.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
|