Module: CodeRay::Plugin

Included in:
Encoders::Encoder, Scanners::Scanner, Styles::Style
Defined in:
lib/coderay/helpers/plugin.rb

Overview

Plugin

Plugins have to include this module.

IMPORTANT: Use extend for this module.

See CodeRay::PluginHost for examples.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#plugin_idObject (readonly)

Returns the value of attribute plugin_id.



239
240
241
# File 'lib/coderay/helpers/plugin.rb', line 239

def plugin_id
  @plugin_id
end

Instance Method Details

#aliasesObject



273
274
275
276
277
278
279
# File 'lib/coderay/helpers/plugin.rb', line 273

def aliases
  plugin_host.load_plugin_map
  plugin_host.plugin_hash.inject [] do |aliases, (key, _)|
    aliases << key if plugin_host[key] == self
    aliases
  end
end

#plugin_host(host = nil) ⇒ Object

The PluginHost for this Plugin class.



266
267
268
269
270
271
# File 'lib/coderay/helpers/plugin.rb', line 266

def plugin_host host = nil
  if host.is_a? PluginHost
    const_set :PLUGIN_HOST, host
  end
  self::PLUGIN_HOST
end

#register_for(id) ⇒ Object

Register this class for the given id.

Example:

class MyPlugin < PluginHost::BaseClass
  register_for :my_id
  ...
end

See PluginHost.register.



250
251
252
253
# File 'lib/coderay/helpers/plugin.rb', line 250

def register_for id
  @plugin_id = id
  plugin_host.register self, id
end

#title(title = nil) ⇒ Object

Returns the title of the plugin, or sets it to the optional argument title.



257
258
259
260
261
262
263
# File 'lib/coderay/helpers/plugin.rb', line 257

def title title = nil
  if title
    @title = title.to_s
  else
    @title ||= name[/([^:]+)$/, 1]
  end
end