bullet_train-themes-light 1.4.0 → 1.4.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 15b257a23112f0b0ffae2175c3408b95474565503274e7f149d8d2fc185ae713
4
- data.tar.gz: c21e0b35953ba7153dd8cab5fd51663e87e60e092aecc364c5b4a81e2a318d78
3
+ metadata.gz: fd6ffe6483f8505277c3da64474b02edfc71014eea876aef3d87e1822482e0d7
4
+ data.tar.gz: c90c0d8f175fdf287d1f486d1ee29968e47fe9dafec774d65d6e20d546594486
5
5
  SHA512:
6
- metadata.gz: 4ed863ab94c33f78b784cd3088d814f50fbd546602761f6da2597edfa8561d0fc6274b8c560c22a4674d728fe10ca7a8f0c81d2b70a7b65d485b8a7407e21324
7
- data.tar.gz: c458c9610daaacadcdd7fc4ad847b9e53377a5c3415a4767b5b81af8a9c03fac098012d1514464b0bde984d244fd533a86849a3f8054988ab67d81a23cde0584
6
+ metadata.gz: dc610cb2c3f2d8991db5997fb394ff463468f108892b1955324c774b7ac7d2ef9f2bd92d72d0d497ce086f22e92c63c28ee6e7105069b3cc7cb9bd5817fe53a2
7
+ data.tar.gz: c081ab721a83cf2ca52d03c6b2cfe357f234ac6a53be73f43f9658ac118b36eecf2837d96dc785ef7f13a4bfcf1a4d17eac32e81826b336f74fe1d356b4b7881
@@ -2,75 +2,77 @@ module BulletTrain
2
2
  module Themes
3
3
  module Light
4
4
  class CustomThemeFileReplacer
5
- mattr_accessor :repo_path
6
-
7
5
  include BulletTrain::Themes::Light::FileReplacer
8
6
 
9
- def initialize(custom_theme)
10
- @repo_path = "./local/bullet_train-themes-#{custom_theme}"
7
+ def initialize(original_theme, custom_theme)
8
+ @original_theme = original_theme
9
+ @custom_theme = custom_theme
10
+ @repo_path = "./local/bullet_train-themes-#{@custom_theme}"
11
+ end
12
+
13
+ def replace_theme
14
+ rename_cloned_files_and_directories_with_custom_theme_name
15
+ replace_cloned_file_contents_with_custom_theme_contents
16
+ transform_file_contents_with_custom_theme_name
17
+ remove_custom_theme_from_main_app
18
+ set_gem_to_v1
19
+ update_gem_author_and_email
11
20
  end
12
21
 
