Class: Jekyll::Plugin
- Inherits:
-
Object
- Object
- Jekyll::Plugin
- Defined in:
- lib/jekyll/plugin.rb
Direct Known Subclasses
Constant Summary collapse
- PRIORITIES =
{ :low => -10, :highest => 100, :lowest => -100, :normal => 0, :high => 10, }.freeze
Class Method Summary collapse
-
.<=>(other) ⇒ Object
Spaceship is priority [higher -> lower].
- .catch_inheritance(const) ⇒ Object
- .descendants ⇒ Object
- .inherited(const) ⇒ Object
-
.priority(priority = nil) ⇒ Object
Get or set the priority of this plugin.
-
.safe(safe = nil) ⇒ Object
Get or set the safety of this plugin.
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Spaceship is priority [higher -> lower].
-
#initialize(config = {}) ⇒ Plugin
constructor
Initialize a new plugin.
Constructor Details
#initialize(config = {}) ⇒ Plugin
Initialize a new plugin. This should be overridden by the subclass.
config - The Hash of configuration options.
Returns a new instance.
94 95 96 |
# File 'lib/jekyll/plugin.rb', line 94 def initialize(config = {}) # no-op for default end |
Class Method Details
.<=>(other) ⇒ Object
Spaceship is priority [higher -> lower]
other - The class to be compared.
Returns -1, 0, 1.
76 77 78 |
# File 'lib/jekyll/plugin.rb', line 76 def self.<=>(other) PRIORITIES[other.priority] <=> PRIORITIES[self.priority] end |
.catch_inheritance(const) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/jekyll/plugin.rb', line 23 def self.catch_inheritance(const) const.define_singleton_method :inherited do |const_| (@children ||= Set.new).add const_ if block_given? yield const_ end end end |
.descendants ⇒ Object
34 35 36 37 38 39 |
# File 'lib/jekyll/plugin.rb', line 34 def self.descendants @children ||= Set.new out = @children.map(&:descendants) out << self unless superclass == Plugin Set.new(out).flatten end |
.inherited(const) ⇒ Object
15 16 17 18 19 |
# File 'lib/jekyll/plugin.rb', line 15 def self.inherited(const) return catch_inheritance(const) do |const_| catch_inheritance(const_) end end |
.priority(priority = nil) ⇒ Object
Get or set the priority of this plugin. When called without an argument it returns the priority. When an argument is given, it will set the priority.
priority - The Symbol priority (default: nil). Valid options are:
:lowest, :low, :normal, :high, :highest
Returns the Symbol priority.
49 50 51 52 53 54 55 |
# File 'lib/jekyll/plugin.rb', line 49 def self.priority(priority = nil) @priority ||= nil if priority && PRIORITIES.key?(priority) @priority = priority end @priority || :normal end |
.safe(safe = nil) ⇒ Object
Get or set the safety of this plugin. When called without an argument it returns the safety. When an argument is given, it will set the safety.
safe - The Boolean safety (default: nil).
Returns the safety Boolean.
64 65 66 67 68 69 |
# File 'lib/jekyll/plugin.rb', line 64 def self.safe(safe = nil) unless defined?(@safe) && safe.nil? @safe = safe end @safe || false end |
Instance Method Details
#<=>(other) ⇒ Object
Spaceship is priority [higher -> lower]
other - The class to be compared.
Returns -1, 0, 1.
85 86 87 |
# File 'lib/jekyll/plugin.rb', line 85 def <=>(other) self.class <=> other.class end |