giblish 2.2.2 → 3.0.0

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.
@@ -0,0 +1,137 @@
1
+ module Giblish
2
+ # Provides a unified interface for node data by explicitly composing
3
+ # multiple providers into a single object.
4
+ #
5
+ # Supports dynamic composition - providers can be added after initialization.
6
+ # Each method explicitly delegates to the first provider that responds to it.
7
+ class NodeDataProvider
8
+ def initialize(*providers)
9
+ @providers = Array(providers).compact
10
+ end
11
+
12
+ def add_provider(provider)
13
+ @providers << provider
14
+ self
15
+ end
16
+
17
+ # === Source Node Interface (DocAttrBuilder + AdocSrcProvider) ===
18
+
19
+ def document_attributes(src_node, dst_node, dst_top)
20
+ provider = find_provider(:document_attributes)
21
+ provider.document_attributes(src_node, dst_node, dst_top)
22
+ end
23
+
24
+ def adoc_source(src_node, dst_node, dst_top)
25
+ provider = find_provider(:adoc_source)
26
+ provider.adoc_source(src_node, dst_node, dst_top)
27
+ end
28
+
29
+ def api_options(src_node, dst_node, dst_top)
30
+ provider = find_provider(:api_options, raise_on_missing: false)
31
+ return {} unless provider
32
+ provider.api_options(src_node, dst_node, dst_top)
33
+ end
34
+
35
+ # === Conversion Info Interface (SuccessfulConversion / FailedConversion) ===
36
+
37
+ def src_node
38
+ provider = find_provider(:src_node)
39
+ provider.src_node
40
+ end
41
+
42
+ def dst_node
43
+ provider = find_provider(:dst_node)
44
+ provider.dst_node
45
+ end
46
+
47
+ def dst_top
48
+ provider = find_provider(:dst_top)
49
+ provider.dst_top
50
+ end
51
+
52
+ def converted
53
+ provider = find_provider(:converted)
54
+ provider.converted
55
+ end
56
+
57
+ def src_rel_path
58
+ provider = find_provider(:src_rel_path)
59
+ provider.src_rel_path
60
+ end
61
+
62
+ def src_basename
63
+ provider = find_provider(:src_basename)
64
+ provider.src_basename
65
+ end
66
+
67
+ def title
68
+ provider = find_provider(:title)
69
+ provider.title
70
+ end
71
+
72
+ def docid
73
+ provider = find_provider(:docid)
74
+ provider.docid
75
+ end
76
+
77
+ def to_s
78
+ provider = find_provider(:to_s)
79
+ provider.to_s
80
+ end
81
+
82
+ # SuccessfulConversion specific
83
+ def stderr
84
+ provider = find_provider(:stderr)
85
+ provider.stderr
86
+ end
87
+
88
+ def adoc
89
+ provider = find_provider(:adoc)
90
+ provider.adoc
91
+ end
92
+
93
+ def dst_rel_path
94
+ provider = find_provider(:dst_rel_path)
95
+ provider.dst_rel_path
96
+ end
97
+
98
+ def purpose_str
99
+ provider = find_provider(:purpose_str)
100
+ provider.purpose_str
101
+ end
102
+
103
+ # FailedConversion specific
104
+ def error_msg
105
+ provider = find_provider(:error_msg)
106
+ provider.error_msg
107
+ end
108
+
109
+ # === History Interface (FileHistory) ===
110
+
111
+ def history
112
+ provider = find_provider(:history, raise_on_missing: false)
113
+ return nil unless provider
114
+ provider.history
115
+ end
116
+
117
+ def branch
118
+ provider = find_provider(:branch, raise_on_missing: false)
119
+ return nil unless provider
120
+ provider.branch
121
+ end
122
+
123
+ def respond_to?(method_name, include_private = false)
124
+ find_provider(method_name, raise_on_missing: false) ? true : super
125
+ end
126
+
127
+ private
128
+
129
+ def find_provider(method_name, raise_on_missing: true)
130
+ provider = @providers.find { |p| p.respond_to?(method_name) }
131
+ if provider.nil? && raise_on_missing
132
+ raise NoMethodError, "None of the providers respond to '#{method_name}'"
133
+ end
134
+ provider
135
+ end
136
+ end
137
+ end
@@ -1,4 +1,5 @@
1
1
  require "pathname"
