class Charty::Vector

Attributes

adapter[R]

Public Class Methods

new(data, index: nil, name: nil) click to toggle source
# File lib/charty/vector.rb, line 19
def initialize(data, index: nil, name: nil)
  adapter_class = VectorAdapters.find_adapter_class(data)
  @adapter = adapter_class.new(data)
  self.index = index unless index.nil?
  self.name = name unless name.nil?
end
try_convert(obj) click to toggle source
# File lib/charty/vector.rb, line 8
def self.try_convert(obj)
  case obj
  when self
    obj
  else
    if VectorAdapters.find_adapter_class(obj, exception: false)
      new(obj)
    end
  end
end

Public Instance Methods

categorical_order(order=nil) click to toggle source

TODO: write test

# File lib/charty/vector.rb, line 81
def categorical_order(order=nil)
  if order.nil?
    case
    when categorical?
      order = categories
    else
      order = unique_values.compact
      if numeric?
        order.sort_by! {|x| Util.missing?(x) ? Float::INFINITY : x }
      end
    end
    order.compact!
  end
  order
end
scale(method) click to toggle source
# File lib/charty/vector.rb, line 56
def scale(method)
  case method
  when :linear
    self
  when :log
    adapter.log_scale(method)
  else
    raise ArgumentError,
          "Invalid scaling method: %p" % method
  end
end
scale_inverse(method) click to toggle source
# File lib/charty/vector.rb, line 68
def scale_inverse(method)
  case method
  when :linear
    self
  when :log
    adapter.inverse_log_scale(method)
  else
    raise ArgumentError,
          "Invalid scaling method: %p" % method
  end
end