flight_plan_cli 0.0.4 → 0.0.5

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: 16bea0ef5c15f00562fba78152f00e33b8982719
4
- data.tar.gz: b6c5f3d3a6be11df1300ba3ccf559f64cd338f9c
3
+ metadata.gz: 5696bb0476e7d416d142c6cff8f8c4e39f8e94c4
4
+ data.tar.gz: 3df650be42aed3984fad90f79d89b2f0c3e95709
5
5
  SHA512:
6
- metadata.gz: 44ea264538c6ba1c50b2184963320367e766c0b31ed3f6a27303e0b1d09bbf7ebbb7525c5ac412d097a7e07042f90573ad7b4bc3b0fa1c95e7d53d7b319375a9
7
- data.tar.gz: 54e23e165c32ee8efaf8fb9912e086c7d326c7c0907f0ffa82babf535a8c9835e257100570fa2afb20c2a952aa72fa28db20c1ed738b190fe4afed7510999e8a
6
+ metadata.gz: 3da350d54bcb04f165e421965c3ae619b12ce92a3dd7b0688bf1024a1ce07857402391785382b169eabf574bbb9530fcc07dc5714178bef5ff2b298712ec8162
7
+ data.tar.gz: d03c055bfd2db101b089fd5e7490f452507dad2fd6ef799bc83fcd5998990c8a67cb6653f71fe4d9453035a2d049e64018069009c1679d6ce8c204118558e442
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
1
+ 0.0.5
@@ -2,11 +2,14 @@ require 'thor'
2
2
  require 'colorize'
3
3
 
4
4
  module FlightPlanCli
5
+ class ApiUnauthorized < StandardError; end
6
+ class ApiNotFound < StandardError; end
7
+
5
8
  class Initializer < Thor
6
9
  YAML_FILE = '.flight_plan_cli.yml'.freeze
7
10
 
8
11
  def initialize(*args)
9
- parse_yaml
12
+ read_config
10
13
  super
11
14
  end
12
15
 
@@ -18,24 +21,21 @@ module FlightPlanCli
18
21
 
19
22
  print_swimlane(swimlanes[swimlane_id])
20
23
  end
24
+ rescue ApiUnauthorized
25
+ puts 'Unauthorize. Please ensure your key and secret as setup correctly'.red
21
26
  rescue Errno::ECONNREFUSED, SocketError => e
22
27
  # TODO: caching - low timeout (5s) then fallback to cache
23
- puts "Network error - #{e.message}".red
28
+ puts "Network error. #{e.message}".red
24
29
  end
25
30
 
26
31
  private
27
32
 
28
- attr_reader :board_id, :default_swimlane_ids
33
+ attr_reader :board_id, :repo_id, :default_swimlane_ids
29
34
  attr_reader :api_url, :api_key, :api_secret
30
35
 
31
- def parse_yaml
32
- unless File.exist?(YAML_FILE)
33
- puts "Could not file #{YAML_FILE} file."
34
- exit 1
35
- end
36
- config = YAML.load_file(YAML_FILE)
37
-
36
+ def read_config
38
37
  @board_id = config['board_id']
38
+ @repo_id = config['repo_id']
39
39
  @default_swimlane_ids = config['ls']['default_swimlane_ids']
40
40
 
41
41
  @api_url = config['api_url']
@@ -46,14 +46,15 @@ module FlightPlanCli
46
46
  def print_swimlane(swimlane)
47
47
  puts "#{swimlane['name']} (#{swimlane['tickets'].count})".green
48
48
  swimlane['tickets'].each do |ticket|
49
- puts "├── #{ticket['remote_number']} : #{ticket['remote_title']}".yellow
49
+ puts "├── #{ticket['remote_number'].rjust(4)} : #{ticket['remote_title']}".yellow
50
50
  end
51
51
  end
52
52
 
53
53
  def tickets_by_swimlane
54
- response = client.board_tickets(board_id: board_id)
54
+ response = client.board_tickets(board_id: board_id, repo_id: repo_id)
55
+ raise ApiUnauthorized if response.code == 401
56
+ raise ApiNotFound if response.code == 404
55
57
 
56
- board = response['board_tickets'].first['board']
57
58
  swimlanes = {}
58
59
  response['board_tickets'].each do |board_ticket|
59
60
  swimlane = board_ticket['swimlane']
@@ -63,7 +64,18 @@ module FlightPlanCli
63
64
  swimlanes[swimlane['id']]['tickets'] ||= []
64
65
  swimlanes[swimlane['id']]['tickets'] << board_ticket['ticket']
65
66
  end
66
- board['swimlanes'] = swimlanes
67
+ swimlanes
68
+ end
69
+
70
+ def config
71
+ @config ||=
72
+ begin
73
+ unless File.exist?(YAML_FILE)
74
+ puts "Could not file #{YAML_FILE} file."
75
+ exit 1
76
+ end
77
+ YAML.load_file(YAML_FILE)
78
+ end
67
79
  end
68
80
 
69
81
  def client
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flight_plan_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Cleary
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-11 00:00:00.000000000 Z
11
+ date: 2018-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler