Class: ColorCalculator::Conversion::Build

Inherits:
Object
  • Object
show all
Defined in:
lib/color_calculator/conversion/build.rb

Constant Summary collapse

NOOP =
-> (value) { value }
MAP =

Doesn’t seem like it’s worth it to build a proper graph for this yet. This map is fine, even if it is a bit repetitive.

{
  lab: {
    lab: NOOP,
    lch: LabToLch.to_proc,
    rgb: [LabToXyz, XyzToRgb].map(&:to_proc).reduce(:>>),
    xyz: LabToXyz.to_proc
  },
  lch: {
    lab: LchToLab.to_proc,
    lch: NOOP,
    rgb: [LchToLab, LabToXyz, XyzToRgb].map(&:to_proc).reduce(:>>),
    xyz: [LchToLab, LabToXyz].map(&:to_proc).reduce(:>>)
  },
  rgb: {
    lab: [RgbToXyz, XyzToLab].map(&:to_proc).reduce(:>>),
    lch: [RgbToXyz, XyzToLab, LabToLch].map(&:to_proc).reduce(:>>),
    rgb: NOOP,
    xyz: RgbToXyz.to_proc
  },
  xyz: {
    lab: XyzToLab.to_proc,
    lch: [XyzToLab, LabToLch].map(&:to_proc).reduce(:>>),
    rgb: XyzToRgb.to_proc,
    xyz: NOOP
  }
}

Class Method Summary collapse

Class Method Details

.call(from, to) ⇒ Object



46
47
48
# File 'lib/color_calculator/conversion/build.rb', line 46

def call(from, to)
  MAP[from][to]
end