gclouder_undefined_resources 0.2.5 → 0.3.0

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: 20430b49eb8ba80923b7f889e8ea10e4231a69fd
4
- data.tar.gz: 526c81e66012a0d5638deb36cd7f3e062ca52759
3
+ metadata.gz: 40af15953719621949d13f39d2bee5d890ae2a55
4
+ data.tar.gz: b61d2d60aacd5c5023930fb938b7aaae13a3fcb2
5
5
  SHA512:
6
- metadata.gz: b5c005bda0d49fd5ae55b65aab68262a45da0eaa89d170b7634ae59bfb141a8381c70b53dbb7c5fc0ae990075f70406f7d8f5cbb0534451cea1bacfab1d53644
7
- data.tar.gz: d9ee105a14940609a5850ebfe1f918aeb428b8c43a04f1899ab9f32048c4f8f7d5f86479b4245d16d70873d12b37da827234b4af284ff00727221cada9aea1bb
6
+ metadata.gz: 0cc34cdf89b64dfd75373010e14855b93aedb832cef7f8aed4115c45f1fc3fe841d2392477023a2f37cb0ec54325a238e6c7c5071a53ecf25fcb6f71821e4f5a
7
+ data.tar.gz: 8acc4dd94d2748f4608b5919b845a4dc7e0bb10d7c874650d7f9e63a3db493c3fd0f0da208a98b7baeb5875420df07df0e8ae412d36efb9190553026ebdf7b90
@@ -98,7 +98,8 @@ module GClouderUndefinedResources
98
98
  end
99
99
 
100
100
  def display_report
101
- status_types = @resources.group_by { |resource| resource.status }
101
+ status_types = @resources.group_by { |resource| resource.status_and_description }
102
+ status_types = status_types.sort_by { |_, resources| resources.length }
102
103
 
103
104
  return if status_types.empty?
104
105
 
@@ -106,7 +107,7 @@ module GClouderUndefinedResources
106
107
  puts " report"
107
108
  puts
108
109
  status_types.each do |status_type, resources|
109
- puts " #{status_type} - #{resources.length}"
110
+ puts " #{status_type[0]} - #{resources.length} - #{status_type[1]}"
110
111
  end
111
112
  puts
112
113
  end
@@ -95,29 +95,71 @@ module GClouderUndefinedResources
95
95
  false
96
96
  end
97
97
 
98
- # FIXME: refactor
98
+ def custom_marker?(type)
99
+ filter.key?("marker")
100
+ end
101
+
102
+ def marker(marker, type)
103
+ if filters.dig("markers", marker.to_s).nil?
104
+ raise StandardError, "undefined marker type: #{marker}"
105
+ end
106
+
107
+ if filters.dig("markers", marker.to_s, type.to_s).nil?
108
+ raise StandardError, "undefined type for marker '#{marker}': #{type}"
109
+ end
110
+
111
+ if filters.dig("markers", marker.to_s, type.to_s, "description")
112
+ description = filters["markers"][marker.to_s][type.to_s]["description"]
113
+ else
114
+ description = nil
115
+ end
116
+
117
+ symbol = filters["markers"][marker.to_s][type.to_s]["symbol"]
118
+ colour = filters["markers"][marker.to_s][type.to_s]["colour"]
119
+
120
+ [symbol.send(colour), description]
121
+ end
122
+
99
123
  def status
100
- if self.filtered?
101
- if self.defined?
102
- if filter.dig("mark", "filtered")
103
- filter["mark"]["filtered"]["symbol"].send(filter["mark"]["filtered"]["colour"])
104
- else
105
- Symbols.tick_filtered
106
- end
124
+ status_and_description[0]
125
+ end
126
+
127
+ def filter_description
128
+ description = status_and_description[1]
129
+ if description
130
+ "# #{description}".gray
131
+ else
132
+ "# filter has no description".gray
133
+ end
134
+ end
135
+
136
+ def status_and_description
137
+ if self.defined? && !self.filtered?
138
+ return marker(:unfiltered_default, :defined)
139
+ end
140
+
141
+ if !self.defined? && !self.filtered?
142
+ return marker(:unfiltered_default, :undefined)
143
+ end
144
+
145
+ if self.defined? && self.filtered?
146
+ if custom_marker?(:defined)
147
+ return marker(filter["marker"], :defined)
107
148
  else
108
- if filter.dig("mark", "unfiltered")
109
- filter["mark"]["unfiltered"]["symbol"].send(filter["mark"]["unfiltered"]["colour"])
110
- else
111
- Symbols.x_filtered
112
- end
149
+ return marker(:filtered_default, :defined)
113
150
  end
114
- else
115
- if self.defined?
116
- Symbols.tick
151
+ end
152
+
153
+ if !self.defined? && self.filtered?
154
+ if custom_marker?(:undefined)
155
+ return marker(filter["marker"], :undefined)
117
156
  else
118
- Symbols.x
157
+ return marker(:filtered_default, :undefined)
119
158
  end
120
159
  end
160
+
161
+ # shouldn't reach this
162
+ raise StandardError, "there was a problem establishing resource state"
121
163
  end
122
164
 
123
165
  def filter
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  module GClouderUndefinedResources
4
- VERSION = "0.2.5"
4
+ VERSION = "0.3.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gclouder_undefined_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Wilson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-06 00:00:00.000000000 Z
11
+ date: 2018-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: trollop