maxcube-client 0.4.1 → 0.5.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.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +6 -0
  3. data/.rubocop.yml +0 -3
  4. data/.yardopts +1 -0
  5. data/README.md +17 -2
  6. data/bin/maxcube-client +2 -27
  7. data/doc/MaxCube.html +502 -0
  8. data/doc/MaxCube/Messages.html +1927 -0
  9. data/doc/MaxCube/Messages/Handler.html +2912 -0
  10. data/doc/MaxCube/Messages/InvalidMessage.html +140 -0
  11. data/doc/MaxCube/Messages/InvalidMessageBody.html +264 -0
  12. data/doc/MaxCube/Messages/InvalidMessageFormat.html +247 -0
  13. data/doc/MaxCube/Messages/InvalidMessageLength.html +247 -0
  14. data/doc/MaxCube/Messages/InvalidMessageType.html +263 -0
  15. data/doc/MaxCube/Messages/Parser.html +520 -0
  16. data/doc/MaxCube/Messages/Serializer.html +701 -0
  17. data/doc/MaxCube/Messages/TCP.html +172 -0
  18. data/doc/MaxCube/Messages/TCP/Handler.html +1396 -0
  19. data/doc/MaxCube/Messages/TCP/Parser.html +462 -0
  20. data/doc/MaxCube/Messages/TCP/Parser/MessageA.html +186 -0
  21. data/doc/MaxCube/Messages/TCP/Parser/MessageC.html +1077 -0
  22. data/doc/MaxCube/Messages/TCP/Parser/MessageF.html +206 -0
  23. data/doc/MaxCube/Messages/TCP/Parser/MessageH.html +338 -0
  24. data/doc/MaxCube/Messages/TCP/Parser/MessageL.html +535 -0
  25. data/doc/MaxCube/Messages/TCP/Parser/MessageM.html +510 -0
  26. data/doc/MaxCube/Messages/TCP/Parser/MessageN.html +226 -0
  27. data/doc/MaxCube/Messages/TCP/Parser/MessageS.html +225 -0
  28. data/doc/MaxCube/Messages/TCP/Serializer.html +460 -0
  29. data/doc/MaxCube/Messages/TCP/Serializer/MessageA.html +186 -0
  30. data/doc/MaxCube/Messages/TCP/Serializer/MessageC.html +185 -0
  31. data/doc/MaxCube/Messages/TCP/Serializer/MessageF.html +206 -0
  32. data/doc/MaxCube/Messages/TCP/Serializer/MessageL.html +185 -0
  33. data/doc/MaxCube/Messages/TCP/Serializer/MessageM.html +428 -0
  34. data/doc/MaxCube/Messages/TCP/Serializer/MessageN.html +209 -0
  35. data/doc/MaxCube/Messages/TCP/Serializer/MessageQ.html +185 -0
  36. data/doc/MaxCube/Messages/TCP/Serializer/MessageS.html +1168 -0
  37. data/doc/MaxCube/Messages/TCP/Serializer/MessageT.html +240 -0
  38. data/doc/MaxCube/Messages/TCP/Serializer/MessageU.html +206 -0
  39. data/doc/MaxCube/Messages/TCP/Serializer/MessageZ.html +252 -0
  40. data/doc/MaxCube/Messages/UDP.html +164 -0
  41. data/doc/MaxCube/Messages/UDP/Handler.html +832 -0
  42. data/doc/MaxCube/Messages/UDP/Parser.html +609 -0
  43. data/doc/MaxCube/Messages/UDP/Parser/MessageH.html +218 -0
  44. data/doc/MaxCube/Messages/UDP/Parser/MessageI.html +215 -0
  45. data/doc/MaxCube/Messages/UDP/Parser/MessageN.html +226 -0
  46. data/doc/MaxCube/Messages/UDP/Serializer.html +484 -0
  47. data/doc/MaxCube/Network.html +167 -0
  48. data/doc/MaxCube/Network/TCP.html +150 -0
  49. data/doc/MaxCube/Network/TCP/Client.html +1930 -0
  50. data/doc/MaxCube/Network/TCP/Client/Commands.html +2457 -0
  51. data/doc/MaxCube/Network/TCP/SampleServer.html +910 -0
  52. data/doc/MaxCube/Network/UDP.html +150 -0
  53. data/doc/MaxCube/Network/UDP/Client.html +518 -0
  54. data/doc/MaxCube/Network/UDP/SampleSocket.html +628 -0
  55. data/doc/MaxCube/Runner.html +355 -0
  56. data/doc/_index.html +518 -0
  57. data/doc/class_list.html +51 -0
  58. data/doc/css/common.css +1 -0
  59. data/doc/css/full_list.css +58 -0
  60. data/doc/css/style.css +499 -0
  61. data/doc/file.README.html +140 -0
  62. data/doc/file_list.html +56 -0
  63. data/doc/frames.html +17 -0
  64. data/doc/index.html +140 -0
  65. data/doc/js/app.js +248 -0
  66. data/doc/js/full_list.js +216 -0
  67. data/doc/js/jquery.js +4 -0
  68. data/doc/method_list.html +1699 -0
  69. data/doc/top-level-namespace.html +110 -0
  70. data/lib/maxcube.rb +11 -0
  71. data/lib/maxcube/messages.rb +85 -8
  72. data/lib/maxcube/messages/handler.rb +138 -4
  73. data/lib/maxcube/messages/parser.rb +33 -2
  74. data/lib/maxcube/messages/serializer.rb +64 -16
  75. data/lib/maxcube/messages/tcp.rb +11 -7
  76. data/lib/maxcube/messages/tcp/handler.rb +50 -2
  77. data/lib/maxcube/messages/tcp/parser.rb +18 -17
  78. data/lib/maxcube/messages/tcp/serializer.rb +20 -21
  79. data/lib/maxcube/messages/tcp/type/a.rb +6 -6
  80. data/lib/maxcube/messages/tcp/type/c.rb +5 -3
  81. data/lib/maxcube/messages/tcp/type/f.rb +5 -3
  82. data/lib/maxcube/messages/tcp/type/h.rb +3 -2
  83. data/lib/maxcube/messages/tcp/type/l.rb +8 -7
  84. data/lib/maxcube/messages/tcp/type/m.rb +11 -7
  85. data/lib/maxcube/messages/tcp/type/n.rb +5 -3
  86. data/lib/maxcube/messages/tcp/type/q.rb +2 -2
  87. data/lib/maxcube/messages/tcp/type/s.rb +5 -2
  88. data/lib/maxcube/messages/tcp/type/t.rb +5 -4
  89. data/lib/maxcube/messages/tcp/type/u.rb +2 -1
  90. data/lib/maxcube/messages/tcp/type/z.rb +4 -2
  91. data/lib/maxcube/messages/udp.rb +7 -0
  92. data/lib/maxcube/messages/udp/handler.rb +28 -0
  93. data/lib/maxcube/messages/udp/parser.rb +23 -6
  94. data/lib/maxcube/messages/udp/serializer.rb +17 -1
  95. data/lib/maxcube/messages/udp/type/h.rb +2 -0
  96. data/lib/maxcube/messages/udp/type/i.rb +3 -0
  97. data/lib/maxcube/messages/udp/type/n.rb +3 -0
  98. data/lib/maxcube/network.rb +5 -1
  99. data/lib/maxcube/network/tcp.rb +3 -0
  100. data/lib/maxcube/network/tcp/client.rb +117 -3
  101. data/lib/maxcube/network/tcp/client/commands.rb +306 -239
  102. data/lib/maxcube/network/tcp/sample_server.rb +1 -0
  103. data/lib/maxcube/network/udp.rb +3 -0
  104. data/lib/maxcube/network/udp/client.rb +2 -0
  105. data/lib/maxcube/network/udp/sample_socket.rb +1 -0
  106. data/lib/maxcube/runner.rb +45 -0
  107. data/lib/maxcube/version.rb +2 -1
  108. data/maxcube-client.gemspec +2 -0
  109. metadata +84 -3
