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 }
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.
92 93 94 |
# File 'lib/jekyll/plugin.rb', line 92 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.
74 75 76 |
# File 'lib/jekyll/plugin.rb', line 74 def self.<=>(other) PRIORITIES[other.priority] <=> PRIORITIES[self.priority] end |
.catch_inheritance(const) ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/jekyll/plugin.rb', line 21 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
32 33 34 35 36 37 |
# File 'lib/jekyll/plugin.rb', line 32 def self.descendants @children ||= Set.new out = @children.map(&:descendants) out << self unless superclass == Plugin Set.new(out).flatten end |
.inherited(const) ⇒ Object
13 14 15 16 17 |
# File 'lib/jekyll/plugin.rb', line 13 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.
47 48 49 50 51 52 53 |
# File 'lib/jekyll/plugin.rb', line 47 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.
62 63 64 65 66 67 |
# File 'lib/jekyll/plugin.rb', line 62 def self.safe(safe = nil) if safe @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.
83 84 85 |
# File 'lib/jekyll/plugin.rb', line 83 def <=>(other) self.class <=> other.class end |