Sha256: 71f6e0ffb0b30b0e832ffec94fee111636e182b34e18548085a3761848e72e5b
Contents?: true
Size: 715 Bytes
Versions: 1
Compression:
Stored size: 715 Bytes
Contents
module Hollaback class Sequence attr_reader :befores, :afters, :main def initialize(args = {}, &main) @main = main @befores = args.fetch(:befores, []) @afters = args.fetch(:afters, []) end def before(&before) befores << before self end def after(&after) afters << after self end # rubocop:disable Performance/RedundantBlockCall def around(&around) Sequence.new do |target| around.call(target) { call(target) } end end def call(target) befores.each { |before| before.call(target) } value = main.call(target) afters.each { |after| after.call(target) } value end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hollaback-0.1.0 | lib/hollaback/sequence.rb |