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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: da4d40959bf6d07f5e202592f72d0ad340f06acfbe61583f55a8edc3f69f2d75
4
- data.tar.gz: 4eeb997a9afcbf04a9c1d801d824594c7b980e41b01751827fb177fe6fb3981b
3
+ metadata.gz: 3d45c10531a22039cb0d310a2c6f10c86517b3dbab9a7c06807ff217dbe390e0
4
+ data.tar.gz: 39fbe5d2cb1fbe16a0083ae9df63986c0bbeb0c27d1a35063e4dd421500f5a11
5
5
  SHA512:
6
- metadata.gz: b9ed5f366246ab23095fab8f0bc1aa18d802fccec114c00d7aa4bc966b7196519ca2c22a02356eb4d959ee23a17e97a84dd7dea16bc12e017614b7a907bf26a3
7
- data.tar.gz: 2f966e111bfcb8589fabc925d399d68bd847d6528894c0014ba101a7671969a48ab28895d1e0c043f9677b6478179a6e78b87795c7fc0e708b8894382da89beb
6
+ metadata.gz: 88228a1652fa53e4b6d0d9cfd3976401e4439b83d7787ccf20acde4fd753827a3437522256815a0e68bc8ce0fa30f526608d7a0c9c4b5c55a5f56bb49e2aae00
7
+ data.tar.gz: d289930bebb1f6aa73301f0cbfe320f4273dc5cfb37df213e34e216145e1ad9e1d536fc33c8e1972c2730176bdcd15166d13a6f3672642489dbbd1f24db253f3
data/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ Gemfile.lock
2
+ todo.txt
3
+ data/save
4
+ .yardoc/
5
+ pkg/
6
+
data/.rubocop.yml CHANGED
@@ -27,6 +27,3 @@ Style/DoubleNegation:
27
27
 
28
28
  Style/RaiseArgs:
29
29
  EnforcedStyle: compact
30
-
31
- Documentation:
32
- Enabled: false
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ --private
data/README.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # eQ3/ELV Max! Cube TCP client
2
2
 
