Class: Array

Inherits
Object show all
Includes
Enumerable
Defined in
lib/kyanite/set.rb,
lib/kyanite/array.rb,
lib/kyanite/dictionary.rb,
lib/kyanite/string/chars.rb,
lib/kyanite/enumerable/structure.rb,
lib/kyanite/enumerable/enumerable_strings.rb,
lib/kyanite/enumerable/enumerable_numerics.rb,
lib/kyanite/enumerable/enumerable_enumerables.rb

Array Additions

Kyanite definitions

Array

Kyanite tests and examples

TestKyaniteArray

Usage

require ‘kyanite/array’

Required from Facets Array:

delete_unless(&block)

Inverse of delete_if

delete_values(*values)

Delete multiple values from array (findet und löscht bestimmte Werte)

delete_values_at(*selectors)

Delete multiple values from array given indexes or index range (löscht Elemente an bestimmten Positionen)

rotate(n=1)

Rotates an array’s elements from back to front n times (alles rückt n Positionen auf)

select!{ |obj| block }

As with select but modifies the Array in place.

to_h(arrayed=nil)

Converts a two-element associative array into a hash.

Cast (collapse)

Upcase and Downcase with support for special letters like german umlauts (collapse)

Structure Reflection (collapse)

Instance Method Summary (collapse)

Instance Method Details

- (Object) contentclass(options = {}) Originally defined in module Enumerable

What kind of objects contains the collection? Returns the class of content elements, or Object if there are several.

Parameters is the accuracy with which the content is checked.

:precision => 1

only the first element is checked

:precision => 2

the first and the last elements are checked (STANDARD)

:precision => :all

every element is checked

:ignore_nil => true

NilClass will not be listed (STANDARD)

:ignore_nil => false

NilClass will be listed

Tests and examples here.

- (Array) distribution(mode = :size) Originally defined in module Enumerable

Returns the distribution of size, class or any other characteristics of the enumerated elements. See also Hash#distribution. Tests and examples here.

Returns:

- (true) is_collection? Originally defined in module Enumerable

-- Defined for all objects: Do I contain multiple objects? String and Range are not considered as collection.

Tests and examples here. true -- Defined for all objects: Do I contain multiple objects? String and Range are not considered as collection.

Tests and examples here.

Returns:

  • (true)

- (Integer) rephrase_index(i, style = :inv)

Rephrases the index of an Array pos / neg / inv.

:pos

The index is rephrased as a positive integer

:detect_last

The index is rephrased as a positive integer, but the last index is -1

:neg

The index is rephrased as a negative integer

:inv

if it was positive, then it will get negative, and vice versa

See tests and examples here

Returns:



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/kyanite/array.rb', line 69

def rephrase_index(i, style=:inv)
  return i    if i >  (size-1)
  return i    if i <  -size
  case style
  when :inv
        if i >=0    # pos >> neg
          (i - size)
        else        # neg >> pos
          (i + size)
        end
  when :pos
        if i >= 0   # pos bleibt
          i
        else        # neg >> pos
          (i + size)
        end    
  when :neg
        if i >= 0   # pos >> neg
          (i - size)
        else        # neg bleibt
          i
        end   
  when :detect_last
        if i >= 0   # pos bleibt eigentlich
          if (i == size-1)
            -1      # nur der Letzte wird -1 genannt
          else
            i
          end
        else        # neg >> pos
          (i + size)
        end              
  end #case
end

- (Object) shift_complement

Cuts the front portion, and returns the rest. If the remainder is only one element, it' not returned as an array but as single element. Useful for recursions. Example:

[1,2,3].shift_complement  =>  [2,3]
[1,2,3].shift_complement.shift_complement  =>  3
[1,2,3].shift_complement.shift_complement.shift_complement  =>  nil

See tests and examples here.



47
48
49
50
51
52
53
# File 'lib/kyanite/array.rb', line 47

def shift_complement
  if self.size > 2
    self[1..-1]
  else
    self[-1]
  end
end

- (ArrayOfEnumerables) to_array_of_enumerables

Returns ArrayOfEnumerables (this is an Array with modul EnumerableEnumerables included)

Returns:



61
62
63
# File 'lib/kyanite/enumerable/enumerable_enumerables.rb', line 61

def to_array_of_enumerables
  ArrayOfEnumerables.new(self)
end

- (ArrayOfNumerics) to_array_of_numerics

Returns ArrayOfNumerics (this is an Array with modul EnumerableNumerics included)

Returns:



137
138
139
# File 'lib/kyanite/enumerable/enumerable_numerics.rb', line 137

def to_array_of_numerics
  ArrayOfNumerics.new(self)
end

- (ArrayOfStrings) to_array_of_strings

Returns ArrayOfStrings (this is an Array with modul EnumerableStrings included)

Returns:



50
51
52
# File 'lib/kyanite/enumerable/enumerable_strings.rb', line 50

def to_array_of_strings
  ArrayOfStrings.new(self)
end

- (Dictionary) to_dictionary

Returns Dictionary

Returns:



77
78
79
80
81
82
83
84
# File 'lib/kyanite/dictionary.rb', line 77

def to_dictionary
  # TODO: effizienter
  result = Dictionary.new
    self.each do | zeile |
      result << zeile
    end
  result
end

- (OrderedSet) to_ordered_set

Returns OrderedSet, tests and examples here.

Returns:



184
185
186
# File 'lib/kyanite/set.rb', line 184

def to_ordered_set
  OrderedSet.new(self)
end

- (String) to_s_utf8

Returns:



267
268
269
# File 'lib/kyanite/string/chars.rb', line 267

def to_s_utf8
  self.pack("U*").encode('utf-8')
end

- (SortedSet) to_sorted_set

Returns SortedSet, tests and examples here.

Returns:



191
192
193
# File 'lib/kyanite/set.rb', line 191

def to_sorted_set
  SortedSet.new(self)
end

- (Object) transpose! Originally defined in module Enumerable

In-place-variant of transpose.