class ErrbitRedminePlugin::IssueTracker
Constants
- FIELDS
- LABEL
- NOTE
Public Class Methods
fields()
click to toggle source
# File lib/errbit_redmine_plugin/issue_tracker.rb, line 48 def self.fields FIELDS end
icons()
click to toggle source
# File lib/errbit_redmine_plugin/issue_tracker.rb, line 52 def self.icons @icons ||= { create: [ 'image/png', ErrbitRedminePlugin.read_static_file('redmine_create.png') ], goto: [ 'image/png', ErrbitRedminePlugin.read_static_file('redmine_goto.png'), ], inactive: [ 'image/png', ErrbitRedminePlugin.read_static_file('redmine_inactive.png'), ] } end
label()
click to toggle source
# File lib/errbit_redmine_plugin/issue_tracker.rb, line 40 def self.label LABEL end
note()
click to toggle source
# File lib/errbit_redmine_plugin/issue_tracker.rb, line 44 def self.note NOTE end
Public Instance Methods
comments_allowed?()
click to toggle source
# File lib/errbit_redmine_plugin/issue_tracker.rb, line 76 def comments_allowed? false end
configured?()
click to toggle source
configured properly if all the fields are filled in
# File lib/errbit_redmine_plugin/issue_tracker.rb, line 81 def configured? non_empty_options = options.reject { |k,v| v.empty? }.keys.map(&:intern) (required_fields - non_empty_options).empty? end
create_issue(title, body, user: {})
click to toggle source
# File lib/errbit_redmine_plugin/issue_tracker.rb, line 98 def create_issue(title, body, user: {}) token = options['api_token'] acc = options['account'] user = options['username'] passwd = options['password'] project_id = options['project_id'] tracker_id = options['tracker_id'] RedmineClient::Base.configure do self.token = token self.user = user self.password = passwd self.site = acc self.format = :xml end issue = RedmineClient::Issue.new(:project_id => project_id) issue.subject = title issue.description = body issue.tracker_id = tracker_id if tracker_id.present? issue.save! issue_link(issue) end
errors()
click to toggle source
# File lib/errbit_redmine_plugin/issue_tracker.rb, line 90 def errors errors = [] unless configured? errors << [:base, 'You must specify your Redmine URL, API token, Username, Password and Project ID'] end errors end
issue_link(issue)
click to toggle source
# File lib/errbit_redmine_plugin/issue_tracker.rb, line 123 def issue_link(issue) project_id = options['project_id'] RedmineClient::Issue.site.to_s .sub(/#{RedmineClient::Issue.site.path}$/, '') << RedmineClient::Issue.element_path(issue.id, :project_id => project_id) .sub(/\.xml\?project_id=#{project_id}$/, "\?project_id=#{project_id}") end
required_fields()
click to toggle source
# File lib/errbit_redmine_plugin/issue_tracker.rb, line 86 def required_fields FIELDS.reject { |k,v| v[:optional] }.map { |f| f[0] }.map(&:intern) end
url()
click to toggle source
# File lib/errbit_redmine_plugin/issue_tracker.rb, line 66 def url account = options['account'] project_id = options['project_id'] acc_url = account.start_with?('http') ? account : "http://#{account}" acc_url = acc_url.gsub(/\/$/, '') URI.parse("#{acc_url}/projects/#{project_id}").to_s rescue URI::InvalidURIError end