Class: Dimples::Plugin
- Inherits:
-
Object
- Object
- Dimples::Plugin
- Defined in:
- lib/dimples/plugin.rb
Constant Summary collapse
- EVENTS =
i[ post_write page_write ].freeze
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(site) ⇒ Plugin
constructor
A new instance of Plugin.
- #process(event, item, &block) ⇒ Object
- #supported_events ⇒ Object
- #supports_event?(event) ⇒ Boolean
Constructor Details
#initialize(site) ⇒ Plugin
Returns a new instance of Plugin.
26 27 28 |
# File 'lib/dimples/plugin.rb', line 26 def initialize(site) @site = site end |
Class Method Details
.inherited(subclass) ⇒ Object
10 11 12 |
# File 'lib/dimples/plugin.rb', line 10 def self.inherited(subclass) (@subclasses ||= []) << subclass end |
.plugins(site) ⇒ Object
14 15 16 |
# File 'lib/dimples/plugin.rb', line 14 def self.plugins(site) @plugins ||= @subclasses&.map { |subclass| subclass.new(site) } end |
.process(site, event, item, &block) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/dimples/plugin.rb', line 18 def self.process(site, event, item, &block) plugins(site)&.each do |plugin| plugin.process(event, item, &block) if plugin.supports_event?(event) end yield if block_given? end |
Instance Method Details
#process(event, item, &block) ⇒ Object
30 |
# File 'lib/dimples/plugin.rb', line 30 def process(event, item, &block); end |
#supported_events ⇒ Object
32 33 34 |
# File 'lib/dimples/plugin.rb', line 32 def supported_events [] end |
#supports_event?(event) ⇒ Boolean
36 37 38 |
# File 'lib/dimples/plugin.rb', line 36 def supports_event?(event) supported_events.include?(event) end |