class Optics::IxLens

Public Class Methods

new(index) click to toggle source
Calls superclass method Optics::Lens::new
# File lib/optics.rb, line 38
def initialize(index)
  super(
    -> (subject) { subject[index] },
    -> (subject, new_value) {
      subject.each_with_index.map { |old_value, value_index|
        value_index == index ? new_value : old_value
      }
    }
  )
end