Class: Danger::Plugin

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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dangerfile) ⇒ Plugin

Returns a new instance of Plugin.



3
4
5
# File 'lib/danger/plugin_support/plugin.rb', line 3

def initialize(dangerfile)
  @dangerfile = dangerfile
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_sym, *arguments, **keyword_arguments, &block) ⇒ Object

Since we have a reference to the Dangerfile containing all the information We need to redirect the self calls to the Dangerfile



21
22
23
24
25
26
27
# File 'lib/danger/plugin_support/plugin.rb', line 21

def method_missing(method_sym, *arguments, **keyword_arguments, &block)
  if keyword_arguments.empty?
    @dangerfile.send(method_sym, *arguments, &block)
  else
    @dangerfile.send(method_sym, *arguments, **keyword_arguments, &block)
  end
end

Class Method Details

.all_pluginsObject



29
30
31
# File 'lib/danger/plugin_support/plugin.rb', line 29

def self.all_plugins
  @all_plugins ||= []
end

.clear_external_pluginsObject



33
34
35
# File 'lib/danger/plugin_support/plugin.rb', line 33

def self.clear_external_plugins
  @all_plugins = @all_plugins.select { |plugin| Dangerfile.essential_plugin_classes.include? plugin }
end

.inherited(plugin) ⇒ Object



37
38
39
# File 'lib/danger/plugin_support/plugin.rb', line 37

def self.inherited(plugin)
  Plugin.all_plugins.push(plugin)
end

.instance_nameObject



7
8
9
# File 'lib/danger/plugin_support/plugin.rb', line 7

def self.instance_name
  to_s.gsub("Danger", "").danger_underscore.split("/").last
end