@@ -3,6 +3,7 @@ require 'maxcube/network/tcp'
3
3
  module MaxCube
4
4
  module Network
5
5
  module TCP
6
+ # Simple TCP server for Cube protocol testing purposes.
6
7
  class SampleServer
7
8
  def initialize(port = PORT)
8
9
  @port = port
@@ -4,7 +4,10 @@ require 'maxcube/messages/udp/serializer'
4
4
 
5
5
  module MaxCube
6
6
  module Network
7
+ # This module contains classes aimed onto UDP network tools
8
+ # related to Cube protocol.
7
9
  module UDP
10
+ # Common port used in Cube UDP communication.
8
11
  PORT = 23_272
9
12
  end
10
13
  end
@@ -3,6 +3,8 @@ require 'maxcube/network/udp'
3
3
  module MaxCube
4
4
  module Network
5
5
  module UDP
6
+ # Class that provides yet only basic UDP communication
7
+ # with Cube devices.
6
8
  class Client
7
9
  def initialize(port = PORT)
8
10
  @socket = UDPSocket.new
@@ -3,6 +3,7 @@ require 'maxcube/network/udp'
3
3
  module MaxCube
4
4
  module Network
5
5
  module UDP
6
+ # Simple UDP 'server' for Cube protocol testing purposes.
6
7
  class SampleSocket
