Class: Jekyll::Plugin

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

Direct Known Subclasses

Converter

Constant Summary collapse

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

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.



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

.descendantsObject



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