Sha256: 8e360df66e4bb564c6cfcd2d6b3add51bcbfb09f09b9a71e20c35eafcacbcaff
Contents?: true
Size: 578 Bytes
Versions: 2
Compression:
Stored size: 578 Bytes
Contents
# frozen_string_literal: true module Shrek class Layers def initialize(next_layer_proc = nil) next_layer_proc ||= EMPTY_RETURN @next_layer = next_layer_proc end def call(*) raise 'Layer subclasses must define #call' end def skip!(count = 1) raise ArgumentError unless count.is_a?(Integer) || count <= 0 count.times.inject(self) { |acc, _| acc.next_layer } end def skip(count = 1) skip! count rescue NoMethodError => _error EMPTY_RETURN end protected attr_reader :next_layer end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
shrek-0.2.2 | lib/shrek/layers.rb |
shrek-0.2.1 | lib/shrek/layers.rb |