7
8
  def initialize(port = PORT)
8
9
  @port = port
@@ -0,0 +1,45 @@
1
+ require 'maxcube/network/tcp/client'
2
+ require 'maxcube/network/udp/client'
3
+
4
+ module MaxCube
5
+ # Module that provides running of Cube clients:
6
+ # {Network::TCP::Client} and {Network::UDP::Client}
7
+ class Runner
8
+ # These will display help message.
9
+ HELP_KEYS = %w[h -h help -help --help ? -?].freeze
10
+
11
+ # Assigns command line arguments to internal variable.
12
+ def initialize(argv)
13
+ @argv = argv
14
+ end
15
+
16
+ # Runs either TCP or UDP client.
17
+ def run
18
+ help = @argv.size == 1 && HELP_KEYS.include?(@argv.first)
19
+ wrong_args = @argv.size > 2
20
+
21
+ if help || wrong_args
22
+ if wrong_args
23
+ puts "Wrong number of arguments: #{@argv.size} (expected: 0..2)"
24
+ end
25
+ puts "USAGE: ruby #{__FILE__} [<help>|<host>] [<port>]\n" \
26
+ " <help> - on of these: #{HELP_KEYS}\n\n" \
27
+ "If no arguments are given, UDP discovery is performed.\n" \
28
+ 'Otherwise, TCP client is launched (unless help command entered).'
29
+ exit
30
+ end
31
+
32
+ if @argv.empty?
33
+ puts "No arguments given - performing UDP discovery ...\n" \
34
+ "(For usage message, type one of these: #{HELP_KEYS})\n\n"
35
+ client = MaxCube::Network::UDP::Client.new
36
+ client.discovery
37
+ client.close
38
+ exit
39
+ end
40
+
41
+ client = MaxCube::Network::TCP::Client.new
42
+ client.connect(*@argv)
43
+ end
44
+ end
45
+ end
@@ -1,4 +1,5 @@
1
1
 
2
2
  module MaxCube
3
- VERSION = '0.4.1'.freeze
3
+ # Project (package) version
4
+ VERSION = '0.5.0'.freeze
4
5
  end
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.bindir = "exe"
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
+ spec.metadata['yard.run'] = 'yard'
22
23
 
23
24
  spec.required_ruby_version = '>= 2.2'
24
25
 
@@ -26,4 +27,5 @@ Gem::Specification.new do |spec|
26
27
  spec.add_development_dependency "rake", "~> 10.0"
27
28
  spec.add_development_dependency "rspec", "~> 3.0"
28
29
  spec.add_development_dependency "rubocop", "~> 0.50"
30
+ spec.add_development_dependency "yard", "~> 0.9"
29
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maxcube-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomáš Kolárik
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-15 00:00:00.000000000 Z
11
+ date: 2018-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.50'
69
+ - !ruby/object:Gem::Dependency
70
+ name: yard
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.9'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.9'
69
83
  description:
70
84
  email:
71
85
  - tomaqa@gmail.com
@@ -73,7 +87,9 @@ executables: []
73
87
  extensions: []
74
88
  extra_rdoc_files: []
75
89
  files:
90
+ - ".gitignore"
76
91
  - ".rubocop.yml"
92
+ - ".yardopts"
77
93
  - Gemfile
78
94
  - LICENSE.md
79
95
  - README.md
@@ -91,6 +107,69 @@ files:
91
107
  - data/load/set_valve
92
108
  - data/load/url
93
109
  - data/load/wake
