class PT::CLI

Constants

ACTION
TYPE

Attributes

project[R]

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/pt/cli.rb, line 29
def initialize(*args)
  super
  @config = PT::Configuration.new
  @client = @config.client || Client.new
  @project = @client.project
end

Public Instance Methods

create(title =nil) click to toggle source
# File lib/pt/cli.rb, line 137
def create(title =nil)
  if title
    owner_id = if options[:owner] && (owner = @client.find_member(options[:owner]))
                 owner.person.id
               else
                 nil
               end
    description = edit_using_editor if options[:m]
    params = {
      name: title,
      requested_by_id: Settings[:user_id],
      owner_ids: [owner_id],
      description: description
    }
    params[:story_type] = options[:type] if options[:type]
    story = @client.create_story(params)
    congrats("Story with title #{story.name} has been created \n #{story.url}")
  else
    create_interactive_story
  end
end
find(query=nil) click to toggle source
# File lib/pt/cli.rb, line 163
def find(query=nil)
  query ||= ask("Please type seach query") { |q| q.readline = true }
  story = select_story_from_paginated_table(title: "Search result for #{query}")do |page|
    @client.get_stories(filter: query, page: page)
  end
  show_story(story)
end
label(_label=nil) click to toggle source
# File lib/pt/cli.rb, line 72
def label(_label=nil)
  _label ||= select('Please select label', LabelsTable.new(@client.project.labels)).name
  select_story_from_paginated_table(title: "stories with label:#{_label}") do |page|
    @client.get_stories(filter: "label:#{_label}", page: page)
  end
end
list(owner = nil) click to toggle source
# File lib/pt/cli.rb, line 107
def list(owner = nil)
  owner = choose_person.initials unless owner
  select_story_from_paginated_table(title: "stories for #{owner}") do |page|
    @client.get_stories(filter: "owner:#{owner} -state:accepted", page: page)
  end
end
mywork() click to toggle source
# File lib/pt/cli.rb, line 91
def mywork
  select_story_from_paginated_table(title: 'My Work') do |page|
    @client.get_stories(filter: "owner:#{Settings[:user_name]} -state:accepted", page: page)
  end
end
notifications() click to toggle source
# File lib/pt/cli.rb, line 172
def notifications
  NotificationsTable.new(@client.notifications).print
end
recent() click to toggle source
# File lib/pt/cli.rb, line 115
def recent
  title("Your recent stories from #{project_to_s}")
  select_story_from_paginated_table(title: "recent stories") do |page|
    @client.get_stories(filter: Settings[:recent_tasks].join(','), page: page)
  end
end