suma 0.1.1 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b0cee8119660d33e2592a44875f218ff7cad624c0c5ff89430c5f97eda5f593e
4
- data.tar.gz: 9fdc83bc1383b931d0907d9f31e4d94986a7922b55ef4f82ae437b4a52833f08
3
+ metadata.gz: b3574bcc351316187d71e125e1ba19a8c3c275993b1a87d0c24cd050831507ca
4
+ data.tar.gz: cc8392459a664fcb6cf2202a8ebdc8346b2db0f4712e24e306cc2b805bd03c60
5
5
  SHA512:
6
- metadata.gz: d2e87931a5396a1b42245c0d3156345e539b6d1f11bb82b6fcc9537603cec0f1d084e7636705d5eae87b180bc1618a77330e616b714ed1b94ae25f910a7209a6
7
- data.tar.gz: 80eebf4ce42b572fb812a8729d6a71e9a96ed08d7d2d2c04b9b9884d721adf70075a6c2ccc6d400bdbc94573edc44f273baec9c9adcb7517134a6473cbabfdf4
6
+ metadata.gz: f83fdb2f934c410f4f434a98d49d46dc5a9d0ce619496a627c9803ed049e28a62b8a50c3c7eafddbbe2204f8486657927a5a2936a170292473ed939e6b5b471f
7
+ data.tar.gz: 7c2ed86bc187638f15957e53299b481563ae874e565bd8a92aedfb3cd30a5825dfb77a37122245132bc6feb9d869b67c8d023e0c6a51e29fd66dc069e6316a3d
data/.rubocop.yml CHANGED
@@ -1,6 +1,7 @@
1
1
  # Auto-generated by Cimas: Do not edit it manually!
2
2
  # See https://github.com/metanorma/cimas
3
3
  inherit_from:
4
+ - .rubocop_todo.yml
4
5
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
5
6
 
6
7
  # local repo-specific modifications
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,77 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2024-10-17 02:50:55 UTC using RuboCop version 1.67.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 3
10
+ # Configuration parameters: Severity, Include.
11
+ # Include: **/*.gemspec
12
+ Gemspec/DuplicatedAssignment:
13
+ Exclude:
14
+ - 'suma.gemspec'
15
+
16
+ # Offense count: 1
17
+ # Configuration parameters: Severity, Include.
18
+ # Include: **/*.gemspec
19
+ Gemspec/RequiredRubyVersion:
20
+ Exclude:
21
+ - 'suma.gemspec'
22
+
23
+ # Offense count: 21
24
+ # This cop supports safe autocorrection (--autocorrect).
25
+ # Configuration parameters: Max, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
26
+ # URISchemes: http, https
27
+ Layout/LineLength:
28
+ Exclude:
29
+ - 'lib/suma/cli.rb'
30
+ - 'lib/suma/collection_manifest.rb'
31
+ - 'lib/suma/processor.rb'
32
+ - 'lib/suma/schema_attachment.rb'
33
+ - 'lib/suma/schema_collection.rb'
34
+ - 'lib/suma/schema_document.rb'
35
+ - 'lib/suma/thor_ext.rb'
36
+ - 'suma.gemspec'
37
+
38
+ # Offense count: 1
39
+ Lint/DuplicateMethods:
40
+ Exclude:
41
+ - 'lib/suma/express_schema.rb'
42
+
43
+ # Offense count: 8
44
+ # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
45
+ Metrics/AbcSize:
46
+ Exclude:
47
+ - 'lib/suma/collection_manifest.rb'
48
+ - 'lib/suma/processor.rb'
49
+ - 'lib/suma/schema_attachment.rb'
50
+ - 'lib/suma/schema_collection.rb'
51
+ - 'lib/suma/schema_config/config.rb'
52
+ - 'lib/suma/schema_document.rb'
53
+ - 'lib/suma/thor_ext.rb'
54
+
55
+ # Offense count: 1
56
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
57
+ # AllowedMethods: refine
58
+ Metrics/BlockLength:
59
+ Max: 33
60
+
61
+ # Offense count: 2
62
+ # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
63
+ Metrics/CyclomaticComplexity:
64
+ Exclude:
65
+ - 'lib/suma/collection_manifest.rb'
66
+ - 'lib/suma/thor_ext.rb'
67
+
68
+ # Offense count: 7
69
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
70
+ Metrics/MethodLength:
71
+ Max: 52
72
+
73
+ # Offense count: 1
74
+ # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
75
+ Metrics/PerceivedComplexity:
76
+ Exclude:
77
+ - 'lib/suma/schema_collection.rb'
data/lib/suma/cli.rb CHANGED
@@ -9,8 +9,10 @@ module Suma
9
9
  class Cli < Thor
10
10
  extend ThorExt::Start
11
11
 
12
- desc "build METANORMA_SITE_MANIFEST", "Build collection specified in site manifest (`metanorma*.yml`)"
13
- option :compile, type: :boolean, default: true, desc: "Compile or skip compile of collection"
12
+ desc "build METANORMA_SITE_MANIFEST",
13
+ "Build collection specified in site manifest (`metanorma*.yml`)"
14
+ option :compile, type: :boolean, default: true,
15
+ desc: "Compile or skip compile of collection"
14
16
  option :schemas_all_path, type: :string, aliases: "-s",
15
17
  desc: "Generate file that contains all schemas in the collection."
16
18
 
@@ -22,14 +24,14 @@ module Suma
22
24
 
23
25
  # Set schemas_all_path to match metanorma_yaml_path
24
26
  schemas_all_path = options[:schemas_all_path] ||
25
- metanorma_site_manifest.gsub("metanorma", "schemas")
27
+ metanorma_site_manifest.gsub("metanorma", "schemas")
26
28
 
27
29
  begin
28
30
  Processor.run(
29
31
  metanorma_yaml_path: metanorma_site_manifest,
30
32
  schemas_all_path: schemas_all_path,
31
33
  compile: options[:compile],
32
- output_directory: "_site"
34
+ output_directory: "_site",
33
35
  )
34
36
  rescue StandardError => e
35
37
  Utils.log "[ERROR] Error occurred during processing. See details below."
@@ -69,7 +69,7 @@ module Suma
69
69
 
70
70
  # If there is collection.yml, this is a document collection, we process
71
71
  # schemas.yaml.
72
- if File.basename(file) == 'collection.yml'
72
+ if File.basename(file) == "collection.yml"
73
73
  schemas_yaml_path = File.join(File.dirname(file), "schemas.yaml")
74
74
  if schemas_yaml_path && File.exist?(schemas_yaml_path)
75
75
  @schema_config = Suma::SchemaConfig::Config.from_file(schemas_yaml_path)
@@ -99,8 +99,8 @@ module Suma
99
99
  # we need to separate this file from the following new entries
100
100
  added = CollectionManifest.new(
101
101
  title: "Collection",
102
- type: "collection",
103
- identifier: self.identifier + "_"
102
+ type: "collection",
103
+ identifier: "#{identifier}_",
104
104
  )
105
105
 
106
106
  added.entry = [
@@ -12,8 +12,8 @@ require "metanorma/collection/collection"
12
12
  module Suma
13
13
  class Processor
14
14
  class << self
15
-
16
- def run(metanorma_yaml_path:, schemas_all_path:, compile:, output_directory: "_site")
15
+ def run(metanorma_yaml_path:, schemas_all_path:, compile:,
16
+ output_directory: "_site")
17
17
  Utils.log "Current directory: #{Dir.getwd}"
18
18
 
19
19
  # This reads the metanorma.yml file
@@ -52,42 +52,6 @@ module Suma
52
52
  collection_config.manifest.remove_schemas_only_sources
53
53
  collection_config.to_file(new_collection_config_path)
54
54
 
55
- # TODO: Do we still need this?
56
- # Define Proc to resolve fileref
57
- my_fileref_proc = proc do |ref_folder, fileref|
58
- # move schemas to modified_schemas
59
- if File.extname(fileref) == ".exp"
60
- fileref.gsub!(
61
- "../../schemas",
62
- "modified_schemas"
63
- )
64
- end
65
- File.join(ref_folder, fileref)
66
- end
67
-
68
- # TODO: Do we still need this?
69
- # Define Proc to resolve identifier
70
- my_identifier_proc = proc do |identifier|
71
- case identifier
72
- when %r{^documents/}
73
- identifier.gsub("documents/", "")
74
- else
75
- identifier
76
- end
77
- end
78
-
79
- # TODO: Do we still need this?
80
- # Define Proc to handle the compilation of express schemas
81
- express_schemas_renderer = proc do |collection_model|
82
- end
83
-
84
- # TODO: Do we still need this?
85
- Metanorma::Collection.tap do |mn|
86
- mn.set_identifier_resolver(&my_identifier_proc)
87
- mn.set_fileref_resolver(&my_fileref_proc)
88
- mn.set_pre_parse_model(&express_schemas_renderer)
89
- end
90
-
91
55
  if compile
92
56
  Utils.log "Compiling complete collection..."
93
57
 
@@ -105,9 +69,11 @@ module Suma
105
69
  }
106
70
  metanorma_collection.render(collection_opts)
107
71
 
108
- # remove xml files
109
- Dir.glob(File.join(Dir.getwd, output_directory, "*.xml")).each do |file|
110
- File.delete(file)
72
+ # TODO: Temporarily disable removal of XML files
73
+ Dir.glob(File.join(Dir.getwd, output_directory,
74
+ "*.xml")).each do |file|
75
+ puts "NOT DELETING ANY FILE #{file.inspect}"
76
+ # File.delete(file)
111
77
  end
112
78
  else
113
79
  Utils.log "No compile option set. Skipping collection compilation."
@@ -55,7 +55,7 @@ module Suma
55
55
  FileUtils.mkdir_p(File.dirname(filename_adoc))
56
56
 
57
57
  relative_path = Pathname.new(filename_config)
58
- .relative_path_from(Pathname.new(File.dirname(filename_adoc)))
58
+ .relative_path_from(Pathname.new(File.dirname(filename_adoc)))
59
59
 
60
60
  # Utils.log "relative_path #{relative_path}"
61
61
 
@@ -68,13 +68,14 @@ module Suma
68
68
  File.join(@output_path, "schema_#{@schema.id}.yaml")
69
69
  end
70
70
 
71
- def to_config
71
+ def to_config(path: nil)
72
72
  # return @config unless @config
73
73
  @config = SchemaConfig::Config.new
74
74
  @config.schemas << SchemaConfig::Schema.new(
75
75
  id: @schema.id,
76
- path: @schema.path
76
+ path: @schema.path,
77
77
  )
78
+ path and @config.path = path
78
79
 
79
80
  @config
80
81
  end
@@ -83,16 +84,16 @@ module Suma
83
84
  relative_path = Pathname.new(filename_config).relative_path_from(Dir.pwd)
84
85
  Utils.log "Save schema config: #{relative_path}"
85
86
 
87
+ # Still overwrite even if the file exists
86
88
  # return if File.exist?(filename_config)
87
89
  FileUtils.mkdir_p(File.dirname(filename_config))
88
90
 
89
- File.open(filename_config, "w") do |file|
90
- file.write(to_config.to_yaml)
91
- end
91
+ to_config.save_to_path(filename_config)
92
92
  end
93
93
 
94
94
  # Compile Metanorma adoc per EXPRESS schema
95
95
  def compile
96
+ # TODO: Clean artifacts after compiling
96
97
  # I am commenting out because I'm playing with the schemas-only status
97
98
  # return self if File.exist?(output_xml_path)
98
99
 
@@ -104,7 +105,7 @@ module Suma
104
105
  Metanorma::Compile.new.compile(
105
106
  filename_adoc,
106
107
  agree_to_terms: true,
107
- install_fonts: false
108
+ install_fonts: false,
108
109
  )
109
110
  Utils.log "Compiling schema (id: #{id}, type: #{self.class}) => #{relative_path}... done!"
110
111
 
@@ -124,7 +125,7 @@ module Suma
124
125
  filename_adoc,
125
126
  filename_adoc("presentation.xml"),
126
127
  filename_adoc("adoc.lutaml.log.txt"),
127
- filename_adoc("err.html")
128
+ filename_adoc("err.html"),
128
129
  ].each do |filename|
129
130
  FileUtils.rm_rf(filename)
130
131
  end
@@ -9,9 +9,10 @@ require_relative "utils"
9
9
  module Suma
10
10
  class SchemaCollection
11
11
  attr_accessor :config, :schemas, :docs, :output_path_docs, :output_path_schemas,
12
- :manifest
12
+ :manifest
13
13
 
14
- def initialize(config: nil, config_yaml: nil, output_path_docs: nil, output_path_schemas: nil, manifest: nil)
14
+ def initialize(config: nil, config_yaml: nil, output_path_docs: nil,
15
+ output_path_schemas: nil, manifest: nil)
15
16
  @schemas = {}
16
17
  @docs = {}
17
18
  @schema_name_to_docs = {}
@@ -44,12 +45,12 @@ module Suma
44
45
  s = ExpressSchema.new(
45
46
  id: config_schema.id,
46
47
  path: config_schema.path.to_s,
47
- output_path: @output_path_schemas.to_s
48
+ output_path: @output_path_schemas.to_s,
48
49
  )
49
50
 
50
51
  doc = klass.new(
51
52
  schema: s,
52
- output_path: @output_path_docs.join(s.id)
53
+ output_path: @output_path_docs.join(s.id),
53
54
  )
54
55
 
55
56
  @docs[s.id] = doc
@@ -74,13 +75,11 @@ module Suma
74
75
 
75
76
  def compile
76
77
  finalize
77
- schemas.each_pair do |schema_id, entry|
78
+ schemas.each_pair do |_schema_id, entry|
78
79
  entry.save_exp
79
80
  end
80
81
 
81
- # DISABLING FOLLOWING CODE AS MISCONCEIVED. THE SCHEMA DOCUMENTS
82
- # BELONG IN THE MAIN COLLECTION NOT HERE
83
- docs.each_pair do |schema_id, entry|
82
+ docs.each_pair do |_schema_id, entry|
84
83
  entry.compile
85
84
  end
86
85
 
@@ -9,6 +9,7 @@ module Suma
9
9
  class Config < Shale::Mapper
10
10
  attribute :schemas, Schema, collection: true
11
11
  attribute :path, Shale::Type::String
12
+ attr_accessor :output_path
12
13
 
13
14
  def initialize(**args)
14
15
  @path = path_relative_to_absolute(path) if path
@@ -39,6 +40,7 @@ module Suma
39
40
  @path = path_relative_to_absolute(new_path)
40
41
  schemas.each do |schema|
41
42
  schema.path = path_relative_to_absolute(schema.path)
43
+ schema.container_path = File.expand_path(@path)
42
44
  end
43
45
  end
44
46
 
@@ -48,17 +50,25 @@ module Suma
48
50
  end
49
51
  end
50
52
 
51
- # TODO: I can't get the relative path working. The schemas-*.yaml file is
52
- # meant to contain the "path" key, which is a relative path to its
53
- # location, then sets the base path to each schema path, which is supposed
54
- # to be relative to "path" key. Somehow, the @path variable is always
55
- # missing in to_yaml...
56
53
  def schemas_to_yaml(model, doc)
57
- # puts "^"*30
58
- # pp self
59
- # pp @path
60
54
  doc["schemas"] = model.schemas.sort_by(&:id).to_h do |schema|
61
- [schema.id, { "path" => path_absolute_to_relative(schema.path) }]
55
+ # We are outputting the schemas collection file to the directory where
56
+ # the collection config is at (assumed to be Dir.pwd), not to the
57
+ # directory we sourced the manifest from, e.g.
58
+ # documents/iso-10303-41/schemas.yaml.
59
+
60
+ # So the schema.container_path = @config.path is not
61
+ # in fact needed, as the files are already absolute. This notion of
62
+ # using @path to create relative paths was misconceived
63
+ [
64
+ schema.id,
65
+ {
66
+ "path" => path_absolute_to_relative(
67
+ schema.path,
68
+ model.output_path || Dir.pwd,
69
+ ),
70
+ },
71
+ ]
62
72
  end
63
73
  end
64
74
 
@@ -69,19 +79,18 @@ module Suma
69
79
  # Or based on current working directory?
70
80
  return relative_path unless @path
71
81
 
82
+ # ... but if this calculates path, we end up expanding it anyway
83
+
72
84
  Pathname.new(File.dirname(@path)).join(eval_path).expand_path.to_s
73
85
  end
74
86
 
75
- def path_absolute_to_relative(absolute_path)
76
- # puts "path_absolute_to_relative 1 #{absolute_path}"
77
- # pp self
78
- # pp path
79
- # pp @hello
80
- return absolute_path unless @path
87
+ def path_absolute_to_relative(absolute_path, container_path)
88
+ container_path ||= @path
89
+ return absolute_path unless container_path
81
90
 
82
- relative_path = Pathname.new(absolute_path).relative_path_from(Pathname.new(@path).dirname).to_s
83
- # puts "path_absolute_to_relative x #{relative_path}"
84
- relative_path
91
+ p = Pathname.new(container_path)
92
+ container = p.directory? ? p.to_s : p.dirname
93
+ Pathname.new(absolute_path).relative_path_from(container).to_s
85
94
  end
86
95
 
87
96
  def update_path(new_path)
@@ -98,8 +107,8 @@ module Suma
98
107
  next if schema_path.absolute?
99
108
 
100
109
  schema_path = (Pathname.new(old_base_path) + schema_path).cleanpath
101
- new_relative_schema_path = schema_path.relative_path_from(new_base_path)
102
- schema.path = new_relative_schema_path
110
+ # This is the new relative schema_path
111
+ schema.path = schema_path.relative_path_from(new_base_path)
103
112
  end
104
113
 
105
114
  @path = new_path
@@ -107,7 +116,7 @@ module Suma
107
116
 
108
117
  def concat(another_config)
109
118
  unless another_config.is_a?(self.class)
110
- raise StandardError, "Can only concatenate a non SchemaConfig::Config object."
119
+ raise StandardError, "Can only concat a SchemaConfig::Config object."
111
120
  end
112
121
 
113
122
  # We need to update the relative paths when paths exist
@@ -120,13 +129,15 @@ module Suma
120
129
  end
121
130
 
122
131
  def save_to_path(filename)
123
- new_config = dup
124
- new_config.path = filename
125
- new_config.update_base_path(File.dirname(filename))
132
+ new_config = dup.tap do |c|
133
+ c.path = filename
134
+ c.update_path(File.dirname(filename))
135
+ c.output_path = filename
136
+ end
126
137
 
127
138
  File.open(filename, "w") do |f|
128
139
  Utils.log "Writing #{filename}..."
129
- f.write(to_yaml)
140
+ f.write(new_config.to_yaml)
130
141
  Utils.log "Done."
131
142
  end
132
143
  end
@@ -8,6 +8,12 @@ module Suma
8
8
  attribute :id, Shale::Type::String
9
9
  attribute :path, Shale::Type::String
10
10
  # attribute :schemas_only, Shale::Type::Boolean
11
+
12
+ # container_path is a copy of Suma::SchemaConfig::Config.path,
13
+ # used to resolve the path of each schema within
14
+ # Suma::SchemaConfig::Config.schemas,
15
+ # when Suma::SchemaConfig::Config.schemas is recursively flattened
16
+ attr_accessor :container_path
11
17
  end
12
18
  end
13
19
  end
@@ -16,23 +16,23 @@ module Suma
16
16
 
17
17
  // _constants.liquid
18
18
  {% if schema.constants.size > 0 %}
19
- #{bookmark("constants")}
19
+ #{bookmark('constants')}
20
20
  {% for thing in schema.constants %}
