Class: Jekyll::Plugin

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll/plugin.rb

Direct Known Subclasses

Converter

Constant Summary

PRIORITIES =
{
  :low     => -10,
  :highest => 100,
  :lowest  => -100,
  :normal  => 0,
  :high    => 10,
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

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

.descendantsObject



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