3
+ ## Download
4
+
5
+ Ruby [gem](https://rubygems.org/gems/maxcube-client)
6
+
7
+ [GitHub](https://github.com/Tomaqa/maxcube-client) repository
8
+
3
9
  ## Installation
4
10
 
5
11
  Add this line to your application's Gemfile:
@@ -18,10 +24,19 @@ Or install it yourself as:
18
24
 
19
25
  ## Usage
20
26
 
21
- Run `bin/maxcube-client help` and follow instructions. This script starts either TCP or UDP client. UDP client is used only for device discovering purposes yet.
27
+ Run `bin/maxcube-client help` and follow instructions. This script starts either TCP or UDP client. UDP client is used only for device discovery purposes yet.
28
+
22
29
  You can also run `bin/console`, if you want to to handle objects yourself.
23
30
 
24
- Yet there are sample servers: `bin/sample_server` (TCP) and `bin/sample_socket` (UDP), but only with very basic functions. However, they can be used to try simple connection with client.
31
+ Yet there are sample servers: `bin/sample_server` (TCP) and `bin/sample_socket` (UDP), but only with very basic features. However, they can be used to try simple connection with client.
32
+
33
+ ## Documentation
34
+
35
+ Project is documented using YARD.
36
+
37
+ MAX! Cube protocol itself is not documented here though.
38
+ You should have a look [here](https://github.com/Bouni/max-cube-protocol),
39
+ where I derived vast of specifications from.
25
40
 
26
41
  ## Development
27
42
 
data/bin/maxcube-client CHANGED
@@ -1,31 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'bundler/setup'
4
- require 'maxcube/network/tcp/client'
5
- require 'maxcube/network/udp/client'
4
+ require 'maxcube/runner'
6
5
 
7
- HELP_KEYS = %w[h -h help -help --help ? -?].freeze
8
-
9
- help = ARGV.size == 1 && HELP_KEYS.include?(ARGV.first)
10
- wrong_args = ARGV.size > 2
11
-
12
- if help || wrong_args
13
- puts "Wrong number of arguments: #{ARGV.size} (expected: 0..2)" if wrong_args
14
- puts "USAGE: ruby #{__FILE__} [<help>|<host>] [<port>]\n" \
15
- " <help> - on of these: #{HELP_KEYS}\n\n" \
16
- "If no arguments are given, UDP discovery is performed.\n" \
17
- 'Otherwise, TCP client is launched (unless help command entered).'
18
- exit
19
- end
20
-
21
- if ARGV.empty?
22
- puts "No arguments given - performing UDP discovery ...\n" \
23
- "(For usage message, type one of these: #{HELP_KEYS})\n\n"
24
- client = MaxCube::Network::UDP::Client.new
25
- client.discovery
26
- client.close
27
- exit
28
- end
29
-
30
- client = MaxCube::Network::TCP::Client.new
31
- client.connect(*ARGV)
6
+ MaxCube::Runner.new(ARGV).run
data/doc/MaxCube.html ADDED
@@ -0,0 +1,502 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Module: MaxCube
8
+
9
+ &mdash; Documentation by YARD 0.9.12
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "MaxCube";
19
+ relpath = '';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="_index.html">Index (M)</a> &raquo;
40
+
41
+
42
+ <span class="title">MaxCube</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Module: MaxCube
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+ <dl>
80
+ <dt>Defined in:</dt>
81
+ <dd>lib/maxcube.rb<span class="defines">,<br />
82
+ lib/maxcube/runner.rb,<br /> lib/maxcube/network.rb,<br /> lib/maxcube/version.rb,<br /> lib/maxcube/messages.rb,<br /> lib/maxcube/network/tcp.rb,<br /> lib/maxcube/network/udp.rb,<br /> lib/maxcube/messages/tcp.rb,<br /> lib/maxcube/messages/udp.rb,<br /> lib/maxcube/messages/parser.rb,<br /> lib/maxcube/messages/handler.rb,<br /> lib/maxcube/network/tcp/client.rb,<br /> lib/maxcube/network/udp/client.rb,<br /> lib/maxcube/messages/serializer.rb,<br /> lib/maxcube/messages/tcp/parser.rb,<br /> lib/maxcube/messages/tcp/type/a.rb,<br /> lib/maxcube/messages/tcp/type/c.rb,<br /> lib/maxcube/messages/tcp/type/f.rb,<br /> lib/maxcube/messages/tcp/type/h.rb,<br /> lib/maxcube/messages/tcp/type/l.rb,<br /> lib/maxcube/messages/tcp/type/m.rb,<br /> lib/maxcube/messages/tcp/type/n.rb,<br /> lib/maxcube/messages/tcp/type/q.rb,<br /> lib/maxcube/messages/tcp/type/s.rb,<br /> lib/maxcube/messages/tcp/type/t.rb,<br /> lib/maxcube/messages/tcp/type/u.rb,<br /> lib/maxcube/messages/tcp/type/z.rb,<br /> lib/maxcube/messages/udp/parser.rb,<br /> lib/maxcube/messages/udp/type/h.rb,<br /> lib/maxcube/messages/udp/type/i.rb,<br /> lib/maxcube/messages/udp/type/n.rb,<br /> lib/maxcube/messages/tcp/handler.rb,<br /> lib/maxcube/messages/udp/handler.rb,<br /> lib/maxcube/messages/tcp/serializer.rb,<br /> lib/maxcube/messages/udp/serializer.rb,<br /> lib/maxcube/network/tcp/sample_server.rb,<br /> lib/maxcube/network/udp/sample_socket.rb,<br /> lib/maxcube/network/tcp/client/commands.rb</span>
83
+ </dd>
84
+ </dl>
85
+
86
+ </div>
87
+
88
+ <h2>Overview</h2><div class="docstring">
89
+ <div class="discussion">
90
+
91
+ <p>Root project module that contains only project-related utilities</p>
92
+
93
+
94
+ </div>
95
+ </div>
96
+ <div class="tags">
97
+
98
+
99
+ </div><h2>Defined Under Namespace</h2>
100
+ <p class="children">
101
+
102
+
103
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="MaxCube/Messages.html" title="MaxCube::Messages (module)">Messages</a></span>, <span class='object_link'><a href="MaxCube/Network.html" title="MaxCube::Network (module)">Network</a></span>
104
+
105
+
106
+
107
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="MaxCube/Runner.html" title="MaxCube::Runner (class)">Runner</a></span>
108
+
109
+
110
+ </p>
111
+
112
+ <h2>Constant Summary</h2>
113
+ <dl class="constants">
114
+
115
+ <dt id="VERSION-constant" class="">VERSION =
116
+ <div class="docstring">
117
+ <div class="discussion">
118
+
119
+ <p>Project (package) version</p>
120
+
121
+
122
+ </div>
123
+ </div>
124
+ <div class="tags">
125
+
126
+
127
+ </div>
128
+ </dt>
129
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>0.4.1</span><span class='tstring_end'>&#39;</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
130
+
131
+ </dl>
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+ <h2>
141
+ Class Method Summary
142
+ <small><a href="#" class="summary_toggle">collapse</a></small>
143
+ </h2>
144
+
145
+ <ul class="summary">
146
+
147
+ <li class="public ">
148
+ <span class="summary_signature">
149
+
150
+ <a href="#bin_dir-class_method" title="bin_dir (class method)">.<strong>bin_dir</strong> &#x21d2; String </a>
151
+
152
+
153
+
154
+ </span>
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+ <span class="summary_desc"><div class='inline'>
165
+ <p>Gets path to <code>bin/</code> project directory with executables.</p>
166
+ </div></span>
167
+
168
+ </li>
169
+
170
+
171
+ <li class="public ">
172
+ <span class="summary_signature">
173
+
174
+ <a href="#data_dir-class_method" title="data_dir (class method)">.<strong>data_dir</strong> &#x21d2; String </a>
175
+
176
+
177
+
178
+ </span>
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+ <span class="summary_desc"><div class='inline'>
189
+ <p>Gets path to <code>data/</code> project directory with input/output data
190
+ for clients and servers.</p>
191
+ </div></span>
192
+
193
+ </li>
194
+
195
+
196
+ <li class="public ">
197
+ <span class="summary_signature">
198
+
199
+ <a href="#lib_dir-class_method" title="lib_dir (class method)">.<strong>lib_dir</strong> &#x21d2; String </a>
200
+
201
+
202
+
203
+ </span>
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+ <span class="summary_desc"><div class='inline'>
214
+ <p>Gets path to <code>lib/</code> project directory with Ruby source files.</p>
215
+ </div></span>
216
+
217
+ </li>
218
+
219
+
220
+ <li class="public ">
221
+ <span class="summary_signature">
222
+
223
+ <a href="#root_dir-class_method" title="root_dir (class method)">.<strong>root_dir</strong> &#x21d2; String </a>
224
+
225
+
226
+
227
+ </span>
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+ <span class="summary_desc"><div class='inline'>
238
+ <p>Gets path to project root directory.</p>
239
+ </div></span>
240
+
241
+ </li>
242
+
243
+
244
+ </ul>
245
+
246
+
247
+
248
+
249
+ <div id="class_method_details" class="method_details_list">
250
+ <h2>Class Method Details</h2>
251
+
252
+
253
+ <div class="method_details first">
254
+ <h3 class="signature first" id="bin_dir-class_method">
255
+
256
+ .<strong>bin_dir</strong> &#x21d2; <tt>String</tt>
257
+
258
+
259
+
260
+
261
+
262
+ </h3><div class="docstring">
263
+ <div class="discussion">
264
+
265
+ <p>Gets path to <code>bin/</code> project directory with executables</p>
266
+
267
+
268
+ </div>
269
+ </div>
270
+ <div class="tags">
271
+
272
+ <p class="tag_title">Returns:</p>
273
+ <ul class="return">
274
+
275
+ <li>
276
+
277
+
278
+ <span class='type'>(<tt>String</tt>)</span>
279
+
280
+
281
+
282
+ &mdash;
283
+ <div class='inline'>
284
+ <p>path to <code>bin/</code> project directory</p>
285
+ </div>
286
+
287
+ </li>
288
+
289
+ </ul>
290
+
291
+ </div><table class="source_code">
292
+ <tr>
293
+ <td>
294
+ <pre class="lines">
295
+
296
+
297
+ 20
298
+ 21
299
+ 22</pre>
300
+ </td>
301
+ <td>
302
+ <pre class="code"><span class="info file"># File 'lib/maxcube.rb', line 20</span>
303
+
304
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_bin_dir'>bin_dir</span>
305
+ <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='id identifier rubyid_root_dir'>root_dir</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>bin</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
306
+ <span class='kw'>end</span></pre>
307
+ </td>
308
+ </tr>
309
+ </table>
310
+ </div>
311
+
312
+ <div class="method_details ">
313
+ <h3 class="signature " id="data_dir-class_method">
314
+
315
+ .<strong>data_dir</strong> &#x21d2; <tt>String</tt>
316
+
317
+
318
+
319
+
320
+
321
+ </h3><div class="docstring">
322
+ <div class="discussion">
323
+
324
+ <p>Gets path to <code>data/</code> project directory with input/output data
325
+ for clients and servers</p>
326
+
327
+
328
+ </div>
329
+ </div>
330
+ <div class="tags">
331
+
332
+ <p class="tag_title">Returns:</p>
333
+ <ul class="return">
334
+
335
+ <li>
336
+
337
+
338
+ <span class='type'>(<tt>String</tt>)</span>
339
+
340
+
341
+
342
+ &mdash;
343
+ <div class='inline'>
344
+ <p>path to <code>data/</code> project directory</p>
345
+ </div>
346
+
347
+ </li>
348
+
349
+ </ul>
350
+
351
+ </div><table class="source_code">
352
+ <tr>
353
+ <td>
354
+ <pre class="lines">
355
+
356
+
357
+ 33
358
+ 34
359
+ 35</pre>
360
+ </td>
361
+ <td>
362
+ <pre class="code"><span class="info file"># File 'lib/maxcube.rb', line 33</span>
363
+
364
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_data_dir'>data_dir</span>
365
+ <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='id identifier rubyid_root_dir'>root_dir</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>data</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
366
+ <span class='kw'>end</span></pre>
367
+ </td>
368
+ </tr>
369
+ </table>
370
+ </div>
371
+
372
+ <div class="method_details ">
373
+ <h3 class="signature " id="lib_dir-class_method">
374
+
375
+ .<strong>lib_dir</strong> &#x21d2; <tt>String</tt>
376
+
377
+
378
+
379
+
380
+
381
+ </h3><div class="docstring">
382
+ <div class="discussion">
383
+
384
+ <p>Gets path to <code>lib/</code> project directory with Ruby source files</p>
385
+
386
+
387
+ </div>
388
+ </div>
389
+ <div class="tags">
390
+
391
+ <p class="tag_title">Returns:</p>
392
+ <ul class="return">
393
+
394
+ <li>
395
+
396
+
397
+ <span class='type'>(<tt>String</tt>)</span>
398
+
399
+
400
+
401
+ &mdash;
402
+ <div class='inline'>
403
+ <p>path to <code>lib/</code> project directory</p>
404
+ </div>
405
+
406
+ </li>
407
+
408
+ </ul>
409
+
410
+ </div><table class="source_code">
411
+ <tr>
412
+ <td>
413
+ <pre class="lines">
414
+
415
+
416
+ 26
417
+ 27
418
+ 28</pre>
419
+ </td>
420
+ <td>
421
+ <pre class="code"><span class="info file"># File 'lib/maxcube.rb', line 26</span>
422
+
423
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_lib_dir'>lib_dir</span>
424
+ <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='id identifier rubyid_root_dir'>root_dir</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>lib</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
425
+ <span class='kw'>end</span></pre>
426
+ </td>
427
+ </tr>
428
+ </table>
429
+ </div>
430
+
431
+ <div class="method_details ">
432
+ <h3 class="signature " id="root_dir-class_method">
433
+
434
+ .<strong>root_dir</strong> &#x21d2; <tt>String</tt>
435
+
436
+
437
+
438
+
439
+
440
+ </h3><div class="docstring">
441
+ <div class="discussion">
442
+
443
+ <p>Gets path to project root directory</p>
444
+
445
+
446
+ </div>
447
+ </div>
448
+ <div class="tags">
449
+
450
+ <p class="tag_title">Returns:</p>
451
+ <ul class="return">
452
+
453
+ <li>
454
+
455
+
456
+ <span class='type'>(<tt>String</tt>)</span>
457
+
458
+
459
+
460
+ &mdash;
461
+ <div class='inline'>
462
+ <p>path to project root directory</p>
463
+ </div>
464
+
465
+ </li>
466
+
467
+ </ul>
468
+
469
+ </div><table class="source_code">
470
+ <tr>
471
+ <td>
472
+ <pre class="lines">
473
+
474
+
475
+ 14
476
+ 15
477
+ 16</pre>
478
+ </td>
479
+ <td>
480
+ <pre class="code"><span class="info file"># File 'lib/maxcube.rb', line 14</span>
481
+
482
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_root_dir'>root_dir</span>
483
+ <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span> <span class='id identifier rubyid___dir__'>__dir__</span>
484
+ <span class='kw'>end</span></pre>
485
+ </td>
486
+ </tr>
487
+ </table>
488
+ </div>
489
+
490
+ </div>
491
+
492
+ </div>
493
+
494
+ <div id="footer">
495
+ Generated on Fri Feb 16 13:44:01 2018 by
496
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
497
+ 0.9.12 (ruby-2.5.0).
498
+ </div>
499
+
500
+ </div>
501
+ </body>
502
+ </html>