Class: Bridgetown::Builder
- Inherits:
-
Bridgetown::Builders::PluginBuilder
- Object
- Bridgetown::Builders::PluginBuilder
- Bridgetown::Builder
- Defined in:
- lib/bridgetown-builder/builder.rb
Overview
Superclass for a website's SiteBuilder abstract class
Class Method Summary collapse
- .add_callback(name, method_name = nil, &block) ⇒ Object
- .after_build ⇒ Object
- .before_build ⇒ Object
- .callbacks ⇒ Object
- .descendants ⇒ Object
- .register ⇒ Object
Instance Method Summary collapse
Class Method Details
.add_callback(name, method_name = nil, &block) ⇒ Object
23 24 25 26 |
# File 'lib/bridgetown-builder/builder.rb', line 23 def add_callback(name, method_name = nil, &block) callbacks[name] ||= [] callbacks[name] << (block || proc { send(method_name) }) end |
.after_build ⇒ Object
15 16 17 |
# File 'lib/bridgetown-builder/builder.rb', line 15 def after_build(...) add_callback(:after, ...) end |
.before_build ⇒ Object
11 12 13 |
# File 'lib/bridgetown-builder/builder.rb', line 11 def before_build(...) add_callback(:before, ...) end |
.callbacks ⇒ Object
19 20 21 |
# File 'lib/bridgetown-builder/builder.rb', line 19 def callbacks @callbacks ||= {} end |
.descendants ⇒ Object
40 41 42 43 |
# File 'lib/bridgetown-builder/builder.rb', line 40 def self.descendants site_builder_name = "SiteBuilder" super.reject { |klass| [site_builder_name].include?(klass.name) } end |
.register ⇒ Object
7 8 9 |
# File 'lib/bridgetown-builder/builder.rb', line 7 def register Bridgetown::Builders::PluginBuilder.plugin_registrations << self end |
Instance Method Details
#build_with_callbacks ⇒ Object
29 30 31 32 33 34 |
# File 'lib/bridgetown-builder/builder.rb', line 29 def build_with_callbacks self.class.callbacks[:before]&.each { instance_exec(&_1) } build self.class.callbacks[:after]&.each { instance_exec(&_1) } self end |
#inspect ⇒ Object
36 37 38 |
# File 'lib/bridgetown-builder/builder.rb', line 36 def inspect "#<#{name}>" end |