omnifocus-extrabrain 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9338e6fe76c74d2663d71b5086fe01eab256254a
4
- data.tar.gz: 4d66acef1590db5a5606b9a9d34245c0a41ba6f2
3
+ metadata.gz: b755d9c4ca2482a56067d1676b8c90cd66e07758
4
+ data.tar.gz: de8a413cc21b9489b6efece86026f34a04d9e08c
5
5
  SHA512:
6
- metadata.gz: 64d1870941a4d35c8bfbe75a38071e33013866d1f6b5f18bdb788fb12e4f98c2304720a3b3a9a8105c6ba5a86d03b6410154c9519228dda4686942038387e82d
7
- data.tar.gz: 58d071e03f7b11a2c93566491111943af4ad2f94807a0e766eb3de88500cbcfa3e4d38edaa66eb63262b40eedf32bca83de8b1d35b824256f9883d7267abddda
6
+ metadata.gz: e78f75ec7e85cdc6acc1d890b7eb96787404584c24a91102862725b11adac9f75584061e404312a4a99f7cd60294aa9c55454caa334c334735b6da627c7ffe23
7
+ data.tar.gz: 393838f32fe188fbc9e2df999f15afca967d1160eeba1d85c1e0d4fea86778227572a1a8b9296510ec6b75dc331597f840ba17ba8e9583a7c24e57ac319e6ad9
@@ -1,11 +1,14 @@
1
1
  require 'rest-client'
2
2
  require 'keychain'
3
+ require 'base64'
4
+ require 'byebug'
3
5
 
4
6
  module OmniFocus::Extrabrain
5
7
  PREFIX = 'EB'
6
8
 
7
9
  class Task
8
- attr_accessor :id, :title, :project_title
10
+ attr_accessor :id, :title, :project_id, :team
11
+ attr_writer :project_title
9
12
 
10
13
  def initialize(attrs = {})
11
14
  attrs.each do |attribute, value|
@@ -16,8 +19,12 @@ module OmniFocus::Extrabrain
16
19
  end
17
20
  end
18
21
 
22
+ def url
23
+ "https://#{team['subdomain']}.extrabrain.se/tasks/#{id}"
24
+ end
25
+
19
26
  def ticket_id
20
- "#{PREFIX}-#{project_title}##{id}"
27
+ "#{PREFIX}##{id}"
21
28
  end
22
29
 
23
30
  def project_title
@@ -46,9 +53,8 @@ module OmniFocus::Extrabrain
46
53
  def populate_extrabrain_tasks
47
54
  teams.each do |team|
48
55
  page = 1
49
-
50
56
  while tasks = get_tasks(team, page) do
51
- tasks.each { |t| process_extrabrain_task(t, team) }
57
+ tasks.each { |task| process_extrabrain_task(task, team) }
52
58
  page = page + 1
53
59
  end
54
60
  end
@@ -68,29 +74,29 @@ module OmniFocus::Extrabrain
68
74
 
69
75
  def user_id
70
76
  @user_id ||= begin
71
- current_user = JSON.parse resource['users/current.json'].get
72
- current_user['user']['id']
73
- end
77
+ current_user = JSON.parse resource['users/current.json'].get
78
+ current_user['user']['id']
79
+ end
74
80
  end
75
81
 
76
82
  def resource
77
83
  @resource ||= client('https://extrabrain.se')
78
84
  end
79
85
 
80
-
81
86
  def get_tasks(team, page)
82
87
  team_resource = client("https://#{team['subdomain']}.extrabrain.se")
83
88
  json = JSON.parse team_resource["tasks.json?user_id=#{user_id}&page=#{page}"].get
84
89
  return nil if json.nil? || json.empty?
85
- json.map { |task_attributes| Task.new(task_attributes) }
90
+ json.map { |task_attributes| Task.new(task_attributes.merge team: team) }
86
91
  end
87
92
 
88
93
  def process_extrabrain_task(task, team)
89
- description = "https://#{team['subdomain']}.extrabrain.se/tasks/#{task.id}"
90
94
  if existing[task.ticket_id]
91
- bug_db[task.project_title][task.ticket_id] = true
92
- return
95
+ bug_db[existing[task.ticket_id]][task.ticket_id] = true
96
+ else
97
+ title = "#{task.ticket_id}: #{task.title}"
98
+ description = task.url
99
+ bug_db[task.project_title][task.ticket_id] = [title, description]
93
100
  end
94
- bug_db[task.project_title][task.ticket_id] = [task.title, description]
95
101
  end
96
102
  end
@@ -1,5 +1,5 @@
1
1
  module OmniFocus
2
2
  module Extrabrain
3
- VERSION = "1.0.1"
3
+ VERSION = "1.0.2"
4
4
  end
5
5
  end
@@ -19,9 +19,11 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
+ spec.add_dependency 'omnifocus'
22
23
  spec.add_dependency 'rest-client'
23
24
  spec.add_dependency 'ruby-keychain'
24
25
 
25
26
  spec.add_development_dependency "bundler", "~> 1.9"
26
27
  spec.add_development_dependency "rake", "~> 10.0"
28
+ spec.add_development_dependency 'byebug'
27
29
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omnifocus-extrabrain
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Ross
@@ -10,6 +10,20 @@ bindir: exe
10
10
  cert_chain: []
11
11
  date: 2015-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: omnifocus
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rest-client
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +80,20 @@ dependencies:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
82
  version: '10.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: byebug
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
69
97
  description: Plugin for omnifocus gem to provide Extrabrain BTS synchronization.
70
98
  email:
71
99
  - alex@aross.se