class Hollaback::Sequence
Attributes
afters[R]
befores[R]
main[R]
Public Class Methods
new(args = {}, &main)
click to toggle source
# File lib/hollaback/sequence.rb, line 5 def initialize(args = {}, &main) @main = main @befores = args.fetch(:befores, []) @afters = args.fetch(:afters, []) end
Public Instance Methods
after(&after)
click to toggle source
# File lib/hollaback/sequence.rb, line 16 def after(&after) afters << after self end
around(&around)
click to toggle source
rubocop:disable Performance/RedundantBlockCall
# File lib/hollaback/sequence.rb, line 22 def around(&around) Sequence.new do |target| around.call(target) { call(target) } end end
before(&before)
click to toggle source
# File lib/hollaback/sequence.rb, line 11 def before(&before) befores << before self end
call(target)
click to toggle source
# File lib/hollaback/sequence.rb, line 28 def call(target) befores.each { |before| before.call(target) } value = main.call(target) afters.each { |after| after.call(target) } value end