class ErrbitPlugin::ValidateIssueTracker

Attributes

errors[R]

Public Class Methods

new(klass) click to toggle source
# File lib/errbit_plugin/validate_issue_tracker.rb, line 3
def initialize(klass)
  @klass = klass
  @errors = []
end

Public Instance Methods

valid?() click to toggle source
# File lib/errbit_plugin/validate_issue_tracker.rb, line 9
def valid?
  valid_inherit = good_inherit?
  valid_instance_methods = implements_instance_methods?
  valid_class_methods = implements_class_methods?

  valid_inherit && valid_instance_methods && valid_class_methods
end

Private Instance Methods

add_errors(key, value=nil) click to toggle source
# File lib/errbit_plugin/validate_issue_tracker.rb, line 58
def add_errors(key, value=nil)
  @errors << [key, value].compact
end
good_inherit?() click to toggle source
# File lib/errbit_plugin/validate_issue_tracker.rb, line 19
def good_inherit?
  unless @klass.ancestors.include?(ErrbitPlugin::IssueTracker)
    add_errors(:not_inherited)
    false
  else
    true
  end
end
implements_class_methods?() click to toggle source
# File lib/errbit_plugin/validate_issue_tracker.rb, line 41
def implements_class_methods?
  impl = [:label, :fields, :note, :icons].map do |method|
    if @klass.respond_to?(method)
      true
    else
      add_errors(:class_method_missing, method)
      false
    end
  end

  impl.all? { |value| value == true }
end
implements_instance_methods?() click to toggle source
# File lib/errbit_plugin/validate_issue_tracker.rb, line 28
def implements_instance_methods?
  impl = [:configured?, :errors, :create_issue, :url].map do |method|
    if instance.respond_to?(method)
      true
    else
      add_errors(:instance_method_missing, method)
      false
    end
  end

  impl.all? { |value| value == true }
end
instance() click to toggle source
# File lib/errbit_plugin/validate_issue_tracker.rb, line 54
def instance
  @instance ||= @klass.new({})
end