module Scale::Source

These are the classes that describe what range the transformed number starts in. They're named after the core Ruby class that the input closest resembles.

Constants

MAP

Map Ruby classes/modules to scaling source classes/modules

Public Class Methods

new(source) click to toggle source

Build the appropriate scaling source class for the given Ruby object @param [::Enumerable] source @return [Scale::Source::Enumerable, Scale::Source::Range]

# File lib/scale/source.rb, line 59
def self.new(source)
  klass = MAP[source.class]
  if klass.nil?
    klasses = MAP.select { |k,v| source.kind_of?(k) }
    klass = klasses.values.first
  end
  klass.new(source) unless klass.nil?
end