linmeric 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.
- checksums.yaml +4 -4
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +51 -0
- data/Rakefile +10 -0
- data/bin/help/Help.rb +184 -0
- data/bin/help/Help_inst.rb +244 -0
- data/bin/linguide +23 -0
- data/bin/linmeric +36 -70
- data/doc/Archive.html +352 -0
- data/doc/Calculator/Evaluator.html +477 -0
- data/doc/Calculator/Lexer.html +186 -0
- data/doc/Calculator/Token.html +257 -0
- data/doc/Calculator.html +181 -0
- data/doc/Dim.html +257 -0
- data/doc/Filename.html +246 -0
- data/doc/Fixnum.html +253 -0
- data/doc/Float.html +253 -0
- data/doc/Function.html +784 -0
- data/doc/InputError.html +102 -0
- data/doc/Instructions_en.txt +6 -7
- data/doc/Instructions_it.txt +6 -9
- data/doc/Integrators.html +436 -0
- data/doc/LU.html +435 -0
- data/doc/Lexer.html +261 -0
- data/doc/Linmeric.html +109 -0
- data/doc/Listener.html +605 -0
- data/doc/Matrix.html +1719 -0
- data/doc/MyArgError.html +102 -0
- data/doc/NilClass.html +202 -0
- data/doc/Numeric.html +251 -0
- data/doc/Parser.html +389 -0
- data/doc/PrintError.html +622 -0
- data/doc/README_md.html +142 -0
- data/doc/Scp.html +530 -0
- data/doc/Sizer.html +652 -0
- data/doc/String.html +540 -0
- data/doc/Token.html +341 -0
- data/doc/Tool.html +394 -0
- data/doc/created.rid +18 -0
- data/doc/css/fonts.css +167 -0
- data/doc/css/rdoc.css +590 -0
- data/doc/fonts/Lato-Light.ttf +0 -0
- data/doc/fonts/Lato-LightItalic.ttf +0 -0
- data/doc/fonts/Lato-Regular.ttf +0 -0
- data/doc/fonts/Lato-RegularItalic.ttf +0 -0
- data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/doc/images/add.png +0 -0
- data/doc/images/arrow_up.png +0 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/transparent.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +190 -0
- data/doc/js/darkfish.js +161 -0
- data/doc/js/jquery.js +9404 -0
- data/doc/js/navigation.js +142 -0
- data/doc/js/navigation.js.gz +0 -0
- data/doc/js/search.js +109 -0
- data/doc/js/search_index.js +1 -0
- data/doc/js/search_index.js.gz +0 -0
- data/doc/js/searcher.js +228 -0
- data/doc/js/searcher.js.gz +0 -0
- data/doc/table_of_contents.html +834 -0
- data/lib/linmeric/Archive.rb +22 -1
- data/lib/linmeric/Calculator.rb +252 -0
- data/lib/linmeric/CnGal_Matrix_class.rb +130 -49
- data/lib/linmeric/CnGal_new_classes.rb +139 -37
- data/lib/linmeric/CnGal_tools.rb +23 -40
- data/lib/linmeric/Error_print.rb +35 -1
- data/lib/linmeric/Function_class.rb +70 -11
- data/lib/linmeric/Integrators.rb +81 -35
- data/lib/linmeric/LU.rb +26 -5
- data/lib/linmeric/Lexer.rb +19 -1
- data/lib/linmeric/Listener.rb +25 -5
- data/lib/linmeric/Parser.rb +23 -1
- data/lib/linmeric/Scopify.rb +52 -31
- data/lib/linmeric/Sizer.rb +43 -10
- data/lib/linmeric/Token.rb +23 -4
- data/lib/linmeric/version.rb +3 -0
- data/lib/linmeric.rb +10 -8
- data/lib/linmeric_bin.rb +12 -0
- metadata +126 -22
- data/doc/Instructions_en.html +0 -231
- data/doc/Instructions_it.html +0 -231
- data/doc/README_en.html +0 -177
- data/doc/README_en.txt +0 -30
- data/doc/README_it.html +0 -187
- data/doc/README_it.txt +0 -32
data/bin/linmeric
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
#! /usr/bin/env ruby
|
|
2
2
|
|
|
3
|
-
require "
|
|
3
|
+
require "linmeric_bin"
|
|
4
|
+
require_relative "help/Help.rb"
|
|
4
5
|
|
|
6
|
+
Help.ask if ["-h","--help"].include? ARGV[0]
|
|
5
7
|
|
|
6
8
|
@error = false
|
|
7
9
|
@vars = {}
|
|
@@ -18,19 +20,14 @@ require "linmeric"
|
|
|
18
20
|
t = b.tr
|
|
19
21
|
if a.similar_to? t then
|
|
20
22
|
a += t
|
|
21
|
-
# if a.raised_exception? != nil then
|
|
22
|
-
# puts " " + a.raised_exception?
|
|
23
|
-
# @error = true
|
|
24
|
-
# return nil
|
|
25
|
-
# end
|
|
26
23
|
return a
|
|
27
24
|
else
|
|
28
|
-
puts " Argument Error: Cannot sum #{a.getRws}x#{a.getCls} matrix with #{b.getRws}x#{b.getCls}"
|
|
25
|
+
puts " Argument Error: Cannot sum #{a.getRws}x#{a.getCls} matrix with #{b.getRws}x#{b.getCls}"
|
|
29
26
|
@error = true
|
|
30
27
|
return nil
|
|
31
28
|
end
|
|
32
29
|
else
|
|
33
|
-
puts " Math Error: cannot sum #{a.class} with #{b.class}"
|
|
30
|
+
puts " Math Error: cannot sum #{a.class} with #{b.class}"
|
|
34
31
|
@error = true
|
|
35
32
|
return nil
|
|
36
33
|
end
|
|
@@ -53,20 +50,14 @@ require "linmeric"
|
|
|
53
50
|
if a.similar_to? t then
|
|
54
51
|
a = a - t
|
|
55
52
|
else
|
|
56
|
-
puts " Argument Error: Cannot subtract #{a.getRws}x#{a.getCls} matrix with #{b.getRws}x#{b.getCls}"
|
|
53
|
+
puts " Argument Error: Cannot subtract #{a.getRws}x#{a.getCls} matrix with #{b.getRws}x#{b.getCls}"
|
|
57
54
|
@error = true
|
|
58
55
|
return nil
|
|
59
56
|
end
|
|
60
57
|
end
|
|
61
|
-
# if a.raised_exception? != nil then
|
|
62
|
-
# puts " " + a.raised_exception?
|
|
63
|
-
# @error = true
|
|
64
|
-
# return nil
|
|
65
|
-
# else
|
|
66
58
|
return a
|
|
67
|
-
# end
|
|
68
59
|
else
|
|
69
|
-
puts " Math Error: cannot subtract #{a.class} with #{b.class}"
|
|
60
|
+
puts " Math Error: cannot subtract #{a.class} with #{b.class}"
|
|
70
61
|
@error = true
|
|
71
62
|
return nil
|
|
72
63
|
end
|
|
@@ -79,14 +70,14 @@ require "linmeric"
|
|
|
79
70
|
b = replace_var(b) if b.is_a? String
|
|
80
71
|
unless @error
|
|
81
72
|
if a.is_a? Numeric or a.is_a? Matrix then
|
|
82
|
-
a == b ? (puts true) : (puts false)
|
|
73
|
+
a == b ? (puts "=> true") : (puts "=> false")
|
|
83
74
|
else
|
|
84
75
|
@vars[a] = b
|
|
85
76
|
if not b.is_a? Matrix then
|
|
86
|
-
|
|
77
|
+
puts "=> #{b}"
|
|
87
78
|
else
|
|
88
79
|
puts "=>"
|
|
89
|
-
b
|
|
80
|
+
puts b
|
|
90
81
|
end
|
|
91
82
|
end
|
|
92
83
|
end
|
|
@@ -105,12 +96,12 @@ require "linmeric"
|
|
|
105
96
|
if a.can_multiply? t then
|
|
106
97
|
return a * t
|
|
107
98
|
else
|
|
108
|
-
puts " Cannot multiply #{a.getRws}x#{a.getCls} matrix with #{b.getRws}x#{b.getCls}"
|
|
99
|
+
puts " Cannot multiply #{a.getRws}x#{a.getCls} matrix with #{b.getRws}x#{b.getCls}"
|
|
109
100
|
@error = true
|
|
110
101
|
return nil
|
|
111
102
|
end
|
|
112
103
|
else
|
|
113
|
-
puts " Cannot multiply #{a.class} with #{b.class}"
|
|
104
|
+
puts " Cannot multiply #{a.class} with #{b.class}"
|
|
114
105
|
end
|
|
115
106
|
end
|
|
116
107
|
end,
|
|
@@ -123,14 +114,12 @@ require "linmeric"
|
|
|
123
114
|
unless @error
|
|
124
115
|
if (a.can_divide? b) and b != 0 then
|
|
125
116
|
return a / b.to_f
|
|
126
|
-
#elsif (a.is_a? Matrix and b.s_a? Numeric) or (a.is_a? Numeric and b.is_a? Matrix) then
|
|
127
|
-
# return a / b
|
|
128
117
|
else
|
|
129
118
|
@error = true
|
|
130
119
|
if b == 0 then
|
|
131
|
-
puts " Math Error: division for 0"
|
|
120
|
+
puts " Math Error: division for 0"
|
|
132
121
|
else
|
|
133
|
-
puts " Math Error: invalid divison between #{a.class} and #{b.class}"
|
|
122
|
+
puts " Math Error: invalid divison between #{a.class} and #{b.class}"
|
|
134
123
|
end
|
|
135
124
|
return nil
|
|
136
125
|
end
|
|
@@ -149,12 +138,12 @@ require "linmeric"
|
|
|
149
138
|
elsif (a.is_a? Matrix and b.is_a? Numeric) or (a.is_a? Numeric and b.is_a? Matrix)
|
|
150
139
|
return a ** b
|
|
151
140
|
else
|
|
152
|
-
puts " Math Error: invalid power #{a.class}-#{b.class}"
|
|
141
|
+
puts " Math Error: invalid power #{a.class}-#{b.class}"
|
|
153
142
|
@error = true
|
|
154
143
|
return nil
|
|
155
144
|
end
|
|
156
145
|
else
|
|
157
|
-
puts " Math Error: 0^0"
|
|
146
|
+
puts " Math Error: 0^0"
|
|
158
147
|
@error = true
|
|
159
148
|
return nil
|
|
160
149
|
end
|
|
@@ -168,17 +157,13 @@ require "linmeric"
|
|
|
168
157
|
unless @error
|
|
169
158
|
if a.is_a? Matrix then
|
|
170
159
|
a.to_file(b)
|
|
171
|
-
# unless a.raised_exception? == nil
|
|
172
|
-
# puts " " + a.raised_exception?; puts
|
|
173
|
-
# @error = true
|
|
174
|
-
# end
|
|
175
160
|
else
|
|
176
161
|
if Dir.exist? File.dirname(b) then
|
|
177
162
|
File.open(b,"w") do |ln|
|
|
178
163
|
ln.puts "#{a}"
|
|
179
164
|
end
|
|
180
165
|
else
|
|
181
|
-
puts " Argument Error: Invalid directory; Directory not found"
|
|
166
|
+
puts " Argument Error: Invalid directory; Directory not found"
|
|
182
167
|
@error = true
|
|
183
168
|
end
|
|
184
169
|
end
|
|
@@ -193,7 +178,7 @@ require "linmeric"
|
|
|
193
178
|
if a.is_a? Matrix then
|
|
194
179
|
return a.tr
|
|
195
180
|
else
|
|
196
|
-
puts " Math Error: cannot traspose a #{a.class} value"
|
|
181
|
+
puts " Math Error: cannot traspose a #{a.class} value"
|
|
197
182
|
@error = true
|
|
198
183
|
return nil
|
|
199
184
|
end
|
|
@@ -208,12 +193,12 @@ require "linmeric"
|
|
|
208
193
|
if a.is_squared? then
|
|
209
194
|
return a.laplace
|
|
210
195
|
else
|
|
211
|
-
puts " Math Error: determinant on a non-squared Matrix"
|
|
196
|
+
puts " Math Error: determinant on a non-squared Matrix"
|
|
212
197
|
@error = true
|
|
213
198
|
return nil
|
|
214
199
|
end
|
|
215
200
|
else
|
|
216
|
-
puts " Math Error: determinant on #{a.class} value"
|
|
201
|
+
puts " Math Error: determinant on #{a.class} value"
|
|
217
202
|
@error = true
|
|
218
203
|
return nil
|
|
219
204
|
end
|
|
@@ -225,9 +210,9 @@ require "linmeric"
|
|
|
225
210
|
a = replace_var(a) if a.is_a? String
|
|
226
211
|
unless @error
|
|
227
212
|
if a.is_a? Matrix then
|
|
228
|
-
return a.
|
|
213
|
+
return a.norm
|
|
229
214
|
else
|
|
230
|
-
puts " Math Error: norm on a #{a.class} value"
|
|
215
|
+
puts " Math Error: norm on a #{a.class} value"
|
|
231
216
|
@error = true
|
|
232
217
|
return nil
|
|
233
218
|
end
|
|
@@ -242,7 +227,7 @@ require "linmeric"
|
|
|
242
227
|
return Matrix.identity(a) if a > 0
|
|
243
228
|
end
|
|
244
229
|
@error = true
|
|
245
|
-
puts " Argument Error: bad value #{a} for Identity Matrix"
|
|
230
|
+
puts " Argument Error: bad value #{a} for Identity Matrix"
|
|
246
231
|
return nil
|
|
247
232
|
end
|
|
248
233
|
end,
|
|
@@ -251,7 +236,7 @@ require "linmeric"
|
|
|
251
236
|
a = a - "\"" if a.is_a? String
|
|
252
237
|
return Filename.new(a) if a.is_a? String
|
|
253
238
|
@error = true
|
|
254
|
-
puts " Argument Error: bad filename #{a}"
|
|
239
|
+
puts " Argument Error: bad filename #{a}"
|
|
255
240
|
return nil
|
|
256
241
|
end,
|
|
257
242
|
|
|
@@ -303,17 +288,12 @@ require "linmeric"
|
|
|
303
288
|
b = b.to_block(2)
|
|
304
289
|
if b == nil then
|
|
305
290
|
@error = true
|
|
306
|
-
puts " Argument Error: bad function for Matrix"
|
|
291
|
+
puts " Argument Error: bad function for Matrix"
|
|
307
292
|
return nil
|
|
308
293
|
end
|
|
309
|
-
m = eval(" Matrix.new(a.sx
|
|
294
|
+
m = eval(" Matrix.new(#{a.sx},#{a.dx}) #{b}")
|
|
310
295
|
end
|
|
311
296
|
end
|
|
312
|
-
# if m.raised_exception? != nil then
|
|
313
|
-
# @error = true
|
|
314
|
-
# puts " " + m.raised_exception?; puts
|
|
315
|
-
# return nil
|
|
316
|
-
# end
|
|
317
297
|
return m
|
|
318
298
|
end
|
|
319
299
|
return nil
|
|
@@ -323,7 +303,7 @@ require "linmeric"
|
|
|
323
303
|
a = a - '"'
|
|
324
304
|
a = Function.new(a)
|
|
325
305
|
unless a.ok?
|
|
326
|
-
puts " Argument Error: bad function inserted. Maybe sintax error?"
|
|
306
|
+
puts " Argument Error: bad function inserted. Maybe sintax error?"
|
|
327
307
|
@error = true
|
|
328
308
|
return nil
|
|
329
309
|
end
|
|
@@ -340,7 +320,7 @@ require "linmeric"
|
|
|
340
320
|
return nil
|
|
341
321
|
end
|
|
342
322
|
else
|
|
343
|
-
puts " Argument Error: Bad argument #{a} for 'shw:' command"
|
|
323
|
+
puts " Argument Error: Bad argument #{a} for 'shw:' command"
|
|
344
324
|
end
|
|
345
325
|
end,
|
|
346
326
|
|
|
@@ -393,7 +373,7 @@ require "linmeric"
|
|
|
393
373
|
f = Function.new(f)
|
|
394
374
|
unless f.ok?
|
|
395
375
|
@error = true
|
|
396
|
-
puts " Argument Error: bad function for integration"
|
|
376
|
+
puts " Argument Error: bad function for integration"
|
|
397
377
|
return nil
|
|
398
378
|
end
|
|
399
379
|
else
|
|
@@ -411,7 +391,7 @@ require "linmeric"
|
|
|
411
391
|
return nil
|
|
412
392
|
end
|
|
413
393
|
if n <= 0 then
|
|
414
|
-
puts " Argument Error: bad NumPoints for integration"
|
|
394
|
+
puts " Argument Error: bad NumPoints for integration"
|
|
415
395
|
@error = true
|
|
416
396
|
return nil
|
|
417
397
|
end
|
|
@@ -438,7 +418,7 @@ def replace_var(var)
|
|
|
438
418
|
if @vars.include? var then
|
|
439
419
|
return @vars[var]
|
|
440
420
|
else
|
|
441
|
-
puts " Argument Error: variable '#{var}' not defined"
|
|
421
|
+
puts " Argument Error: variable '#{var}' not defined"
|
|
442
422
|
@error = true
|
|
443
423
|
return nil
|
|
444
424
|
end
|
|
@@ -472,7 +452,7 @@ def evaluate(token_arr)
|
|
|
472
452
|
token_arr[i+1] = @operators[token_arr[i]][token_arr[i - 1],token_arr[i + 1]]
|
|
473
453
|
end
|
|
474
454
|
else
|
|
475
|
-
puts " Unknown keyword or operator '#{token_arr[i]}'"
|
|
455
|
+
puts " Unknown keyword or operator '#{token_arr[i]}'"
|
|
476
456
|
@error = true
|
|
477
457
|
return nil
|
|
478
458
|
end
|
|
@@ -506,9 +486,9 @@ begin
|
|
|
506
486
|
string.include? "shwvar:") or @error
|
|
507
487
|
if ev.is_a? Matrix then
|
|
508
488
|
puts "=>"
|
|
509
|
-
ev
|
|
489
|
+
puts ev
|
|
510
490
|
else
|
|
511
|
-
|
|
491
|
+
puts "=> #{ev}"
|
|
512
492
|
end
|
|
513
493
|
end
|
|
514
494
|
end
|
|
@@ -516,7 +496,7 @@ begin
|
|
|
516
496
|
@error = false
|
|
517
497
|
parser.reset
|
|
518
498
|
print "Linmeric-main> "
|
|
519
|
-
reader.reset
|
|
499
|
+
# reader.reset
|
|
520
500
|
string = reader.gets
|
|
521
501
|
end
|
|
522
502
|
|
|
@@ -524,21 +504,7 @@ rescue => error
|
|
|
524
504
|
puts error
|
|
525
505
|
retry
|
|
526
506
|
end
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
##############################################
|
|
531
|
-
# TESTS #
|
|
532
|
-
##############################################
|
|
533
|
-
=begin
|
|
534
|
-
a = Matrix.new(2,3) {|i,j| i + j}
|
|
535
|
-
b = Matrix.new(3,2) {|i,j| i + j}
|
|
536
|
-
@vars = {"a" => a, "b" => b}
|
|
537
|
-
scopify = Scp.new
|
|
538
|
-
@operators[:"shwvar:" ][]#["2,3",Function.new("i+j")].show
|
|
539
|
-
#puts evaluate(Parser.parse(scopify.scopify('12=3*4')))#.show
|
|
540
|
-
puts @vars
|
|
541
|
-
=end
|
|
507
|
+
|
|
542
508
|
|
|
543
509
|
|
|
544
510
|
|
data/doc/Archive.html
ADDED
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
|
|
3
|
+
<html>
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
|
|
7
|
+
<title>class Archive - RDoc Documentation</title>
|
|
8
|
+
|
|
9
|
+
<script type="text/javascript">
|
|
10
|
+
var rdoc_rel_prefix = "./";
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<script src="./js/jquery.js"></script>
|
|
14
|
+
<script src="./js/darkfish.js"></script>
|
|
15
|
+
|
|
16
|
+
<link href="./css/fonts.css" rel="stylesheet">
|
|
17
|
+
<link href="./css/rdoc.css" rel="stylesheet">
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
<body id="top" role="document" class="class">
|
|
22
|
+
<nav role="navigation">
|
|
23
|
+
<div id="project-navigation">
|
|
24
|
+
<div id="home-section" role="region" title="Quick navigation" class="nav-section">
|
|
25
|
+
<h2>
|
|
26
|
+
<a href="./index.html" rel="home">Home</a>
|
|
27
|
+
</h2>
|
|
28
|
+
|
|
29
|
+
<div id="table-of-contents-navigation">
|
|
30
|
+
<a href="./table_of_contents.html#pages">Pages</a>
|
|
31
|
+
<a href="./table_of_contents.html#classes">Classes</a>
|
|
32
|
+
<a href="./table_of_contents.html#methods">Methods</a>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
<div id="search-section" role="search" class="project-section initially-hidden">
|
|
37
|
+
<form action="#" method="get" accept-charset="utf-8">
|
|
38
|
+
<div id="search-field-wrapper">
|
|
39
|
+
<input id="search-field" role="combobox" aria-label="Search"
|
|
40
|
+
aria-autocomplete="list" aria-controls="search-results"
|
|
41
|
+
type="text" name="search" placeholder="Search" spellcheck="false"
|
|
42
|
+
title="Type to search, Up and Down to navigate, Enter to load">
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<ul id="search-results" aria-label="Search Results"
|
|
46
|
+
aria-busy="false" aria-expanded="false"
|
|
47
|
+
aria-atomic="false" class="initially-hidden"></ul>
|
|
48
|
+
</form>
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
<div id="class-metadata">
|
|
56
|
+
|
|
57
|
+
<div id="parent-class-section" class="nav-section">
|
|
58
|
+
<h3>Parent</h3>
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
<p class="link">Object
|
|
62
|
+
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
<!-- Method Quickref -->
|
|
68
|
+
<div id="method-list-section" class="nav-section">
|
|
69
|
+
<h3>Methods</h3>
|
|
70
|
+
|
|
71
|
+
<ul class="link-list" role="directory">
|
|
72
|
+
|
|
73
|
+
<li ><a href="#method-c-new">::new</a>
|
|
74
|
+
|
|
75
|
+
<li ><a href="#method-i-next_">#next_</a>
|
|
76
|
+
|
|
77
|
+
<li ><a href="#method-i-previous">#previous</a>
|
|
78
|
+
|
|
79
|
+
<li ><a href="#method-i-store">#store</a>
|
|
80
|
+
|
|
81
|
+
<li ><a href="#method-i-top">#top</a>
|
|
82
|
+
|
|
83
|
+
</ul>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
</div>
|
|
87
|
+
</nav>
|
|
88
|
+
|
|
89
|
+
<main role="main" aria-labelledby="class-Archive">
|
|
90
|
+
<h1 id="class-Archive" class="class">
|
|
91
|
+
class Archive
|
|
92
|
+
</h1>
|
|
93
|
+
|
|
94
|
+
<section class="description">
|
|
95
|
+
|
|
96
|
+
<p>This class provides a useful object to store the command history of
|
|
97
|
+
linmeric</p>
|
|
98
|
+
<dl class="rdoc-list note-list"><dt>Author
|
|
99
|
+
<dd>
|
|
100
|
+
<p>Massimiliano Dal Mas (<a
|
|
101
|
+
href="mailto:max.codeware@gmail.com">max.codeware@gmail.com</a>)</p>
|
|
102
|
+
</dd><dt>License
|
|
103
|
+
<dd>
|
|
104
|
+
<p>Distributed under MIT license</p>
|
|
105
|
+
</dd></dl>
|
|
106
|
+
|
|
107
|
+
</section>
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
<section id="5Buntitled-5D" class="documentation-section">
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
<section id="public-class-5Buntitled-5D-method-details" class="method-section">
|
|
123
|
+
<header>
|
|
124
|
+
<h3>Public Class Methods</h3>
|
|
125
|
+
</header>
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
<div id="method-c-new" class="method-detail ">
|
|
129
|
+
|
|
130
|
+
<div class="method-heading">
|
|
131
|
+
<span class="method-name">new</span><span
|
|
132
|
+
class="method-args">()</span>
|
|
133
|
+
|
|
134
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
135
|
+
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
<div class="method-description">
|
|
140
|
+
|
|
141
|
+
<p>Creates a new <a href="Archive.html">Archive</a> objects</p>
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
<div class="method-source-code" id="new-source">
|
|
147
|
+
<pre><span class="ruby-comment"># File lib/linmeric/Archive.rb, line 12</span>
|
|
148
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>
|
|
149
|
+
<span class="ruby-ivar">@myArray</span> = []
|
|
150
|
+
<span class="ruby-ivar">@i</span> = <span class="ruby-value">0</span>
|
|
151
|
+
<span class="ruby-keyword">end</span></pre>
|
|
152
|
+
</div>
|
|
153
|
+
|
|
154
|
+
</div>
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
</div>
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
</section>
|
|
163
|
+
|
|
164
|
+
<section id="public-instance-5Buntitled-5D-method-details" class="method-section">
|
|
165
|
+
<header>
|
|
166
|
+
<h3>Public Instance Methods</h3>
|
|
167
|
+
</header>
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
<div id="method-i-next_" class="method-detail ">
|
|
171
|
+
|
|
172
|
+
<div class="method-heading">
|
|
173
|
+
<span class="method-name">next_</span><span
|
|
174
|
+
class="method-args">()</span>
|
|
175
|
+
|
|
176
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
177
|
+
|
|
178
|
+
</div>
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
<div class="method-description">
|
|
182
|
+
|
|
183
|
+
<p>Returns the next item compared to the pointer position</p>
|
|
184
|
+
<ul><li>
|
|
185
|
+
<p>*<strong>returns</strong>*: saved object; “” if the pointer is already at
|
|
186
|
+
the</p>
|
|
187
|
+
</li></ul>
|
|
188
|
+
|
|
189
|
+
<p>end of the <a href="Archive.html">Archive</a></p>
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
<div class="method-source-code" id="next_-source">
|
|
195
|
+
<pre><span class="ruby-comment"># File lib/linmeric/Archive.rb, line 51</span>
|
|
196
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">next_</span>
|
|
197
|
+
<span class="ruby-keyword">if</span> <span class="ruby-ivar">@i</span> <span class="ruby-operator"><</span> (<span class="ruby-ivar">@myArray</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)
|
|
198
|
+
<span class="ruby-ivar">@i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
199
|
+
<span class="ruby-keyword">return</span> <span class="ruby-ivar">@myArray</span>[<span class="ruby-ivar">@i</span>].<span class="ruby-identifier">clone</span>
|
|
200
|
+
<span class="ruby-keyword">else</span>
|
|
201
|
+
<span class="ruby-ivar">@i</span> = <span class="ruby-ivar">@myArray</span>.<span class="ruby-identifier">size</span>
|
|
202
|
+
<span class="ruby-keyword">return</span> <span class="ruby-string">""</span>
|
|
203
|
+
<span class="ruby-keyword">end</span>
|
|
204
|
+
<span class="ruby-ivar">@i</span> = <span class="ruby-ivar">@myArray</span>.<span class="ruby-identifier">size</span>
|
|
205
|
+
<span class="ruby-keyword">return</span> <span class="ruby-string">""</span>
|
|
206
|
+
<span class="ruby-keyword">end</span></pre>
|
|
207
|
+
</div>
|
|
208
|
+
|
|
209
|
+
</div>
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
</div>
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
<div id="method-i-previous" class="method-detail ">
|
|
218
|
+
|
|
219
|
+
<div class="method-heading">
|
|
220
|
+
<span class="method-name">previous</span><span
|
|
221
|
+
class="method-args">()</span>
|
|
222
|
+
|
|
223
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
224
|
+
|
|
225
|
+
</div>
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
<div class="method-description">
|
|
229
|
+
|
|
230
|
+
<p>Returns the previous item compared to the pointer position</p>
|
|
231
|
+
<ul><li>
|
|
232
|
+
<p>*<strong>returns</strong>*: saved object; “” if the pointer is already at
|
|
233
|
+
the</p>
|
|
234
|
+
</li></ul>
|
|
235
|
+
|
|
236
|
+
<p>beginning of the archive</p>
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
<div class="method-source-code" id="previous-source">
|
|
242
|
+
<pre><span class="ruby-comment"># File lib/linmeric/Archive.rb, line 35</span>
|
|
243
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">previous</span>
|
|
244
|
+
<span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-ivar">@i</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-keyword">then</span>
|
|
245
|
+
<span class="ruby-ivar">@i</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
|
|
246
|
+
<span class="ruby-keyword">return</span> <span class="ruby-ivar">@myArray</span>[<span class="ruby-ivar">@i</span>].<span class="ruby-identifier">clone</span>
|
|
247
|
+
<span class="ruby-keyword">else</span>
|
|
248
|
+
<span class="ruby-ivar">@i</span> = <span class="ruby-value">0</span>
|
|
249
|
+
<span class="ruby-keyword">return</span> <span class="ruby-string">""</span>
|
|
250
|
+
<span class="ruby-keyword">end</span>
|
|
251
|
+
<span class="ruby-ivar">@i</span> = <span class="ruby-value">0</span>
|
|
252
|
+
<span class="ruby-keyword">return</span> <span class="ruby-string">""</span>
|
|
253
|
+
<span class="ruby-keyword">end</span></pre>
|
|
254
|
+
</div>
|
|
255
|
+
|
|
256
|
+
</div>
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
</div>
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
<div id="method-i-store" class="method-detail ">
|
|
265
|
+
|
|
266
|
+
<div class="method-heading">
|
|
267
|
+
<span class="method-name">store</span><span
|
|
268
|
+
class="method-args">(str)</span>
|
|
269
|
+
|
|
270
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
271
|
+
|
|
272
|
+
</div>
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
<div class="method-description">
|
|
276
|
+
|
|
277
|
+
<p>Adds a new item to the archive (it keeps the last 20 items which have been
|
|
278
|
+
inserted).</p>
|
|
279
|
+
<ul><li>
|
|
280
|
+
<p>*<strong>argument</strong>*: item to be added (mainly a <a
|
|
281
|
+
href="String.html">String</a>)</p>
|
|
282
|
+
</li></ul>
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
<div class="method-source-code" id="store-source">
|
|
288
|
+
<pre><span class="ruby-comment"># File lib/linmeric/Archive.rb, line 21</span>
|
|
289
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">store</span>(<span class="ruby-identifier">str</span>)
|
|
290
|
+
<span class="ruby-keyword">if</span> <span class="ruby-ivar">@myArray</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">20</span>
|
|
291
|
+
<span class="ruby-ivar">@myArray</span> = <span class="ruby-ivar">@myArray</span>[<span class="ruby-value">1</span><span class="ruby-operator">...</span><span class="ruby-ivar">@myArray</span>.<span class="ruby-identifier">size</span>] <span class="ruby-operator">+</span> [<span class="ruby-identifier">str</span>]
|
|
292
|
+
<span class="ruby-comment"># @i = @myArray.size</span>
|
|
293
|
+
<span class="ruby-keyword">else</span>
|
|
294
|
+
<span class="ruby-ivar">@myArray</span>[<span class="ruby-ivar">@myArray</span>.<span class="ruby-identifier">size</span>] = <span class="ruby-identifier">str</span>
|
|
295
|
+
<span class="ruby-ivar">@i</span> = <span class="ruby-ivar">@myArray</span>.<span class="ruby-identifier">size</span>
|
|
296
|
+
<span class="ruby-keyword">end</span>
|
|
297
|
+
<span class="ruby-keyword">end</span></pre>
|
|
298
|
+
</div>
|
|
299
|
+
|
|
300
|
+
</div>
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
</div>
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
<div id="method-i-top" class="method-detail ">
|
|
309
|
+
|
|
310
|
+
<div class="method-heading">
|
|
311
|
+
<span class="method-name">top</span><span
|
|
312
|
+
class="method-args">()</span>
|
|
313
|
+
|
|
314
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
315
|
+
|
|
316
|
+
</div>
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
<div class="method-description">
|
|
320
|
+
|
|
321
|
+
<p>Moves the pointer to the top of the archive (the last element inserted)</p>
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
<div class="method-source-code" id="top-source">
|
|
327
|
+
<pre><span class="ruby-comment"># File lib/linmeric/Archive.rb, line 64</span>
|
|
328
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">top</span>
|
|
329
|
+
<span class="ruby-ivar">@i</span> = <span class="ruby-ivar">@myArray</span>.<span class="ruby-identifier">size</span>
|
|
330
|
+
<span class="ruby-keyword">end</span></pre>
|
|
331
|
+
</div>
|
|
332
|
+
|
|
333
|
+
</div>
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
</div>
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
</section>
|
|
342
|
+
|
|
343
|
+
</section>
|
|
344
|
+
</main>
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
<footer id="validator-badges" role="contentinfo">
|
|
348
|
+
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
|
349
|
+
<p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.0.
|
|
350
|
+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
|
351
|
+
</footer>
|
|
352
|
+
|