cloudcannon-jekyll-bookshop 2.0.2 → 2.0.3

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
  SHA256:
3
- metadata.gz: cc4e52fe7b3ba536952967db73d6c044bcfbc7b085f2d08a4c68b6596e2bd569
4
- data.tar.gz: c984f34175e0233c5c023d0ff3732fd017a146623b1e4cc2cea86c8197611f18
3
+ metadata.gz: 0a1b63dc14706c1f4274b391bbbbf18aba00c9521f8771065612512cd54d7a36
4
+ data.tar.gz: f6a8930b4c07a262f4f7fc93121a3a741cc8a26034fd523840826360fc7c1a6f
5
5
  SHA512:
6
- metadata.gz: a463bd057baba2cf95a15bb0e1b81ffb7803bbe7df82bfb4a99a83c3c8e265c3e2fba72dc2f0328b39910dbeb6bcbf602580d93a4ae55c0987a5f11366622427
7
- data.tar.gz: 8e9709477eb2d65df9965453f6e2381ce59764acb656ab9bf6b50029bd6c8bd352671a964b8a9f6958d5f6f8588c035bb06d2d97400eb1ab21fba1a0b79f4104
6
+ metadata.gz: dad2a0a51ff4bd99d4457da7badde8701e71bcfbdb850580459ef567a5bf003f35a32a0f42f440e0526c8ad549ae70cb5c6e48153c1df87afba057763623b56c
7
+ data.tar.gz: f8bfc80a9319b9f98cc399c8249fe0ddf0cb16fe9d55f0497842aaf258f6927bd3c49ecc2f0dd7ea7bc86fdfa933b71fe346422a7f380518ebbb483056d0cbb1
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cloudcannon-jekyll-bookshop (2.0.2)
4
+ cloudcannon-jekyll-bookshop (2.0.3)
5
5
  dry-inflector (>= 0.1, < 1.0)
6
6
  jekyll (>= 3.7, < 5.0)
7
7
  node-runner (>= 1.0, < 2.0)
@@ -58,18 +58,47 @@ module CloudCannonJekyllBookshop
58
58
  Jekyll.logger.info "Bookshop:",
59
59
  "Parsing Stories from #{base_path}"
60
60
 
61
- threads = []
62
- Dir.glob("**/*.{bookshop}.{toml,tml,tom,tm}", :base => base_path).each do |f|
63
- threads << Thread.new do
64
- raw_file = File.read(base_path + "/" + f)
65
- component = load_component(raw_file)
66
-
67
- transform_component(f, component).each do |transformed_component|
68
- add_structure(site.config["_array_structures"], transformed_component)
61
+ files = Dir.glob("**/*.{bookshop}.{toml,tml,tom,tm}", :base => base_path);
62
+
63
+ read_attempts = 0
64
+ while files.size > 0 && read_attempts < 5
65
+ processing = files.map(&:clone)
66
+ files = []
67
+ threads = []
68
+ processing.each do |f|
69
+ threads << Thread.new do
70
+ begin
71
+ raw_file = File.read(base_path + "/" + f)
72
+ component = load_component(raw_file)
73
+
74
+ transform_component(f, component).each do |transformed_component|
75
+ add_structure(site.config["_array_structures"], transformed_component)
76
+ end
77
+ rescue
78
+ Thread.current[:output] = f
79
+ end
69
80
  end
70
81
  end
82
+ threads.each do |t|
83
+ t.join
84
+ files << t[:output] if t[:output]
85
+ end
86
+ Jekyll.logger.info "Bookshop:",
87
+ "Had trouble reading #{files.size} file(s), retrying" if files.size > 0
88
+ read_attempts += 1
89
+ end
90
+
91
+ if files.size > 0
92
+ Jekyll.logger.error "Bookshop:",
93
+ "❌ Failed to read #{files.size} file(s)"
94
+ files.each do |f|
95
+ Jekyll.logger.error "Bookshop:",
96
+ "❌ Failed to read #{f}"
97
+ end
98
+ Jekyll.logger.error "Bookshop:",
99
+ "❌ Check your TOML files are valid."
100
+ exit 1
71
101
  end
72
- threads.each(&:join)
73
102
  end
74
103
 
75
104
  def self.setup_helpers
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CloudCannonJekyllBookshop
4
- VERSION = "2.0.2"
4
+ VERSION = "2.0.3"
5
5
  end
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bookshop/cloudcannon-structures",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "Convert a Bookshop object into a CloudCannon structure",
5
5
  "main": "main.js",
6
6
  "scripts": {
@@ -16,7 +16,7 @@
16
16
  "access": "public"
17
17
  },
18
18
  "devDependencies": {
19
- "@bookshop/toml-narrator": "2.0.2",
19
+ "@bookshop/toml-narrator": "2.0.3",
20
20
  "@ltd/j-toml": "^1.17.0",
21
21
  "ava": "^3.15.0",
22
22
  "nyc": "^15.1.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bookshop/toml-narrator",
3
- "version": "2.0.2",
3
+ "version": "2.0.3",
4
4
  "description": "Rewrite Bookshop TOML files to preserve comments",
5
5
  "main": "main.js",
6
6
  "scripts": {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudcannon-jekyll-bookshop
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Liam Bigelow