jirametrics 2.7.2 → 2.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/jirametrics/file_system.rb +10 -2
- data/lib/jirametrics/project_config.rb +21 -11
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed5733b75d3ab3091973a5919269c467e6657a1a7699a6e5e4acb4139f9a292b
|
4
|
+
data.tar.gz: 3e750fe3a053fe9d8b5c30099afc42d1c50187c1d749f922d29bd91eb2f60241
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f97b93668b57a3f5876979daa14631c1f75f6d6294b49ae58f57b2d60e21b36020c64aef8d7affa59e03796e8c7b3e5480546e3a540372d20c3152764d8a6a0
|
7
|
+
data.tar.gz: ed479b302392340ca02a7f58d4ac0e5f27178ff23fc35956ebeb8659af91454ca8d7e752aacbcad3bef942c49bc24f03dca332760b582b23c782cb5824681651
|
@@ -6,14 +6,18 @@ class FileSystem
|
|
6
6
|
attr_accessor :logfile, :logfile_name
|
7
7
|
|
8
8
|
# Effectively the same as File.read except it forces the encoding to UTF-8
|
9
|
-
def load filename
|
9
|
+
def load filename, supress_deprecation: false
|
10
|
+
if filename.end_with?('.json') && !supress_deprecation
|
11
|
+
deprecated(message: 'call load_json instead', date: '2024-11-13')
|
12
|
+
end
|
13
|
+
|
10
14
|
File.read filename, encoding: 'UTF-8'
|
11
15
|
end
|
12
16
|
|
13
17
|
def load_json filename, fail_on_error: true
|
14
18
|
return nil if fail_on_error == false && File.exist?(filename) == false
|
15
19
|
|
16
|
-
JSON.parse load(filename)
|
20
|
+
JSON.parse load(filename, supress_deprecation: true)
|
17
21
|
end
|
18
22
|
|
19
23
|
def save_json json:, filename:
|
@@ -43,4 +47,8 @@ class FileSystem
|
|
43
47
|
end
|
44
48
|
node
|
45
49
|
end
|
50
|
+
|
51
|
+
def foreach root, &block
|
52
|
+
Dir.foreach root, &block
|
53
|
+
end
|
46
54
|
end
|
@@ -63,7 +63,8 @@ class ProjectConfig
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def load_settings
|
66
|
-
|
66
|
+
# This is the wierd exception that we don't ever want mocked out so we skip FileSystem entirely.
|
67
|
+
JSON.parse(File.read(File.join(__dir__, 'settings.json'), encoding: 'UTF-8'))
|
67
68
|
end
|
68
69
|
|
69
70
|
def guess_project_id
|
@@ -136,7 +137,7 @@ class ProjectConfig
|
|
136
137
|
|
137
138
|
def load_board board_id:, filename:
|
138
139
|
board = Board.new(
|
139
|
-
raw:
|
140
|
+
raw: file_system.load_json(filename), possible_statuses: @possible_statuses
|
140
141
|
)
|
141
142
|
board.project_config = self
|
142
143
|
@all_boards[board_id] = board
|
@@ -178,7 +179,7 @@ class ProjectConfig
|
|
178
179
|
# We may not always have this file. Load it if we can.
|
179
180
|
return unless File.exist? filename
|
180
181
|
|
181
|
-
statuses =
|
182
|
+
statuses = file_system.load_json(filename)
|
182
183
|
.map { |snippet| Status.new(raw: snippet) }
|
183
184
|
statuses
|
184
185
|
.find_all { |status| status.global? }
|
@@ -189,13 +190,22 @@ class ProjectConfig
|
|
189
190
|
end
|
190
191
|
|
191
192
|
def load_sprints
|
192
|
-
|
193
|
-
next unless file =~
|
193
|
+
file_system.foreach(@target_path) do |file|
|
194
|
+
next unless file =~ /^#{file_prefix}_board_(\d+)_sprints_\d+.json$/
|
195
|
+
|
196
|
+
file_path = File.join(@target_path, file)
|
197
|
+
board = @all_boards[$1.to_i]
|
198
|
+
unless board
|
199
|
+
@exporter.file_system.log(
|
200
|
+
'Found sprint data but can\'t find a matching board in config. ' \
|
201
|
+
"File: #{file_path}, Boards: #{@all_boards.keys.sort}"
|
202
|
+
)
|
203
|
+
next
|
204
|
+
end
|
194
205
|
|
195
|
-
board_id = $1.to_i
|
196
206
|
timezone_offset = exporter.timezone_offset
|
197
|
-
|
198
|
-
|
207
|
+
file_system.load_json(file_path)['values']&.each do |json|
|
208
|
+
board.sprints << Sprint.new(raw: json, timezone_offset: timezone_offset)
|
199
209
|
end
|
200
210
|
end
|
201
211
|
|
@@ -247,7 +257,7 @@ class ProjectConfig
|
|
247
257
|
|
248
258
|
def load_project_metadata
|
249
259
|
filename = File.join @target_path, "#{file_prefix}_meta.json"
|
250
|
-
json =
|
260
|
+
json = file_system.load_json(filename)
|
251
261
|
|
252
262
|
@data_version = json['version'] || 1
|
253
263
|
|
@@ -380,7 +390,7 @@ class ProjectConfig
|
|
380
390
|
default_board = nil
|
381
391
|
|
382
392
|
group_filenames_and_board_ids(path: path).each do |filename, board_ids|
|
383
|
-
content = file_system.
|
393
|
+
content = file_system.load_json(File.join(path, filename))
|
384
394
|
if board_ids == :unknown
|
385
395
|
boards = [(default_board ||= find_default_board)]
|
386
396
|
else
|
@@ -388,7 +398,7 @@ class ProjectConfig
|
|
388
398
|
end
|
389
399
|
|
390
400
|
boards.each do |board|
|
391
|
-
issues << Issue.new(raw:
|
401
|
+
issues << Issue.new(raw: content, timezone_offset: timezone_offset, board: board)
|
392
402
|
end
|
393
403
|
end
|
394
404
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jirametrics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.7.
|
4
|
+
version: 2.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Bowler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-11-
|
11
|
+
date: 2024-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: random-word
|