Sha256: f63cf0dd9e45f1ffdedbc78b07ad3a9ce38493725b849bdd4119208d43f49db2

Contents?: true

Size: 912 Bytes

Versions: 2

Compression:

Stored size: 912 Bytes

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.inherited(plugin)
      Plugin.all_plugins.push(plugin)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
danger-0.8.3 lib/danger/plugin_support/plugin.rb
danger-0.8.2 lib/danger/plugin_support/plugin.rb