2
+ require "gran"
2
3
 
3
4
  module Giblish
4
5
  # Provides relevant paths for layout resources based on the given options
@@ -54,7 +55,7 @@ module Giblish
54
55
  return if @src_resource_dir_abs.nil?
55
56
 
56
57
  # Tweak paths based on the content of a given resource dir
57
- file_tree = PathTree.build_from_fs(@src_resource_dir_abs)
58
+ file_tree = Gran::PathTree.build_from_fs(@src_resource_dir_abs)
58
59
 
59
60
  @src_style_path_rel = find_style_file(file_tree, cmd_opts.format, cmd_opts.style_name)
60
61
  @src_style_path_abs = @src_resource_dir_abs / @src_style_path_rel if @src_style_path_rel
@@ -186,7 +187,7 @@ module Giblish
186
187
  return if @asset_regex.nil?
187
188
 
188
189
  # build a tree with all dirs matching the given regexp
189
- st = PathTree.build_from_fs(@srcdir, prune: true) do |p|
190
+ st = Gran::PathTree.build_from_fs(@srcdir, prune: true) do |p|
190
191
  p.directory? && @asset_regex =~ p.to_s
191
192
  end
192
193
 
@@ -17,7 +17,7 @@ module Giblish
17
17
  end
18
18
 
19
19
  def css_path
20
- @parameters.key?("css-path") && !@parameters["css-path"].empty? ? Pathname.new(@parameters["css-path"]) : nil
20
+ (@parameters.key?("css-path") && !@parameters["css-path"].empty?) ? Pathname.new(@parameters["css-path"]) : nil
21
21
  end
22
22
 
23
23
  def search_assets_top_rel
@@ -33,9 +33,9 @@ module Giblish
33
33
  @parameters.key?("as-regexp")
34
34
  end
35
35
 
36
- def method_missing(meth, *args, &block)
36
+ def method_missing(meth, ...)
37
37
  unless respond_to_missing?(meth)
38
- super(meth, *args, &block)
38
+ super
39
39
  return
40
40
  end
41
41
 
@@ -1,7 +1,7 @@
1
1
  require "pathname"
2
2
  require "json"
3
+ require "gran"
3
4
  require_relative "searchquery"
4
- require_relative "../pathtree"
5
5
 
6
6
  module Giblish
7
7
  # reads all lines in the given file at instantiation and
@@ -21,7 +21,7 @@ module Giblish
21
21
  def wash_line(line)
22
22
  # remove some asciidoctor format sequences
23
23
  # '::', '^|===', '^==', '^--, ':myvar: ...'
24
- r = Regexp.new(/(::+|^[=|]+|^--+|^:\w+:.*$)/)
24
+ r = /(::+|^[=|]+|^--+|^:\w+:.*$)/
25
25
  line.gsub(r, "")
26
26
  end
27
27
  end
@@ -205,7 +205,7 @@ module Giblish
205
205
  def build_src_tree
206
206
  # setup the tree of source files and pro-actively read in all text
207
207
  # into memory
208
- src_tree = PathTree.build_from_fs(@assets_fs_path, prune: false) do |p|
208
+ src_tree = Gran::PathTree.build_from_fs(@assets_fs_path, prune: false) do |p|
209
209
  p.extname.downcase == ".adoc"
210
210
  end
211
211
  src_tree.traverse_preorder do |level, node|
@@ -1,5 +1,5 @@
1
1
  require "pathname"
2
- require_relative "pathtree"
2
+ require "gran"
3
3
 
4
4
  module Giblish
5
5
  class SubtreeSrcItf
@@ -75,7 +75,7 @@ module Giblish
75
75
  # with this object as source for conversion options
76
76
  # and adoc_source
77
77
  v_path = Pathname.new("/virtual") / index_dir / "#{@basename}.adoc"
78
- v_tree = PathTree.new(v_path, self)
78
+ v_tree = Gran::PathTree.new(v_path, self)
79
79
  src_node = v_tree.node(v_path, from_root: true)
80
80
 
81
81
  # add the destination node where the converted file will be stored