110
+ - doc/MaxCube.html
111
+ - doc/MaxCube/Messages.html
112
+ - doc/MaxCube/Messages/Handler.html
113
+ - doc/MaxCube/Messages/InvalidMessage.html
114
+ - doc/MaxCube/Messages/InvalidMessageBody.html
115
+ - doc/MaxCube/Messages/InvalidMessageFormat.html
116
+ - doc/MaxCube/Messages/InvalidMessageLength.html
117
+ - doc/MaxCube/Messages/InvalidMessageType.html
118
+ - doc/MaxCube/Messages/Parser.html
119
+ - doc/MaxCube/Messages/Serializer.html
120
+ - doc/MaxCube/Messages/TCP.html
121
+ - doc/MaxCube/Messages/TCP/Handler.html
122
+ - doc/MaxCube/Messages/TCP/Parser.html
123
+ - doc/MaxCube/Messages/TCP/Parser/MessageA.html
124
+ - doc/MaxCube/Messages/TCP/Parser/MessageC.html
125
+ - doc/MaxCube/Messages/TCP/Parser/MessageF.html
126
+ - doc/MaxCube/Messages/TCP/Parser/MessageH.html
127
+ - doc/MaxCube/Messages/TCP/Parser/MessageL.html
128
+ - doc/MaxCube/Messages/TCP/Parser/MessageM.html
129
+ - doc/MaxCube/Messages/TCP/Parser/MessageN.html
130
+ - doc/MaxCube/Messages/TCP/Parser/MessageS.html
131
+ - doc/MaxCube/Messages/TCP/Serializer.html
132
+ - doc/MaxCube/Messages/TCP/Serializer/MessageA.html
133
+ - doc/MaxCube/Messages/TCP/Serializer/MessageC.html
134
+ - doc/MaxCube/Messages/TCP/Serializer/MessageF.html
135
+ - doc/MaxCube/Messages/TCP/Serializer/MessageL.html
136
+ - doc/MaxCube/Messages/TCP/Serializer/MessageM.html
137
+ - doc/MaxCube/Messages/TCP/Serializer/MessageN.html
138
+ - doc/MaxCube/Messages/TCP/Serializer/MessageQ.html
139
+ - doc/MaxCube/Messages/TCP/Serializer/MessageS.html
140
+ - doc/MaxCube/Messages/TCP/Serializer/MessageT.html
141
+ - doc/MaxCube/Messages/TCP/Serializer/MessageU.html
142
+ - doc/MaxCube/Messages/TCP/Serializer/MessageZ.html
143
+ - doc/MaxCube/Messages/UDP.html
144
+ - doc/MaxCube/Messages/UDP/Handler.html
145
+ - doc/MaxCube/Messages/UDP/Parser.html
146
+ - doc/MaxCube/Messages/UDP/Parser/MessageH.html
147
+ - doc/MaxCube/Messages/UDP/Parser/MessageI.html
148
+ - doc/MaxCube/Messages/UDP/Parser/MessageN.html
149
+ - doc/MaxCube/Messages/UDP/Serializer.html
150
+ - doc/MaxCube/Network.html
151
+ - doc/MaxCube/Network/TCP.html
152
+ - doc/MaxCube/Network/TCP/Client.html
153
+ - doc/MaxCube/Network/TCP/Client/Commands.html
154
+ - doc/MaxCube/Network/TCP/SampleServer.html
155
+ - doc/MaxCube/Network/UDP.html
156
+ - doc/MaxCube/Network/UDP/Client.html
157
+ - doc/MaxCube/Network/UDP/SampleSocket.html
158
+ - doc/MaxCube/Runner.html
159
+ - doc/_index.html
160
+ - doc/class_list.html
161
+ - doc/css/common.css
162
+ - doc/css/full_list.css
163
+ - doc/css/style.css
164
+ - doc/file.README.html
165
+ - doc/file_list.html
166
+ - doc/frames.html
167
+ - doc/index.html
168
+ - doc/js/app.js
169
+ - doc/js/full_list.js
170
+ - doc/js/jquery.js
171
+ - doc/method_list.html
172
+ - doc/top-level-namespace.html
94
173
  - lib/maxcube.rb
95
174
  - lib/maxcube/messages.rb
96
175
  - lib/maxcube/messages/handler.rb
@@ -127,12 +206,14 @@ files:
127
206
  - lib/maxcube/network/udp.rb
128
207
  - lib/maxcube/network/udp/client.rb
129
208
  - lib/maxcube/network/udp/sample_socket.rb
209
+ - lib/maxcube/runner.rb
130
210
  - lib/maxcube/version.rb
131
211
  - maxcube-client.gemspec
132
212
  homepage: https://github.com/Tomaqa/maxcube-client
133
213
  licenses:
134
214
  - MIT
135
- metadata: {}
215
+ metadata:
216
+ yard.run: yard
136
217
  post_install_message:
137
218
  rdoc_options: []
138
219
  require_paths: