Class: Backlog::Cli::Core
- Inherits:
-
Object
- Object
- Backlog::Cli::Core
- Defined in:
- lib/backlog/cli/core.rb
Constant Summary collapse
- DOMAIN =
'backlog.jp'
Instance Method Summary collapse
- #add_comment(options) ⇒ Object
- #create_issue(project_key, options) ⇒ Object
- #find_issue(project_key, options) ⇒ Object
- #get_comments(options) ⇒ Object
- #get_issue(options) ⇒ Object
- #get_project_summaries ⇒ Object
- #get_projects ⇒ Object
- #get_rss(project_key) ⇒ Object
- #get_users(project_key) ⇒ Object
-
#initialize(profile) ⇒ Core
constructor
A new instance of Core.
- #update_issue(options) ⇒ Object
- #urls(body) ⇒ Object
Constructor Details
#initialize(profile) ⇒ Core
Returns a new instance of Core.
12 13 14 15 16 17 18 19 20 |
# File 'lib/backlog/cli/core.rb', line 12 def initialize(profile) info = YAML.load_file("#{ENV['HOME']}/.backlogrc")[profile] @user = info['user'] @space = info['space'] @password = info['password'] @assigner_id = info['assigner_id'] api_url = "https://#{@user}:#{@password}@#{@space}.#{DOMAIN}/XML-RPC" @server = XMLRPC::Client.new2(api_url) end |
Instance Method Details
#add_comment(options) ⇒ Object
29 30 31 32 |
# File 'lib/backlog/cli/core.rb', line 29 def add_comment() args = { key: [:key], content: [:content] } @server.call('backlog.addComment', args) end |
#create_issue(project_key, options) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/backlog/cli/core.rb', line 22 def create_issue(project_key, ) args = .dup args[:projectId] = get_project(project_key)['id'] args[:assignerId] = [:assigner_id].nil? ? @assigner_id : [:assigner_id] @server.call('backlog.createIssue', args) end |
#find_issue(project_key, options) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/backlog/cli/core.rb', line 48 def find_issue(project_key, ) args = .dup args[:projectId] = get_project(project_key)['id'] args[:statusId] = [1, 2, 3] args[:sort] = 'UPDATED' if [:all] args.delete(:assignerId) else args[:assignerId] = @assigner_id end @server.call('backlog.findIssue', args) end |
#get_comments(options) ⇒ Object
34 35 36 37 |
# File 'lib/backlog/cli/core.rb', line 34 def get_comments() issue_id = get_issue()['id'] @server.call('backlog.getComments', issue_id) end |
#get_issue(options) ⇒ Object
44 45 46 |
# File 'lib/backlog/cli/core.rb', line 44 def get_issue() @server.call('backlog.getIssue', [:key]) end |
#get_project_summaries ⇒ Object
65 66 67 |
# File 'lib/backlog/cli/core.rb', line 65 def get_project_summaries @server.call('backlog.getProjectSummaries') end |
#get_projects ⇒ Object
61 62 63 |
# File 'lib/backlog/cli/core.rb', line 61 def get_projects @server.call('backlog.getProjects') end |
#get_rss(project_key) ⇒ Object
73 74 75 76 77 78 |
# File 'lib/backlog/cli/core.rb', line 73 def get_rss(project_key) feed = FeedNormalizer::FeedNormalizer.parse open( "https://#{@space}.#{DOMAIN}/rss/#{project_key}", http_basic_authentication: [@user, @password] ) feed.items end |
#get_users(project_key) ⇒ Object
69 70 71 |
# File 'lib/backlog/cli/core.rb', line 69 def get_users(project_key) @server.call('backlog.getUsers', get_project(project_key)['id']) end |
#update_issue(options) ⇒ Object
39 40 41 42 |
# File 'lib/backlog/cli/core.rb', line 39 def update_issue() args = { key: [:key], comment: [:comment] } @server.call('backlog.updateIssue', args) end |
#urls(body) ⇒ Object
80 81 82 83 |
# File 'lib/backlog/cli/core.rb', line 80 def urls(body) regex = /https?\:\/\/[-_.!~*'()a-zA-Z0-9;\/?:@&=+$,%#]+/ body.scan(regex).uniq.sort.reverse end |