@@ -1,7 +1,8 @@
1
1
  require "asciidoctor"
2
2
  require "asciidoctor-pdf"
3
- require_relative "pathtree"
3
+ require "gran"
4
4
  require_relative "conversion_info"
5
+ require_relative "node_data_provider"
5
6
  require_relative "utils"
6
7
 
7
8
  module Giblish
@@ -70,7 +71,7 @@ module Giblish
70
71
 
71
72
  # get the top-most node of the source and destination trees
72
73
  @src_tree = src_top
73
- @dst_tree = PathTree.new(dst_top).node(dst_top, from_root: true)
74
+ @dst_tree = Gran::PathTree.new(dst_top).node(dst_top, from_root: true)
74
75
 
75
76
  # setup build-phase callback objects
76
77
  @pre_builders = Array(opts.fetch(:pre_builders, []))
@@ -127,20 +128,24 @@ module Giblish
127
128
  end
128
129
 
129
130
  # the default callback will tie a 'SuccessfulConversion' instance
130
- # to the destination node as its data
131
+ # to the destination node as its data, wrapped in NodeDataProvider
132
+ # to allow dynamic addition of other providers (e.g., history)
131
133
  def self.on_success(src_node, dst_node, dst_tree, doc, adoc_log_str)
132
- dst_node.data = DataDelegator.new(SuccessfulConversion.new(
134
+ conversion_info = SuccessfulConversion.new(
133
135
  src_node: src_node, dst_node: dst_node, dst_top: dst_tree, adoc: doc, adoc_stderr: adoc_log_str
134
- ))
136
+ )
137
+ dst_node.data = NodeDataProvider.new(conversion_info)
135
138
  end
136
139
 
137
140
  # the default callback will tie a 'FailedConversion' instance
138
- # to the destination node as its data
141
+ # to the destination node as its data, wrapped in NodeDataProvider
142
+ # to allow dynamic addition of other providers (e.g., history)
139
143
  def self.on_failure(src_node, dst_node, dst_tree, ex, adoc_log_str)
140
144
  Giblog.logger.error { ex.message }
141
- dst_node.data = DataDelegator.new(FailedConversion.new(
145
+ conversion_info = FailedConversion.new(
142
146
  src_node: src_node, dst_node: dst_node, dst_top: dst_tree, error_msg: ex.message
143
- ))
147
+ )
148
+ dst_node.data = NodeDataProvider.new(conversion_info)
144
149
  end
145
150
  end
146
151
 
@@ -1,3 +1,3 @@
1
1
  module Giblish
2
- VERSION = "2.2.2".freeze
2
+ VERSION = "3.0.0".freeze
3
3
  end
metadata CHANGED
@@ -1,197 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: giblish
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anders Rillbert
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-07 00:00:00.000000000 Z
11
+ date: 2025-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: ruby-lsp
14
+ name: gran
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.11'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '0.11'
27
- - !ruby/object:Gem::Dependency
28
- name: minitest
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '5.16'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '5.16'
41
- - !ruby/object:Gem::Dependency
42
- name: standard
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 1.24.3
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 1.24.3
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '13.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '13.0'
69
- - !ruby/object:Gem::Dependency
70
- name: oga
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '3.3'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3.3'
83
- - !ruby/object:Gem::Dependency
84
- name: thor
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.2'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.2'
97
- - !ruby/object:Gem::Dependency
98
- name: asciidoctor-mathematical
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: 0.3.5
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: 0.3.5
111
- - !ruby/object:Gem::Dependency
112
- name: sinatra
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '2.1'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '2.1'
125
- - !ruby/object:Gem::Dependency
126
- name: thin
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '1.8'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '1.8'
139
- - !ruby/object:Gem::Dependency
140
- name: rack
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - '='
144
- - !ruby/object:Gem::Version
145
- version: 2.2.3
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - '='
151
- - !ruby/object:Gem::Version
152
- version: 2.2.3
153
- - !ruby/object:Gem::Dependency
154
- name: rack-test
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - '='
158
- - !ruby/object:Gem::Version
159
- version: '1.1'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - '='
165
- - !ruby/object:Gem::Version
166
- version: '1.1'
167
- - !ruby/object:Gem::Dependency
168
- name: matrix
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '0.4'
19
+ version: '0.1'
174
20
  type: :runtime