21
- #{bookmark("{{thing.id}}")}
21
+ #{bookmark('{{thing.id}}')}
22
22
  {% endfor %}
23
23
  {% endif %}
24
24
 
25
25
  // _types.liquid
26
26
  {% if schema.types.size > 0 %}
27
- #{bookmark("types")}
27
+ #{bookmark('types')}
28
28
  // _type.liquid
29
29
  {% for thing in schema.types %}
30
- #{bookmark("{{thing.id}}")}
30
+ #{bookmark('{{thing.id}}')}
31
31
  {% if thing.items.size > 0 %}
32
32
  // _type_items.liquid
33
- #{bookmark("{{thing.id}}.items")}
33
+ #{bookmark('{{thing.id}}.items')}
34
34
  {% for item in thing.items %}
35
- #{bookmark("{{thing.id}}.items.{{item.id}}")}
35
+ #{bookmark('{{thing.id}}.items.{{item.id}}')}
36
36
  {% endfor %}
37
37
  {% endif %}
38
38
  {% endfor %}
@@ -40,10 +40,46 @@ module Suma
40
40
 
41
41
  // _entities.liquid
42
42
  {% if schema.entities.size > 0 %}
43
- #{bookmark("entities")}
43
+ #{bookmark('entities')}
44
44
  {% for thing in schema.entities %}
45
45
  // _entity.liquid
46
- #{bookmark("{{thing.id}}")}
46
+ #{bookmark('{{thing.id}}')}
47
+ {% endfor %}
48
+ {% endif %}
49
+
50
+ // _subtype_constraints.liquid
51
+ {% if schema.subtype_constraints.size > 0 %}
52
+ #{bookmark('subtype_constraints')}
53
+ // _subtype_constraint.liquid
54
+ {% for thing in schema.subtype_constraints %}
55
+ #{bookmark('{{thing.id}}')}
56
+ {% endfor %}
57
+ {% endif %}
58
+
59
+ // _functions.liquid
60
+ {% if schema.functions.size > 0 %}
61
+ #{bookmark('functions')}
62
+ // _function.liquid
63
+ {% for thing in schema.functions %}
64
+ #{bookmark('{{thing.id}}')}
65
+ {% endfor %}
66
+ {% endif %}
67
+
68
+ // _procedures.liquid
69
+ {% if schema.procedures.size > 0 %}
70
+ #{bookmark('procedures')}
71
+ // _procedure.liquid
72
+ {% for thing in schema.procedures %}
73
+ #{bookmark('{{thing.id}}')}
74
+ {% endfor %}
75
+ {% endif %}
76
+
77
+ // _rules.liquid
78
+ {% if schema.rules.size > 0 %}
79
+ #{bookmark('rules')}
80
+ // _rule.liquid
81
+ {% for thing in schema.rules %}
82
+ #{bookmark('{{thing.id}}')}
47
83
  {% endfor %}
48
84
  {% endif %}
49
85
  HEREDOC
@@ -81,7 +117,7 @@ module Suma
81
117
 
82
118
  [[#{@id}]]
83
119
  [%unnumbered,type=express]
84
- == #{@id} #{schema_anchors.gsub(%r{//[^\r\n]+}, "").gsub(/[\n\r]+/, "").gsub(/^[\n\r]/, "")}
120
+ == #{@id} #{schema_anchors.gsub(%r{//[^\r\n]+}, '').gsub(/[\n\r]+/, '').gsub(/^[\n\r]/, '')}
85
121
 
86
122
  [source%unnumbered]
87
123
  --
data/lib/suma/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Suma
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: suma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-06-20 00:00:00.000000000 Z
11
+ date: 2024-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: expressir
@@ -123,6 +123,7 @@ files:
123
123
  - ".gitignore"
124
124
  - ".rspec"
125
125
  - ".rubocop.yml"
126
+ - ".rubocop_todo.yml"
126
127
  - CODE_OF_CONDUCT.md
127
128
  - Gemfile
128
129
  - README.adoc