kyanite 0.6.1 → 0.7.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/Div +6 -32
- data/{History.txt → History.rdoc} +8 -0
- data/{License.txt → License.rdoc} +0 -0
- data/Manifest.txt +6 -21
- data/README.rdoc +44 -0
- data/Rakefile.rb +19 -68
- data/console.rb +2 -4
- data/lib/kyanite.rb +151 -14
- data/lib/kyanite/array.rb +127 -4
- data/lib/kyanite/basics.rb +3 -7
- data/lib/kyanite/dictionary.rb +19 -21
- data/lib/kyanite/enumerable/enumerable_enumerables.rb +22 -24
- data/lib/kyanite/enumerable/enumerable_numerics.rb +51 -49
- data/lib/kyanite/enumerable/enumerable_strings.rb +18 -25
- data/lib/kyanite/enumerable/structure.rb +46 -58
- data/lib/kyanite/general/callerutils.rb +30 -28
- data/lib/kyanite/general/classutils.rb +73 -63
- data/lib/kyanite/general/kernel.rb +45 -64
- data/lib/kyanite/general/object.rb +22 -46
- data/lib/kyanite/general/true_false.rb +33 -27
- data/lib/kyanite/general/undoable.rb +12 -16
- data/lib/kyanite/hash.rb +63 -58
- data/lib/kyanite/numeric.rb +14 -1
- data/lib/kyanite/numeric/float.rb +32 -22
- data/lib/kyanite/numeric/integer.rb +12 -20
- data/lib/kyanite/optimizer.rb +41 -24
- data/lib/kyanite/range.rb +42 -22
- data/lib/kyanite/set.rb +56 -63
- data/lib/kyanite/string.rb +1 -2
- data/lib/kyanite/string/cast.rb +61 -37
- data/lib/kyanite/string/chars.rb +66 -36
- data/lib/kyanite/string/chars_const.rb +4 -3
- data/lib/kyanite/string/diff.rb +64 -34
- data/lib/kyanite/string/include.rb +16 -9
- data/lib/kyanite/string/list.rb +38 -8
- data/lib/kyanite/string/misc.rb +64 -0
- data/lib/kyanite/string/nested.rb +39 -22
- data/lib/kyanite/string/random.rb +117 -47
- data/lib/kyanite/string/split.rb +84 -45
- data/lib/kyanite/symbol.rb +30 -21
- data/lib/kyanite/tree.rb +33 -28
- data/test/_start_all.rb +18 -15
- data/test/array/test_array.rb +5 -7
- data/test/enumerable/test_enumerable_enumerables.rb +11 -15
- data/test/enumerable/test_enumerable_numerics.rb +50 -54
- data/test/enumerable/test_enumerable_strings.rb +8 -11
- data/test/enumerable/test_structure.rb +6 -8
- data/test/general/test_classutils.rb +9 -9
- data/test/general/test_object.rb +4 -5
- data/test/general/test_true_false.rb +4 -5
- data/test/numeric/test_numeric_integer.rb +6 -6
- data/test/string/test_cast.rb +4 -5
- data/test/string/test_chars.rb +6 -7
- data/test/string/test_diff.rb +4 -5
- data/test/string/test_list.rb +4 -5
- data/test/string/test_misc.rb +58 -0
- data/test/string/test_nested.rb +4 -5
- data/test/string/test_split.rb +10 -5
- data/test/test_dictionary.rb +4 -6
- data/test/test_hash.rb +5 -7
- data/test/test_optimizer.rb +4 -5
- data/test/test_range.rb +8 -9
- data/test/test_set.rb +7 -7
- data/test/test_tree.rb +7 -10
- data/version.rb +8 -0
- metadata +32 -33
- data/README.txt +0 -47
- data/lib/kyanite/array/array.rb +0 -140
- data/lib/kyanite/array/array2.rb +0 -142
- data/lib/kyanite/array/matrix2.rb +0 -120
- data/lib/kyanite/hoe.rb +0 -2
- data/lib/kyanite/matrix2.rb +0 -2
- data/lib/kyanite/numeric/numeric.rb +0 -54
- data/lib/kyanite/operation.rb +0 -5
- data/lib/kyanite/operation/call_tracker.rb +0 -69
- data/lib/kyanite/operation/hoe.rb +0 -12
- data/lib/kyanite/operation/rake.rb +0 -298
- data/lib/kyanite/operation/regexp.rb +0 -28
- data/lib/kyanite/operation/unit_test.rb +0 -50
- data/lib/kyanite/rake.rb +0 -2
- data/lib/kyanite/smart_load_path.rb +0 -6
- data/lib/kyanite/string/div.rb +0 -28
- data/lib/kyanite/string/mgsub.rb +0 -43
- data/lib/kyanite/unit_test.rb +0 -2
- data/test/array/test_matrix2.rb +0 -166
- data/test/string/test_mgsub.rb +0 -58
data/lib/kyanite/array.rb
CHANGED
@@ -1,6 +1,129 @@
|
|
1
1
|
# ruby encoding: utf-8
|
2
|
+
#
|
3
|
+
if $0 == __FILE__
|
4
|
+
require 'drumherum'
|
5
|
+
smart_init
|
6
|
+
end
|
2
7
|
|
3
|
-
require '
|
4
|
-
require '
|
5
|
-
require '
|
6
|
-
require '
|
8
|
+
require 'facets/array/delete' # Methoden delete_unless, delete_values, delete_values_at
|
9
|
+
require 'facets/array/rotate' # Methoden rotate, rotate!
|
10
|
+
require 'facets/array/select' # Methode select!
|
11
|
+
require 'facets/to_hash' # Methode to_h (in der Facets-Bibliothek falsch einsortiert?)
|
12
|
+
|
13
|
+
require 'kyanite/enumerable/enumerable_enumerables'
|
14
|
+
require 'kyanite/enumerable/enumerable_numerics'
|
15
|
+
require 'kyanite/enumerable/enumerable_strings'
|
16
|
+
require 'kyanite/enumerable' # ist eigentlich nicht nötig?
|
17
|
+
require 'kyanite/general/object' # Methode respond
|
18
|
+
require 'kyanite/general/classutils' # <=> für class
|
19
|
+
require 'kyanite/symbol' # size
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
# @!macro array
|
24
|
+
#
|
25
|
+
# === Required from {http://rubyworks.github.com/rubyfaux/?doc=http://rubyworks.github.com/facets/docs/facets-2.9.3/core.json#api-class-Array Facets Array}:
|
26
|
+
# [+delete_unless(&block)+] Inverse of +delete_if+
|
27
|
+
# [+delete_values(*values)+] Delete multiple values from array (findet und löscht bestimmte Werte)
|
28
|
+
# [+delete_values_at(*selectors)+] Delete multiple values from array given indexes or index range (löscht Elemente an bestimmten Positionen)
|
29
|
+
# [+rotate(n=1)+] Rotates an array's elements from back to front n times (alles rückt n Positionen auf)
|
30
|
+
# [+select!{ |obj| block }+] As with +select+ but modifies the Array in place.
|
31
|
+
# [+to_h(arrayed=nil)+] Converts a two-element associative array into a hash.
|
32
|
+
#
|
33
|
+
class Array
|
34
|
+
|
35
|
+
|
36
|
+
# Cuts the front portion, and returns the rest.
|
37
|
+
# If the remainder is only one element, it' not returned as an array but as single element.
|
38
|
+
# Useful for recursions. Example:
|
39
|
+
# [1,2,3].shift_complement => [2,3]
|
40
|
+
# [1,2,3].shift_complement.shift_complement => 3
|
41
|
+
# [1,2,3].shift_complement.shift_complement.shift_complement => nil
|
42
|
+
#
|
43
|
+
# See tests and examples {TestKyaniteArray#test_array_shift_complement here}.
|
44
|
+
#
|
45
|
+
def shift_complement
|
46
|
+
if self.size > 2
|
47
|
+
self[1..-1]
|
48
|
+
else
|
49
|
+
self[-1]
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
# Rephrases the index of an Array pos / neg / inv.
|
58
|
+
# [:pos] The index is rephrased as a positive integer
|
59
|
+
# [:neg] The index is rephrased as a negative integer
|
60
|
+
# [:inv] if it was positive, then it will get negative, and vice versa
|
61
|
+
#
|
62
|
+
# @return [Integer]
|
63
|
+
#
|
64
|
+
# See tests and examples {TestKyaniteArray#test_rephrase_index here}
|
65
|
+
#
|
66
|
+
def rephrase_index(i, style=:inv)
|
67
|
+
return i if i > (size-1)
|
68
|
+
return i if i < -size
|
69
|
+
case style
|
70
|
+
when :inv
|
71
|
+
if i >=0 # pos >> neg
|
72
|
+
(i - size)
|
73
|
+
else # neg >> pos
|
74
|
+
(i + size)
|
75
|
+
end
|
76
|
+
when :pos
|
77
|
+
if i >= 0 # pos bleibt
|
78
|
+
i
|
79
|
+
else # neg >> pos
|
80
|
+
(i + size)
|
81
|
+
end
|
82
|
+
when :neg
|
83
|
+
if i >= 0 # pos >> neg
|
84
|
+
(i - size)
|
85
|
+
else # neg bleibt
|
86
|
+
i
|
87
|
+
end
|
88
|
+
end #case
|
89
|
+
end #def
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
end # class Array
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
if defined? TransparentNil
|
100
|
+
class NilClass
|
101
|
+
def shift_complement; nil; end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
class Numeric
|
107
|
+
# +nil+, Complements {Array#shift_complement}.
|
108
|
+
# @return [NilClass]
|
109
|
+
def shift_complement
|
110
|
+
nil
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
|
data/lib/kyanite/basics.rb
CHANGED
@@ -6,9 +6,7 @@
|
|
6
6
|
# innerhalb von Verzeichnissen
|
7
7
|
#
|
8
8
|
|
9
|
-
|
10
|
-
require 'kyanite/array/array' # aber nicht array2 und matrix2
|
11
|
-
|
9
|
+
require 'kyanite/array'
|
12
10
|
# require 'kyanite/general'
|
13
11
|
# require 'kyanite/general/callerutils'
|
14
12
|
require 'kyanite/general/classutils'
|
@@ -19,16 +17,14 @@
|
|
19
17
|
# require 'kyanite/general/undoable'
|
20
18
|
|
21
19
|
require 'kyanite/numeric'
|
22
|
-
# require 'kyanite/operation' # nur manuell
|
23
20
|
|
24
21
|
# require 'kyanite/string'
|
25
22
|
# require 'kyanite/string/cast'
|
26
23
|
# require 'kyanite/string/chars'
|
27
24
|
# require 'kyanite/string/diff'
|
28
|
-
# require 'kyanite/string/div'
|
29
25
|
require 'kyanite/string/include'
|
30
26
|
# require 'kyanite/string/list'
|
31
|
-
require 'kyanite/string/
|
27
|
+
require 'kyanite/string/misc'
|
32
28
|
# require 'kyanite/string/nested'
|
33
29
|
# require 'kyanite/string/random'
|
34
30
|
# require 'kyanite/string/split'
|
@@ -48,7 +44,7 @@
|
|
48
44
|
# require 'kyanite/set'
|
49
45
|
require 'kyanite/symbol'
|
50
46
|
# require 'kyanite/tree'
|
51
|
-
|
47
|
+
|
52
48
|
|
53
49
|
# ----------------------------------------------------------------
|
54
50
|
# Außerhalb
|
data/lib/kyanite/dictionary.rb
CHANGED
@@ -1,4 +1,10 @@
|
|
1
1
|
# ruby encoding: utf-8
|
2
|
+
# ü
|
3
|
+
if $0 == __FILE__
|
4
|
+
require 'drumherum'
|
5
|
+
smart_init
|
6
|
+
end
|
7
|
+
|
2
8
|
require 'hashery' # old: 'facets/dictionary'
|
3
9
|
unless defined? ENUMERABLE_REQUIRED
|
4
10
|
require 'kyanite/enumerable' # is_collection?
|
@@ -7,16 +13,8 @@ end
|
|
7
13
|
|
8
14
|
|
9
15
|
|
10
|
-
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
# == *Tools* *For* *Facets* *Dictionary*
|
15
|
-
# A Dictionary is a ordered Hash.
|
16
|
-
# Expands {Facets/Dictionary}[http://facets.rubyforge.org/doc/api/more/classes/Dictionary.html].
|
17
|
-
# See TestKyaniteDictionary for tests and examples.
|
18
|
-
#
|
19
|
-
#
|
16
|
+
|
17
|
+
# @!macro dictionary
|
20
18
|
class Dictionary < Hashery::Dictionary
|
21
19
|
|
22
20
|
def fetch_by_index(index)
|
@@ -55,9 +53,11 @@ class Dictionary < Hashery::Dictionary
|
|
55
53
|
end
|
56
54
|
|
57
55
|
|
56
|
+
|
57
|
+
|
58
58
|
class Hash
|
59
59
|
|
60
|
-
#
|
60
|
+
# @return [Dictionary]
|
61
61
|
def to_dictionary
|
62
62
|
result = Dictionary.new
|
63
63
|
self.each do | key, value |
|
@@ -71,25 +71,23 @@ end
|
|
71
71
|
|
72
72
|
class Array
|
73
73
|
|
74
|
-
#
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
# Liefert ein Dictionary (das ist ein geordneter Hash)
|
79
|
-
#
|
80
|
-
# TODO: effizienter
|
74
|
+
# @!group Cast
|
75
|
+
# Returns {Dictionary}
|
76
|
+
# @return [Dictionary]
|
81
77
|
def to_dictionary
|
78
|
+
# TODO: effizienter
|
82
79
|
result = Dictionary.new
|
83
80
|
self.each do | zeile |
|
84
81
|
result << zeile
|
85
82
|
end
|
86
83
|
result
|
87
84
|
end
|
85
|
+
# @!endgroup
|
88
86
|
|
89
87
|
#funktioniert nicht
|
90
|
-
def to_dictionary2 # :nodoc:
|
91
|
-
Dictionary.new(self.flatten)
|
92
|
-
end
|
88
|
+
# def to_dictionary2 # :nodoc:
|
89
|
+
# Dictionary.new(self.flatten)
|
90
|
+
# end
|
93
91
|
|
94
92
|
end
|
95
93
|
|
@@ -1,8 +1,14 @@
|
|
1
1
|
# ruby encoding: utf-8
|
2
|
+
# ü
|
3
|
+
if $0 == __FILE__
|
4
|
+
require 'drumherum'
|
5
|
+
smart_init
|
6
|
+
end
|
7
|
+
|
2
8
|
|
3
9
|
module Enumerable
|
4
10
|
|
5
|
-
# In-place-
|
11
|
+
# In-place-variant of +transpose+.
|
6
12
|
def transpose!
|
7
13
|
self.replace(self.transpose)
|
8
14
|
end
|
@@ -10,25 +16,19 @@ module Enumerable
|
|
10
16
|
|
11
17
|
end
|
12
18
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
#
|
18
|
-
# Für zweidimensionale Enumerables bzw. Aufzählungen von Objekten, die wiederum aufzählbar sind.
|
19
|
-
# See TestKyaniteEnumerableEnumerables for tests and examples.
|
20
|
-
# See ArrayOfEnumerables for an Array with modul EnumerableEnumerables included.
|
21
|
-
#
|
22
|
-
#
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
# @!macro enum_of_enums
|
23
24
|
module EnumerableEnumerables
|
24
25
|
|
25
|
-
#
|
26
|
-
# Maßgeblich ist die erste Zeile.
|
26
|
+
# Makes the Enumerable rectangular (= strict two-dimensional). The first row is essential.
|
27
27
|
#
|
28
|
-
#
|
28
|
+
# See tests and examples {TestKyaniteEnumerableEnumerables#test_rectangle1 here}.
|
29
29
|
def rectangle
|
30
30
|
qsize = self[0].size
|
31
|
-
result =
|
31
|
+
result = ArrayOfEnumerables.new
|
32
32
|
self.each do |zeile|
|
33
33
|
size_diff = qsize - zeile.size
|
34
34
|
# so lassen oder zuschneiden
|
@@ -46,14 +46,8 @@ end
|
|
46
46
|
|
47
47
|
|
48
48
|
|
49
|
-
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
# == *Array* *Of* *Enumerations*
|
54
|
-
# An ArrayOfEnumerables is an Array with modul EnumerableEnumerables included.
|
55
|
-
# See TestKyaniteEnumerableEnumerables for tests and examples.
|
56
|
-
#
|
49
|
+
|
50
|
+
# @!macro enum_of_enums
|
57
51
|
class ArrayOfEnumerables < Array
|
58
52
|
include EnumerableEnumerables
|
59
53
|
end
|
@@ -61,10 +55,14 @@ end
|
|
61
55
|
|
62
56
|
class Array
|
63
57
|
|
64
|
-
#
|
58
|
+
# @!group Cast
|
59
|
+
# Returns {ArrayOfEnumerables} (this is an {Array} with modul {EnumerableEnumerables} included)
|
60
|
+
# @return [ArrayOfEnumerables]
|
65
61
|
def to_array_of_enumerables
|
66
62
|
ArrayOfEnumerables.new(self)
|
67
63
|
end
|
64
|
+
#@!endgroup
|
65
|
+
|
68
66
|
end
|
69
67
|
|
70
68
|
|
@@ -1,24 +1,26 @@
|
|
1
1
|
# ruby encoding: utf-8
|
2
|
+
# ü
|
3
|
+
if $0 == __FILE__
|
4
|
+
require 'drumherum'
|
5
|
+
smart_init
|
6
|
+
end
|
2
7
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
#
|
8
|
-
# See TestKyaniteEnumerableNumerics for tests and examples.
|
9
|
-
# See ArrayOfNumerics for an Array with modul EnumerableNumerics included.
|
10
|
-
#
|
11
|
-
#
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
# @!macro enum_of_numerics
|
12
13
|
module EnumerableNumerics
|
13
14
|
|
14
15
|
|
15
16
|
# ======================================================================================
|
16
|
-
#
|
17
|
+
# @!group Mean Values
|
17
18
|
#
|
18
19
|
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
20
|
+
# Arithmetic mean
|
21
|
+
#
|
22
|
+
# Tests and examples {TestKyaniteEnumerableNumerics here}.
|
23
|
+
# @return [Float]
|
22
24
|
def mean
|
23
25
|
self.inject(0.0) { |sum, i | sum += i } / self.length.to_f
|
24
26
|
end
|
@@ -26,15 +28,14 @@ module EnumerableNumerics
|
|
26
28
|
alias average mean
|
27
29
|
alias mean_arithmetric mean
|
28
30
|
|
29
|
-
|
30
|
-
#
|
31
|
-
# Normalerweise ist der harmonische Mittelwert nur für positive Zahlen sinnvoll definiert.
|
32
|
-
# Mit der Option <tt>:allow_negative => true </tt>kann man aber auch negative Zahlen mit einbeziehen.
|
33
|
-
# Dann wird der harmonische Mittelwert aller positiven Elemente mit dem
|
34
|
-
# harmonische Mittelwert aller negativen Elemente verrechnet (als gewichtetes arithmetisches Mittel).
|
31
|
+
|
32
|
+
# Harmonic mean
|
35
33
|
#
|
36
|
-
#
|
37
|
-
#
|
34
|
+
# Usually, the harmonic mean is defined only for positive numbers.
|
35
|
+
# The option <tt>:allow_negative => true </tt> can also include negative numbers in the calculation.
|
36
|
+
# Then the result will be a weighted arithmetic mean of the harmonic mean of all positive elements
|
37
|
+
# and the harmonic mean of all negative elements.
|
38
|
+
# @return [Float]
|
38
39
|
def mean_harmonic( options={} )
|
39
40
|
return 0 if self.empty?
|
40
41
|
return self.first if self.size == 1
|
@@ -45,8 +46,8 @@ module EnumerableNumerics
|
|
45
46
|
return self.size / summe
|
46
47
|
|
47
48
|
else
|
48
|
-
positives =
|
49
|
-
negatives =
|
49
|
+
positives = ArrayOfNumerics.new
|
50
|
+
negatives = ArrayOfNumerics.new
|
50
51
|
self.each do |e|
|
51
52
|
if e >= 0
|
52
53
|
positives << e
|
@@ -70,7 +71,9 @@ module EnumerableNumerics
|
|
70
71
|
end #def
|
71
72
|
|
72
73
|
|
73
|
-
|
74
|
+
|
75
|
+
# Geometric mean
|
76
|
+
# @return [Float]
|
74
77
|
def mean_geometric
|
75
78
|
self.prd ** ( 1.0/self.size )
|
76
79
|
end
|
@@ -78,32 +81,34 @@ module EnumerableNumerics
|
|
78
81
|
|
79
82
|
|
80
83
|
# ======================================================================================
|
81
|
-
#
|
84
|
+
# @!group Sum, Product, Parallel
|
82
85
|
#
|
83
86
|
|
84
87
|
|
85
|
-
#
|
88
|
+
# Sum
|
86
89
|
#
|
87
|
-
#
|
88
|
-
#
|
89
|
-
#
|
90
|
+
# Tests and examples {TestKyaniteEnumerableNumerics here}.
|
91
|
+
# @return [Numeric]
|
90
92
|
def summation
|
93
|
+
# Methode darf nicht sum heißen, kollidiert sonst schnell mit ActiveRecord.
|
91
94
|
self.inject(0.0) { |sum, i | sum += i }
|
92
95
|
end
|
93
96
|
|
94
97
|
|
95
|
-
#
|
96
|
-
#
|
97
|
-
# Tests and examples
|
98
|
-
#
|
98
|
+
# Product
|
99
|
+
#
|
100
|
+
# Tests and examples {TestKyaniteEnumerableNumerics here}.
|
101
|
+
# @return [Numeric]
|
99
102
|
def prd
|
103
|
+
# Methode darf nicht product heißen, die gibt es nämlich schon.
|
100
104
|
self.inject(1.0) { |p, i | p *= i }
|
101
105
|
end
|
102
106
|
|
103
|
-
|
104
|
-
#
|
105
|
-
#
|
106
|
-
#
|
107
|
+
# Parallel
|
108
|
+
#
|
109
|
+
# Result is equal to the total resistance of resistors in parallel circuits.
|
110
|
+
# Tests and examples {TestKyaniteEnumerableNumerics here}.
|
111
|
+
# @return [Float]
|
107
112
|
def parallel
|
108
113
|
mean_harmonic / size
|
109
114
|
end
|
@@ -114,14 +119,10 @@ end #class
|
|
114
119
|
|
115
120
|
|
116
121
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
#
|
121
|
-
# == *Array* *Of* *Numerics*
|
122
|
-
# An ArrayOfNumerics is an Array with modul EnumerableNumerics included.
|
123
|
-
# See TestKyaniteEnumerableNumerics for tests and examples.
|
124
|
-
#
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
# @!macro enum_of_numerics
|
125
126
|
class ArrayOfNumerics < Array
|
126
127
|
include EnumerableNumerics
|
127
128
|
end
|
@@ -130,10 +131,13 @@ end
|
|
130
131
|
|
131
132
|
class Array
|
132
133
|
|
133
|
-
#
|
134
|
+
# @!group Cast
|
135
|
+
# Returns {ArrayOfNumerics} (this is an {Array} with modul {EnumerableNumerics} included)
|
136
|
+
# @return [ArrayOfNumerics]
|
134
137
|
def to_array_of_numerics
|
135
138
|
ArrayOfNumerics.new(self)
|
136
139
|
end
|
140
|
+
#@!endgroup
|
137
141
|
|
138
142
|
end
|
139
143
|
|
@@ -157,9 +161,7 @@ end
|
|
157
161
|
# Ausprobieren
|
158
162
|
#
|
159
163
|
if $0 == __FILE__
|
160
|
-
|
161
|
-
include EnumerableNumerics
|
162
|
-
end
|
164
|
+
|
163
165
|
|
164
166
|
|
165
167
|
|