miu 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/.rspec +2 -0
  2. data/.travis.yml +21 -0
  3. data/Gemfile +7 -0
  4. data/Guardfile +8 -0
  5. data/README.md +19 -2
  6. data/Rakefile +3 -0
  7. data/bin/miu +0 -2
  8. data/lib/miu/cli.rb +49 -24
  9. data/lib/miu/cli_base.rb +7 -0
  10. data/lib/miu/command.rb +19 -12
  11. data/lib/miu/errors.rb +22 -0
  12. data/lib/miu/forwarder.rb +54 -0
  13. data/lib/miu/logger.rb +11 -5
  14. data/lib/miu/messages/base.rb +14 -4
  15. data/lib/miu/messages/text.rb +4 -2
  16. data/lib/miu/messages/unknown.rb +11 -0
  17. data/lib/miu/messages.rb +17 -2
  18. data/lib/miu/{plugin.rb → node.rb} +10 -9
  19. data/lib/miu/nodes/.gitkeep +0 -0
  20. data/lib/miu/{plugins.rb → nodes.rb} +1 -1
  21. data/lib/miu/packet.rb +11 -18
  22. data/lib/miu/proxy.rb +57 -0
  23. data/lib/miu/publishable.rb +18 -0
  24. data/lib/miu/publisher.rb +16 -22
  25. data/lib/miu/resources/base.rb +2 -2
  26. data/lib/miu/resources/content.rb +1 -1
  27. data/lib/miu/resources/network.rb +1 -1
  28. data/lib/miu/resources/room.rb +1 -1
  29. data/lib/miu/resources/text_content.rb +3 -5
  30. data/lib/miu/resources/user.rb +1 -1
  31. data/lib/miu/server.rb +10 -25
  32. data/lib/miu/socket.rb +100 -28
  33. data/lib/miu/subscribable.rb +44 -0
  34. data/lib/miu/subscriber.rb +17 -48
  35. data/lib/miu/utility.rb +13 -8
  36. data/lib/miu/version.rb +1 -1
  37. data/lib/miu.rb +42 -25
  38. data/miu.gemspec +6 -4
  39. data/spec/miu/command_spec.rb +26 -0
  40. data/spec/miu/logger_spec.rb +39 -0
  41. data/spec/miu/messages/base_spec.rb +43 -0
  42. data/spec/miu/messages/text_spec.rb +35 -0
  43. data/spec/miu/node_spec.rb +31 -0
  44. data/spec/miu/packet_spec.rb +47 -0
  45. data/spec/miu/publishable_spec.rb +24 -0
  46. data/spec/miu/publisher_spec.rb +36 -0
  47. data/spec/miu/subscribable_spec.rb +44 -0
  48. data/spec/miu/subscriber_spec.rb +36 -0
  49. data/spec/miu/utility_spec.rb +60 -0
  50. data/spec/miu_spec.rb +23 -0
  51. data/spec/spec_helper.rb +15 -0
  52. metadata +86 -19
  53. data/lib/miu/plugins/null.rb +0 -59
  54. 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
@@ -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.1.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-03-18 00:00:00.000000000 Z
12
+ date: 2013-04-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: bundler
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: 1.2.0
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: 1.2.0
29
+ version: 0.18.1
30
30
  - !ruby/object:Gem::Dependency
31
- name: thor
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.17.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.17.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.3
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.3
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.3
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: 10.0.3
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/plugin.rb
117
- - lib/miu/plugins.rb
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: 1420943406684194913
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: 1420943406684194913
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