175
21
  prerelease: false
176
22
  version_requirements: !ruby/object:Gem::Requirement
177
23
  requirements:
178
24
  - - "~>"
179
25
  - !ruby/object:Gem::Version
180
- version: '0.4'
26
+ version: '0.1'
181
27
  - !ruby/object:Gem::Dependency
182
28
  name: warning
183
29
  requirement: !ruby/object:Gem::Requirement
184
30
  requirements:
185
31
  - - "~>"
186
32
  - !ruby/object:Gem::Version
187
- version: '1.2'
33
+ version: '1.0'
188
34
  type: :runtime
189
35
  prerelease: false
190
36
  version_requirements: !ruby/object:Gem::Requirement
191
37
  requirements:
192
38
  - - "~>"
193
39
  - !ruby/object:Gem::Version
194
- version: '1.2'
40
+ version: '1.0'
195
41
  - !ruby/object:Gem::Dependency
196
42
  name: asciidoctor
197
43
  requirement: !ruby/object:Gem::Requirement
@@ -201,7 +47,7 @@ dependencies:
201
47
  version: '2.0'
202
48
  - - ">="
203
49
  - !ruby/object:Gem::Version
204
- version: 2.0.20
50
+ version: 2.0.25
205
51
  type: :runtime
206
52
  prerelease: false
207
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -211,21 +57,21 @@ dependencies:
211
57
  version: '2.0'
212
58
  - - ">="
213
59
  - !ruby/object:Gem::Version
214
- version: 2.0.20
60
+ version: 2.0.25
215
61
  - !ruby/object:Gem::Dependency
216
62
  name: asciidoctor-diagram
217
63
  requirement: !ruby/object:Gem::Requirement
218
64
  requirements:
219
65
  - - "~>"
220
66
  - !ruby/object:Gem::Version
221
- version: '2.2'
67
+ version: '3.0'
222
68
  type: :runtime
223
69
  prerelease: false
224
70
  version_requirements: !ruby/object:Gem::Requirement
225
71
  requirements:
226
72
  - - "~>"
227
73
  - !ruby/object:Gem::Version
228
- version: '2.2'
74
+ version: '3.0'
229
75
  - !ruby/object:Gem::Dependency
230
76
  name: asciidoctor-pdf
231
77
  requirement: !ruby/object:Gem::Requirement
@@ -246,42 +92,42 @@ dependencies:
246
92
  requirements:
247
93
  - - "~>"
248
94
  - !ruby/object:Gem::Version
249
- version: '1.12'
95
+ version: '4.0'
250
96
  type: :runtime
251
97
  prerelease: false
252
98
  version_requirements: !ruby/object:Gem::Requirement
253
99
  requirements:
254
100
  - - "~>"
255
101
  - !ruby/object:Gem::Version
256
- version: '1.12'
102
+ version: '4.0'
257
103
  - !ruby/object:Gem::Dependency
258
104
  name: rouge
259
105
  requirement: !ruby/object:Gem::Requirement
260
106
  requirements:
261
107
  - - "~>"
262
108
  - !ruby/object:Gem::Version
263
- version: '3.30'
109
+ version: '4.6'
264
110
  type: :runtime
265
111
  prerelease: false
266
112
  version_requirements: !ruby/object:Gem::Requirement
267
113
  requirements:
268
114
  - - "~>"
269
115
  - !ruby/object:Gem::Version
270
- version: '3.30'
116
+ version: '4.6'
271
117
  - !ruby/object:Gem::Dependency
272
118
  name: prawn-svg
273
119
  requirement: !ruby/object:Gem::Requirement
274
120
  requirements:
275
121
  - - "~>"
276
122
  - !ruby/object:Gem::Version
277
- version: 0.32.0
123
+ version: '0.34'
278
124
  type: :runtime
279
125
  prerelease: false
280
126
  version_requirements: !ruby/object:Gem::Requirement
281
127
  requirements:
282
128
  - - "~>"
283
129
  - !ruby/object:Gem::Version
