Sha256: cef62827560e770b92430529486b899b5e1f7f7d2d97e19a6792a7f0ea0a690b
Contents?: true
Size: 1.95 KB
Versions: 3
Compression:
Stored size: 1.95 KB
Contents
class Array def daru_vector Daru::Vector.new self end alias_method :dv, :daru_vector end class Range def daru_vector Daru::Vector.new self end alias_method :dv, :daru_vector end class Hash def daru_vector Daru::Vector.new self.values[0], self.keys[0] end alias_method :dv, :daru_vector end class NMatrix def daru_vector Daru::Vector.new self end alias_method :dv, :daru_vector end class MDArray def daru_vector Daru::Vector.new self end alias_method :dv, :daru_vector end module Daru class Vector include Enumerable def each(&block) @vector.each(&block) end attr_accessor :name attr_reader :size attr_reader :vector def initialize source=[], name=nil if source.is_a?(Hash) initialize source.values[0], source.keys[0] else @name = name || SecureRandom.uuid @vector = case source when Range, Matrix source.to_a.flatten else source end @size = @vector.size end end def [](index) @vector[index] end def []=(index, value) @vector[index] = value end def ==(other) other.vector == @vector and other.name == @name end def <<(element) @vector << element end def to_json self.to_a.to_json end def to_a @vector.to_a end def to_nmatrix @vector.to_nm end alias_method :to_nm, :to_nmatrix def first lim=1 lim == 1 ? @vector.first : @vector.first(lim) end def to_html threshold=15 html = '<table><tr><th>' + @name.to_s + '</th></tr>>' @vector.to_a.each_with_index do |el,i| next if threshold < i and i < @arr.length-1 content = i == threshold ? '...' : el.to_s html.concat('<tr><td>' + content + '</td></tr>') end html += '</table>' end def dup Daru::Vector.new @vector.dup, @name.dup end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
daru-0.0.2.2 | lib/daru/vector.rb |
daru-0.0.2.1 | lib/daru/vector.rb |
daru-0.0.2 | lib/daru/vector.rb |