Sha256: 8c0b821205f2058803c4a68d993d8fba2b8c36b6402b7b1fb363207130fb2e79
Contents?: true
Size: 1.41 KB
Versions: 1
Compression:
Stored size: 1.41 KB
Contents
module Danger class Plugin def initialize(dangerfile) @dangerfile = dangerfile end def self.instance_name to_s.gsub("Danger", "").danger_underscore.split("/").last end # Both of these methods exist on all objects # http://ruby-doc.org/core-2.2.3/Kernel.html#method-i-warn # http://ruby-doc.org/core-2.2.3/Kernel.html#method-i-fail # However, as we're using using them in the DSL, they won't # get method_missing called correctly. undef :warn, :fail # Since we have a reference to the Dangerfile containing all the information # We need to redirect the self calls to the Dangerfile def method_missing(method_sym, *arguments, &block) @dangerfile.send(method_sym, *arguments, &block) end def self.all_plugins @all_plugins ||= [] end def self.clear_external_plugins @all_plugins = @all_plugins.select { |plugin| Dangerfile.core_plugin_classes.include? plugin } end def self.inherited(plugin) Plugin.all_plugins.push(plugin) end private # When using `danger local --pry`, every plugin had an unreasonable # amount of text output due to the Dangerfile reference in every # plugin. So, it is filtered out. Users will start out in the context # of the Dangerfile, and can view it by just typing `self` into the REPL. # def pretty_print_instance_variables super - [:@dangerfile] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
danger-0.10.1 | lib/danger/plugin_support/plugin.rb |