lib/jekyll/assets/hook.rb in jekyll-assets-2.0.0.pre.beta4 vs lib/jekyll/assets/hook.rb in jekyll-assets-2.0.0

- old
+ new

@@ -1,5 +1,9 @@ +# Frozen-string-literal: true +# Copyright: 2012-2015 - MIT License +# Encoding: utf-8 + module Jekyll module Assets class Hook class UnknownHookError < RuntimeError def initialize(base: nil, point: nil) @@ -23,40 +27,43 @@ def self.all @_all ||= {} end - # --------------------------------------------------------------------- # Trigger a hook, giving an optional block where we pass you the, # proc we got and then you can do as you please (such as instance eval) # but if you do not give us one then we simply pass the args. - # --------------------------------------------------------------------- def self.trigger(base, _point, *args, &block) raise ArgumentError, "Do not give args with a block" if args.size > 0 && block_given? - if all.has_key?(base) && all.fetch(base).has_key?(_point) + if all.has_key?(base) && all[base].has_key?(_point) Set.new.merge(point(base, _point, :early)).merge(point(base, _point)).map do |v| block_given?? block.call(v) : v.call(*args) end end end - # --------------------------------------------------------------------- + # def self.point(base, point, _when = :late) - point = all.fetch(base).fetch(point, nil) || all.fetch(base).store(point, { - :late => Set.new, :early => Set.new }) - point.fetch(_when) + point = all[base][point] ||= { + :late => Set.new, + :early => Set.new + } + + point[_when] end - # --------------------------------------------------------------------- + # def self.register(base, point, _when = :late, &block) raise UnknownHookError.new(base: base) unless HookPoints.has_key?(base) - point = HookAliases.fetch(base).fetch(point) if HookAliases.fetch(base, {}).has_key?(point) - raise UnknownHookError.new(point: point) unless HookPoints.fetch(base).include?(point) - all.fetch(base, nil) || all.store(base, {}) - point(base, point, _when).add(block) + point = HookAliases[base][point] if HookAliases.fetch(base, {}).has_key?(point) + raise UnknownHookError.new(point: point) unless HookPoints[base].include?(point) + all[base] ||= {} + + point(base, point, _when). \ + add(block) end end end end