284
- version: 0.32.0
130
+ version: '0.34'
285
131
  description: |
286
132
  giblish generates indexed and searchable documents from a tree of
287
133
  asciidoc files.
@@ -292,12 +138,12 @@ executables:
292
138
  extensions: []
293
139
  extra_rdoc_files: []
294
140
  files:
295
- - ".github/workflows/unit_tests.yml"
296
141
  - ".gitignore"
297
- - ".ruby-version"
142
+ - ".solargraph.yml"
298
143
  - Changelog.adoc
299
144
  - LICENSE
300
145
  - README.adoc
146
+ - diagram-classes.png
301
147
  - docs/concepts/text_search.adoc
302
148
  - docs/concepts/text_search_im/cgi-search_request.puml
303
149
  - docs/concepts/text_search_im/cgi-search_request.svg
@@ -322,6 +168,9 @@ files:
322
168
  - lib/giblish/adocsrc_providers.rb
323
169
  - lib/giblish/application.rb
324
170
  - lib/giblish/cmdline.rb
171
+ - lib/giblish/config_builders/docid_config_builder.rb
172
+ - lib/giblish/config_builders/git_index_config_builder.rb
173
+ - lib/giblish/config_builders/index_config_builder.rb
325
174
  - lib/giblish/config_utils.rb
326
175
  - lib/giblish/configurator.rb
327
176
  - lib/giblish/conversion_info.rb
@@ -343,7 +192,10 @@ files:
343
192
  - lib/giblish/indexbuilders/templates/tree.html.erb
344
193
  - lib/giblish/indexbuilders/templates/treemap.html.erb
345
194
  - lib/giblish/indexbuilders/verbatimtree.rb
346
- - lib/giblish/pathtree.rb
195
+ - lib/giblish/layout_config/html_layout_config.rb
196
+ - lib/giblish/layout_config/layout_config_result.rb
197
+ - lib/giblish/layout_config/pdf_layout_config.rb
198
+ - lib/giblish/node_data_provider.rb
347
199
  - lib/giblish/resourcepaths.rb
348
200
  - lib/giblish/search/expand_adoc.rb
349
201
  - lib/giblish/search/headingindexer.rb
@@ -382,7 +234,7 @@ licenses:
382
234
  metadata:
383
235
  bug_tracker_uri: https://github.com/rillbert/giblish/issues
384
236
  source_code_uri: https://github.com/rillbert/giblish
385
- post_install_message:
237
+ post_install_message:
386
238
  rdoc_options: []
387
239
  require_paths:
388
240
  - lib
@@ -390,15 +242,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
390
242
  requirements:
391
243
  - - ">="
392
244
  - !ruby/object:Gem::Version
393
- version: '0'
245
+ version: '3.3'
394
246
  required_rubygems_version: !ruby/object:Gem::Requirement
395
247
  requirements:
396
248
  - - ">="
397
249
  - !ruby/object:Gem::Version
398
250
  version: '0'
399
251
  requirements: []
400
- rubygems_version: 3.3.26
401
- signing_key:
252
+ rubygems_version: 3.5.22
253
+ signing_key:
402
254
  specification_version: 4
403
255
  summary: A tool for publishing asciidoc docs stored in git repos
404
256
  test_files: []
@@ -1,30 +0,0 @@
1
- name: Giblish CI checks
2
-
3
- on:
4
- push:
5
- branches: [personal/rillbert/*, main]
6
-
7
- jobs:
8
- test:
9
- runs-on: ubuntu-latest
10
- strategy:
11
- matrix:
12
- ruby-version: ["2.7", "3.0", "3.1"]
13
-
14
- steps:
15
- - name: Install binutils
16
- run: |
17
- sudo apt -y install binutils
18
- - name: Install needed packages
19
- run: |
20
- sudo apt-get -y install libpango1.0-dev graphviz libwebp-dev libzstd-dev
21
- - name: Checkout Giblish
22
- uses: actions/checkout@v3
23
- - name: Set up Ruby
24
- uses: ruby/setup-ruby@v1
25
- with:
26
- ruby-version: ${{ matrix.ruby-version }}
27
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
28
- - name: Run tests
29
- run: |
30
- bundle exec rake
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 3.1.3