13
- def replace_theme(original_theme, custom_theme)
14
- # Rename the directories
15
- [
16
- "/app/assets/stylesheets/bullet_train/themes/#{original_theme}/",
17
- "/app/assets/stylesheets/#{original_theme}/",
18
- "/app/views/themes/#{original_theme}/",
19
- "/lib/bullet_train/themes/#{original_theme}/"
20
- ].map { |file| @repo_path + file }.each do |original_directory|
21
- custom_directory = original_directory.gsub(/(.*)(#{original_theme})(\/$)/, '\1' + custom_theme + '\3')
22
- FileUtils.mv(original_directory, custom_directory)
22
+ def rename_cloned_files_and_directories_with_custom_theme_name
23
+ cloned_contents = Dir.glob("#{@repo_path}/**/*")
24
+ cloned_directories = cloned_contents.select { |repo_content| File.directory?(repo_content) && repo_content.match?(/\/#{@original_theme}$/) }
25
+ cloned_files = cloned_contents.select { |repo_content| File.file?(repo_content) && repo_content.split("/").last.match?(@original_theme) }
26
+
27
+ (cloned_directories + cloned_files).each do |original_content|
28
+ File.rename(original_content, original_content.gsub(@original_theme, @custom_theme))
23
29
  end
30
+ end
24
31
 
25
- # Only compare ejected files.
26
- files_to_replace =
27
- ejected_files_to_replace(original_theme, custom_theme).map { |file| {file_name: file, must_compare: true} } +
28
- default_files_to_replace(original_theme).map { |file| {file_name: file, must_compare: false} }
29
-
30
- # Replace the file contents and rename the files.
31
- files_to_replace.each do |custom_gem_file|
32
- # All of the files we want to compare against the fresh gem are in the main app.
33
- main_app_file = build_main_app_file_name(original_theme, custom_theme, custom_gem_file[:file_name].gsub(@repo_path, "."))
34
- custom_gem_file[:file_name] = adjust_directory_hierarchy(custom_gem_file[:file_name], original_theme)
35
-
36
- # The content in the main app should replace the cloned gem files.
37
- begin
38
- if custom_gem_file[:must_compare] && !BulletTrain::Themes::Light::FileReplacer.files_have_same_content?(custom_gem_file[:file_name], main_app_file)
39
- BulletTrain::Themes::Light::FileReplacer.replace_content(old: custom_gem_file[:file_name], new: main_app_file)
40
- end
41
- rescue Errno::ENOENT => _
42
- puts "Skipping `#{main_app_file}` because it isn't present."
43
- end
32
+ def replace_cloned_file_contents_with_custom_theme_contents
33
+ repo_contents = Dir.glob("#{@repo_path}/**/*")
34
+ cloned_files = repo_contents.select { |repo_content| File.file?(repo_content) && repo_content.match?(@custom_theme) }
35
+
36
+ # Most files in the root of the starter repository should not replace what we cloned from the original theme gem.
37
+ (Dir.glob("#{@repo_path}/*") << "#{@repo_path}/config/routes.rb").each { |file_to_skip| cloned_files.delete(file_to_skip) }
38
+
39
+ cloned_files.each do |cloned_file|
40
+ starter_repository_file = cloned_file.gsub(@repo_path, ".")
44
41
 
45
- # Only rename file names that still have the original theme in them, i.e. - ./tailwind.config.light.js
46
- if File.basename(custom_gem_file[:file_name]).match?(original_theme)
47
- main_app_file = adjust_directory_hierarchy(main_app_file, custom_theme)
48
- new_file_name = main_app_file.gsub(/^\./, @repo_path).gsub(original_theme, custom_theme)
49
- File.rename(custom_gem_file[:file_name], new_file_name)
42
+ # This file has a different directory structure than what is in the starter repository.
43
+ starter_repository_file.gsub!("app/", "") if cloned_file.match?("lib/bullet_train/themes/#{@custom_theme}.rb")
44
+
45
+ # Some files we have here like the gemspec don't exist in the starter repository, so we skip those.
46
+ if File.exist?(starter_repository_file)
47
+ begin
48
+ BulletTrain::Themes::Light::FileReplacer.replace_content(old: cloned_file, new: starter_repository_file)
49
+ rescue Errno::ENOENT => _
50
+ puts "Couldn't replace contents for #{cloned_file}".red
51
+ end
50
52
  end
51
53
  end
52
54
 
53
- # Change the content of specific files that contain the orignal theme's string.
54
- # i.e. - `module Light` and `tailwind.light.config`.
55
- constantized_original = constantize_from_snake_case(original_theme)
56
- constantized_custom = constantize_from_snake_case(custom_theme)
57
- files_whose_contents_need_to_be_replaced(custom_theme).each do |file|
58
- new_lines = []
55
+ # This is the only file that is copied from and pasted to the starter repository directly with
56
+ # a new name when running the eject command, so we have to move it manually to the new gem.
57
+ `mv ./tailwind.#{@custom_theme}.config.js #{@repo_path}/tailwind.#{@custom_theme}.config.js`
58
+ end
59
+
60
+ def transform_file_contents_with_custom_theme_name
61
+ repo_contents = Dir.glob("#{@repo_path}/**/*")
62
+ files_to_change = repo_contents.select { |repo_content| File.file?(repo_content) }
63
+ original_theme_class_name = @original_theme.split(/[_|-]/).map(&:capitalize).join
64
+ custom_theme_class_name = @custom_theme.split(/[_|-]/).map(&:capitalize).join
65
+ new_lines = []
66
+
67
+ files_to_change.each do |file|
59
68
  File.open(file, "r") do |f|
60
69
  new_lines = f.readlines
70
+ next unless new_lines.join.match?(/#{@original_theme}|#{original_theme_class_name}/)
71
+
61
72
  new_lines = new_lines.map do |line|
62
- # We want the original theme it's being edited from when creating a new theme.
63
- # We also remove mattr_accessor in the eject task, so we need to add it back here.
64
- if f.path == "#{@repo_path}/lib/bullet_train/themes/#{custom_theme}.rb" && line.match?("class Theme < BulletTrain::Themes::")
65
- line = " mattr_accessor :color, default: :blue\n class Theme < BulletTrain::Themes::#{constantize_from_snake_case(original_theme)}::Theme\n"
66
- else
67
- # `_account.html.erb` and `_devise.html.erb` have tailwind classes that contain `light`.
68
- # We shouldn't be replacing the classes with the custom theme string, so we skip it here.
69
- # TODO: We should change this Regexp to check if the original theme is prefixed with `-`.
70
- # If it is, we ignore the string if it's not prefixed with `bullet_train-themes-`,
71
- line.gsub!(original_theme, custom_theme) unless line.match?("bg-light-gradient")
72
- line.gsub!(constantized_original, constantized_custom)
73
- end
73
+ # Avoid replacing Tailwind styles like `font-light` and `font-extralight`.
74
+ line.gsub!(@original_theme, @custom_theme) unless line.match?(/font-.*light/)
75
+ line.gsub!(original_theme_class_name, custom_theme_class_name)
74
76
  line
75
77
  end
76
78
  end
@@ -79,45 +81,47 @@ module BulletTrain
79
81
  f.puts new_lines.join
80
82
  end
81
83
  end
84
+ end
82
85
 
83
- # The contents in this specific main app file don't have the require statements which the gem
84
- # originally has, so we add those back after moving the main app file contents to the gem.
85
- new_lines = nil
86
- File.open("#{@repo_path}/lib/bullet_train/themes/#{custom_theme}.rb", "r") do |file|
87
- new_lines = file.readlines
88
- require_lines =
89
- <<~RUBY
90
- require "bullet_train/themes/#{custom_theme}/version"
91
- require "bullet_train/themes/#{custom_theme}/engine"
92
- require "bullet_train/themes/#{original_theme}"
93
-
94
- RUBY
95
- new_lines.unshift(require_lines)
96
- end
97
- File.open("#{@repo_path}/lib/bullet_train/themes/#{custom_theme}.rb", "w") do |file|
98
- file.puts new_lines.flatten.join
86
+ def remove_custom_theme_from_main_app
87
+ files = [
88
+ "./app/assets/stylesheets/#{@custom_theme}.tailwind.css",
89
+ Dir.glob("./app/assets/stylesheets/#{@custom_theme}/**/*.css"),
90
+ "./app/javascript/application.#{@custom_theme}.js",
91
+ "./app/lib/bullet_train/themes/#{@custom_theme}.rb",
92
+ Dir.glob("./app/views/themes/#{@custom_theme}/**/*.html.erb"),
93
+ ].flatten
94
+ files.each do |file|
95
+ File.delete(file)
99
96
  end
100
97
 
101
- # Since we're generating a new gem, it should be version 1.0
102
- File.open("#{@repo_path}/lib/bullet_train/themes/#{custom_theme}/version.rb", "r") do |file|
98
+ directories = [
99
+ "./app/assets/stylesheets/#{@custom_theme}/",
100
+ "./app/views/themes/#{@custom_theme}/",
101
+ "./app/lib/"
102
+ ].map { |directory| directory unless directory == "./app/lib/" && Dir.empty?(directory) }
103
+ directories.compact.each { |directory| FileUtils.rm_rf(directory) }
104
+ end
105
+
106
+ def set_gem_to_v1
107
+ new_lines = []
108
+ File.open("#{@repo_path}/lib/bullet_train/themes/#{@custom_theme}/version.rb", "r") do |file|
103
109
  new_lines = file.readlines
104
110
  new_lines = new_lines.map { |line| line.match?("VERSION") ? " VERSION = \"1.0\"\n" : line }
105
111
  end
106
- File.open("#{@repo_path}/lib/bullet_train/themes/#{custom_theme}/version.rb", "w") do |file|
107
- file.puts new_lines.join
108
- end
109
112
 
110
- # Remove files and directories from the main application.
111
- files_to_remove_from_main_app(custom_theme).each { |file| File.delete(file) }
112
- directories_to_remove_from_main_app(custom_theme).each do |directory|
113
- FileUtils.rm_rf(directory) unless directory.nil?
113
+ File.open("#{@repo_path}/lib/bullet_train/themes/#{@custom_theme}/version.rb", "w") do |file|
114
+ file.puts new_lines.join
114
115
  end
116
+ end
115
117
 
116
- # Update the author and email.
118
+ def update_gem_author_and_email
117
119
  # If the developer hasn't set these yet, this should simply return empty strings.
118
120
  author = `git config --global user.name`.chomp
119
121
  email = `git config --global user.email`.chomp
120
- File.open("#{@repo_path}/bullet_train-themes-#{custom_theme}.gemspec", "r") do |file|
122
+ new_lines = []
123
+
124
+ File.open("#{@repo_path}/bullet_train-themes-#{@custom_theme}.gemspec", "r") do |file|
121
125
  new_lines = file.readlines
122
126
  new_lines = new_lines.map do |line|
123
127
  if line.match?("spec.authors")
@@ -129,105 +133,10 @@ module BulletTrain
129
133
  end
130
134
  end
131
135
  end
132
- File.open("#{@repo_path}/bullet_train-themes-#{custom_theme}.gemspec", "w") do |file|
136
+ File.open("#{@repo_path}/bullet_train-themes-#{@custom_theme}.gemspec", "w") do |file|
133
137
  file.puts new_lines.join
134
138
  end
135
139
  end
136
-
137
- # By the time we call this method we have already updated the new gem's directories with
138
- # the custom theme name, but the FILE names are still the same from when they were cloned,
139
- # so we use `original_theme` for specific file names below.
140
- def ejected_files_to_replace(original_theme, custom_theme)
141
- [
142
- Dir.glob("#{@repo_path}/app/assets/stylesheets/#{custom_theme}/**/*.css"),
143
- Dir.glob("#{@repo_path}/app/assets/stylesheets/#{custom_theme}/**/*.scss"),
144
- Dir.glob("#{@repo_path}/app/views/themes/#{custom_theme}/**/*.html.erb"),
145
- "/app/javascript/application.#{original_theme}.js",
146
- "/tailwind.#{original_theme}.config.js",
147
- "/app/lib/bullet_train/themes/#{original_theme}.rb",
148
- # The Glob up top doesn't grab the #{original_theme}.tailwind.css file, so we set that here.
149
- "/app/assets/stylesheets/#{original_theme}.tailwind.css",
150
- "/tailwind.mailer.#{original_theme}.config.js"
151
- ].flatten.map { |file| file.match?(/^#{@repo_path}/) ? file : @repo_path + file }
152
- end
153
-
154
- # These files represent ones such as "./lib/bullet_train/themes/light.rb" which
155
- # aren't ejected to the developer's main app, but still need to be changed.
156
- def default_files_to_replace(original_theme)
157
- # TODO: Add this file and the FileReplacer module once they're added to the main branch.
158
- [
159
- "/bullet_train-themes-#{original_theme}.gemspec",
160
- "/app/assets/config/bullet_train_themes_#{original_theme}_manifest.js",
161
- "/lib/tasks/bullet_train/themes/#{original_theme}_tasks.rake",
162
- "/test/bullet_train/themes/#{original_theme}_test.rb"
163
- ].map { |file| @repo_path + file }
164
- end
165
-
166
- def files_to_remove_from_main_app(custom_theme)
167
- [
168
- Dir.glob("./app/assets/stylesheets/#{custom_theme}/**/*.css"),
169
- Dir.glob("./app/assets/stylesheets/#{custom_theme}/**/*.scss"),
170
- "./app/assets/stylesheets/#{custom_theme}.tailwind.css",
171
- "./app/javascript/application.#{custom_theme}.js",
172
- "./app/lib/bullet_train/themes/#{custom_theme}.rb",
173
- Dir.glob("./app/views/themes/#{custom_theme}/**/*.html.erb"),
174
- "./tailwind.mailer.#{custom_theme}.config.js",
175
- "./tailwind.#{custom_theme}.config.js",
176
- ].flatten
177
- end
178
-
179
- def files_whose_contents_need_to_be_replaced(custom_theme)
180
- [
181
- "/app/assets/stylesheets/#{custom_theme}.tailwind.css",
182
- "/app/views/themes/#{custom_theme}/layouts/_account.html.erb",
183
- "/app/views/themes/#{custom_theme}/layouts/_devise.html.erb",
184
- "/bin/rails",
185
- "/lib/bullet_train/themes/#{custom_theme}/engine.rb",
186
- "/lib/bullet_train/themes/#{custom_theme}/version.rb",
187
- "/lib/bullet_train/themes/#{custom_theme}.rb",
188
- "/lib/tasks/bullet_train/themes/#{custom_theme}_tasks.rake",
189
- "/test/bullet_train/themes/#{custom_theme}_test.rb",
190
- "/test/dummy/app/views/layouts/mailer.html.erb",
191
- "/test/dummy/config/application.rb",
192
- "/bullet_train-themes-#{custom_theme}.gemspec",
193
- "/Gemfile",
194
- "/README.md"
195
- ].map { |file| @repo_path + file }
196
- end
197
-
198
- def directories_to_remove_from_main_app(custom_theme)
199
- [
200
- "./app/assets/stylesheets/#{custom_theme}/",
201
- "./app/views/themes/#{custom_theme}/",
202
- "./app/lib/"
203
- ].map { |directory| directory unless directory == "./app/lib/" && Dir.empty?(directory) }
204
- end
205
-
206
- # Since we're cloning a fresh gem, file names that contain the original
207
- # theme stay the same, i.e. - tailwind.light.config.js. However, the names have
208
- # already been changed in the main app when the original theme was ejected.
209
- # Here, we build the correct string that is in the main app to compare the
210
- # files' contents. Then later on we actually rename the new gem's file names.
211
- def build_main_app_file_name(original_theme, custom_theme, custom_gem_file)
212
- main_app_file = custom_gem_file
213
- custom_gem_file_hierarchy = custom_gem_file.split("/")
214
- if custom_gem_file_hierarchy.last.match?(original_theme)
215
- custom_gem_file_hierarchy.last.gsub!(original_theme, custom_theme)
216
- main_app_file = custom_gem_file_hierarchy.join("/")
217
- end
218
- main_app_file
219
- end
220
-
221
- # This addresses one specific file where the hierarchy is
222
- # different after the file is ejected into the main application.
223
- def adjust_directory_hierarchy(file_name, theme_name)
224
- file_name.match?("lib/bullet_train/themes/#{theme_name}") ? file_name.gsub("/app", "") : file_name
225
- end
226
-
227
- # i.e. - foo_bar or foo-bar to FooBar
228
- def constantize_from_snake_case(str)
229
- str.split(/[_|-]/).map(&:capitalize).join
230
- end
231
140
  end
232
141
  end
233
142
  end
@@ -1,7 +1,7 @@
1
1
  module BulletTrain
2
2
  module Themes
3
3
  module Light
4
- VERSION = "1.4.0"
4
+ VERSION = "1.4.1"
5
5
  end
6
6
  end
7
7
  end
@@ -91,9 +91,14 @@ module BulletTrain
91
91
  end
92
92
 
93
93
  def self.release_theme(original_theme_name, args)
94
+ # We only want developers publishing gems off of `bullet_train-themes-light`, so if the task looks
95
+ # something like `rake bullet_train:themes:foo:release[bar]`, we prevent them from moving any further here.
94
96
  if original_theme_name != "light"
95
97
  puts "You can only release new themes based off of Bullet Train's Light theme. Please eject a new theme from there, and publish your gem once you've finished making changes.".red
96
98
  exit 1
99
+ elsif original_theme_name.nil?
100
+ puts "Please run the command with the name of the theme you want to release.".red
101
+ puts "For example: > rake bullet_train:themes:light:release[foo]"
97
102
  end
98
103
 
99
104
  puts "Preparing to release your custom theme: ".blue + args[:theme_name]
@@ -118,19 +123,28 @@ module BulletTrain
118
123
  raise "You already have a repository named `bullet_train-themes-#{args[:theme_name]}` in `./local`.\n" \
119
124
  "Make sure you delete it first to create an entirely new gem."
120
125
  end
121
- `git clone git@github.com:bullet-train-co/bullet_train-themes-light.git ./local/bullet_train-themes-#{args[:theme_name]}`
122
126
 
123
- custom_file_replacer = BulletTrain::Themes::Light::CustomThemeFileReplacer.new(args[:theme_name])
124
- custom_file_replacer.replace_theme("light", args[:theme_name])
127
+ # Pull `bullet_train-themes-light` only from `bullet_train-core` into the new theme directory.
128
+ # https://www.git-scm.com/docs/git-sparse-checkout
129
+ `mkdir ./local/bullet_train-themes-#{args[:theme_name]}`
130
+ `cd ./local/bullet_train-themes-#{args[:theme_name]} && git init && git remote add bullet-train-core git@github.com:bullet-train-co/bullet_train-core.git`
131
+ `cd ./local/bullet_train-themes-#{args[:theme_name]} && git config core.sparseCheckout true && echo "bullet_train-themes-light/**/*" >> .git/info/sparse-checkout`
132
+ `cd ./local/bullet_train-themes-#{args[:theme_name]} && git pull bullet-train-core main && git remote rm bullet-train-core`
133
+ `cd ./local/bullet_train-themes-#{args[:theme_name]} && mv bullet_train-themes-light/* . && mv bullet_train-themes-light/.* .`
134
+ `cd ./local/bullet_train-themes-#{args[:theme_name]} && rmdir bullet_train-themes-light/`
135
+ `cd ./local/bullet_train-themes-#{args[:theme_name]} && git config core.sparseCheckout false`
136
+
137
+ BulletTrain::Themes::Light::CustomThemeFileReplacer.new(original_theme_name, args[:theme_name]).replace_theme
125
138
 
126
139
  work_tree_flag = "--work-tree=local/bullet_train-themes-#{args[:theme_name]}"
127
140
  git_dir_flag = "--git-dir=local/bullet_train-themes-#{args[:theme_name]}/.git"
128
141
  path = "./local/bullet_train-themes-#{args[:theme_name]}"
129
142
 
130
143
  # Set up the proper remote.
131
- `git #{work_tree_flag} #{git_dir_flag} remote set-url origin #{ssh_path}`
144
+ `git #{work_tree_flag} #{git_dir_flag} remote add origin #{ssh_path}`
132
145
  `git #{work_tree_flag} #{git_dir_flag} add .`
133
146
  `git #{work_tree_flag} #{git_dir_flag} commit -m "Add initial files"`
147
+ `git #{work_tree_flag} #{git_dir_flag} branch -m main`
134
148
 
135
149
  # Build the gem.
136
150
  `(cd #{path} && gem build bullet_train-themes-#{args[:theme_name]}.gemspec)`
@@ -153,9 +167,14 @@ module BulletTrain
153
167
  puts "You may have to wait for some time until the gem can be downloaded via the Gemfile.".blue
154
168
  puts "After a few minutes, run the following command in your main application:".blue
155
169
  puts "bundle add bullet_train-themes-#{args[:theme_name]}"
156
- puts "rake bullet_train:themes:#{args[:theme_name]}:install"
157
170
  puts ""
158
171
  puts "Then you'll be ready to use your custom gem in your Bullet Train application.".blue
172
+ puts ""
173
+ puts "Please note that we have deleted the new theme from your main application.".blue
174
+ puts "run `git log -1` for details."
175
+ puts ""
176
+ puts "Use `rake bullet_train:themes:light:install` to revert to the original theme,".blue
177
+ puts "or run `rake bullet_train:themes:#{args[:theme_name]}:install` whenever you want to use your new theme.".blue
159
178
  end
160
179
 
161
180
  def self.install_theme(theme_name)
@@ -171,6 +190,8 @@ module BulletTrain
171
190
  file.write changed
172
191
  end
173
192
  end
193
+
194
+ puts "Finished installing `#{theme_name}`.".blue
174
195
  end
175
196
 
176
197
  def self.clean_theme(theme_name, args)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bullet_train-themes-light
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Culver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-08 00:00:00.000000000 Z
11
+ date: 2023-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: standard