Class: Climine::Command::Issue

Inherits:
Base
  • Object
show all
Defined in:
lib/climine/command/issue.rb

Instance Method Summary collapse

Instance Method Details

#close(id = nil) ⇒ Object



101
102
103
104
105
# File 'lib/climine/command/issue.rb', line 101

def close(id=nil)
  say("required ticket number!", :red) and return unless id
  redmine.update_issue id, {status_id: 5}
  render :issue, redmine.issue(id)
end

#finish(id = nil) ⇒ Object



108
109
110
# File 'lib/climine/command/issue.rb', line 108

def finish(id=nil)
  close(id)
end

#get(id = nil) ⇒ Object



24
25
26
27
# File 'lib/climine/command/issue.rb', line 24

def get(id=nil)
  say("required ticket number!", :red) unless id
  render (options["template"] || :issue), redmine.issue(id)
end

#listObject



18
19
20
# File 'lib/climine/command/issue.rb', line 18

def list
  render (options["template"] || :issues), redmine.issues(before_weeek_to_update_date(options.to_hash))
end

#newObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/climine/command/issue.rb', line 36

def new
  # project
  unless project_id = options["project"]
    projects = sort_by_id redmine.projects.projects
    projects.each{|project| puts "#{project.id} : #{project.name}" }
    project_id = ask("Which project?", limited_to: projects.map{|project| project.id.to_s})
  end
   
  # tracker
  unless tracker_id = options["tracker"]
    trackers = sort_by_id redmine.trackers.trackers
    trackers.each{|tracker| puts "#{tracker.id} : #{tracker.name}" }
    tracker_id = ask("Which tracker?", limited_to: trackers.map{|tracker| tracker.id.to_s})
  end
   
  # status
  unless status_id = options["status"]
    statuses = sort_by_id redmine.statuses.issue_statuses
    statuses.each{|status| puts "#{status.id} : #{status.name}" }
    status_id = ask("Which status? (empty is default)")
  end
   
  # assigned user
  unless user_id = options["user"]
    members = sort_by_id redmine.members(project_id).memberships
    members.each{|member| puts "#{member.user.id} : #{member.user.name}"}
    user_id = ask("Who do you assigned?")
  end
   
  res = redmine.create_issue(
    project_id: project_id,
    tracker_id: tracker_id,
    status_id: status_id,
    assigned_to_id: user_id,
    subject: ask_not_empty("subject > ").force_encoding('utf-8'),
    description: ask_description
  )
   
  unless res.error
    render :issue, res
  else
    say "Error! (Issue was not created)", :red
  end
end

#reject(id = nil) ⇒ Object



113
114
115
116
117
# File 'lib/climine/command/issue.rb', line 113

def reject(id=nil)
  say("required ticket number!", :red) and return unless id
  redmine.update_issue id, {status_id: 6}
  render :issue, redmine.issue(id)
end

#start(id = nil) ⇒ Object



94
95
96
97
98
# File 'lib/climine/command/issue.rb', line 94

def start(id=nil)
  say("required ticket number!", :red) and return unless id
  redmine.update_issue id, options.merge({status_id: 2})
  render :issue, redmine.issue(id)
end

#update(id = nil) ⇒ Object



85
86
87
88
89
# File 'lib/climine/command/issue.rb', line 85

def update(id=nil)
  say("required ticket number!", :red) and return unless id
  redmine.update_issue id, options
  render :issue, redmine.issue(id)
end