class JIRA::Resource::Sprint

Public Class Methods

find(client, key) click to toggle source
# File lib/jira/resource/sprint.rb, line 7
def self.find(client, key)
  response = client.get(agile_path(client, key))
  json = parse_json(response.body)
  client.Sprint.build(json)
end

Private Class Methods

agile_path(client, key) click to toggle source
# File lib/jira/resource/sprint.rb, line 100
def self.agile_path(client, key)
  "#{client.options[:context_path]}/rest/agile/1.0/sprint/#{key}"
end

Public Instance Methods

add_issue(issue) click to toggle source
# File lib/jira/resource/sprint.rb, line 20
def add_issue(issue)
  request_body = { issues: [issue.id] }.to_json
  response = client.post("#{agile_path}/issue", request_body)
  true
end
complete() click to toggle source

WORK IN PROGRESS

# File lib/jira/resource/sprint.rb, line 88
def complete
  complete_url = "#{client.options[:site]}/rest/greenhopper/1.0/sprint/#{id}/complete"
  response = client.put(complete_url)
  self.class.parse_json(response.body)
end
complete_date() click to toggle source
# File lib/jira/resource/sprint.rb, line 38
def complete_date
  get_sprint_details_attribute('complete_date')
end
end_date() click to toggle source
# File lib/jira/resource/sprint.rb, line 34
def end_date
  get_sprint_details_attribute('end_date')
end
get_sprint_details() click to toggle source
# File lib/jira/resource/sprint.rb, line 49
def get_sprint_details
  search_url =
    "#{client.options[:site]}#{client.options[:client_path]}/rest/greenhopper/1.0/rapid/charts/sprintreport?rapidViewId=#{rapidview_id}&sprintId=#{id}"
  begin
    response = client.get(search_url)
  rescue StandardError
    return nil
  end
  json = self.class.parse_json(response.body)

  @start_date = Date.parse(json['sprint']['startDate']) unless json['sprint']['startDate'] == 'None'
  @end_date = Date.parse(json['sprint']['endDate']) unless json['sprint']['endDate'] == 'None'
  @completed_date = Date.parse(json['sprint']['completeDate']) unless json['sprint']['completeDate'] == 'None'
  @sprint_report = client.SprintReport.build(json['contents'])
end
get_sprint_details_attribute(attribute_name) click to toggle source
# File lib/jira/resource/sprint.rb, line 42
def get_sprint_details_attribute(attribute_name)
  attribute = instance_variable_get("@#{attribute_name}")
  return attribute if attribute
  get_sprint_details
  instance_variable_get("@#{attribute_name}")
end
issues(options = {}) click to toggle source

get all issues of sprint

# File lib/jira/resource/sprint.rb, line 14
def issues(options = {})
  jql = 'sprint = ' + id.to_s
  jql += " and updated >= '#{options[:updated]}'" if options[:updated]
  Issue.jql(client, jql)
end
rapidview_id() click to toggle source
# File lib/jira/resource/sprint.rb, line 65
def rapidview_id
  return @attrs['rapidview_id'] if @attrs['rapidview_id']
  search_url = client.options[:site] + '/secure/GHGoToBoard.jspa?sprintId=' + id.to_s
  begin
    response = client.get(search_url)
  rescue JIRA::HTTPError => error
    return unless error.response.instance_of? Net::HTTPFound
    rapid_view_match = /rapidView=(\d+)&/.match(error.response['location'])
    @attrs['rapidview_id'] = rapid_view_match[1] unless rapid_view_match.nil?
  end
end
save(attrs = {}, _path = nil) click to toggle source
Calls superclass method JIRA::Base#save
# File lib/jira/resource/sprint.rb, line 77
def save(attrs = {}, _path = nil)
  attrs = @attrs if attrs.empty?
  super(attrs, agile_path)
end
save!(attrs = {}, _path = nil) click to toggle source
Calls superclass method JIRA::Base#save!
# File lib/jira/resource/sprint.rb, line 82
def save!(attrs = {}, _path = nil)
  attrs = @attrs if attrs.empty?
  super(attrs, agile_path)
end
sprint_report() click to toggle source
# File lib/jira/resource/sprint.rb, line 26
def sprint_report
  get_sprint_details_attribute('sprint_report')
end
start_date() click to toggle source
# File lib/jira/resource/sprint.rb, line 30
def start_date
  get_sprint_details_attribute('start_date')
end

Private Instance Methods

agile_path() click to toggle source
# File lib/jira/resource/sprint.rb, line 96
def agile_path
  self.class.agile_path(client, id)
end