marked-conductor 1.0.17 → 1.0.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/README.md +2 -0
  4. data/lib/conductor/config.rb +24 -24
  5. data/lib/conductor/filter.rb +49 -23
  6. data/lib/conductor/version.rb +1 -1
  7. data/src/_README.md +2 -0
  8. metadata +1 -62
  9. data/html/Array.html +0 -160
  10. data/html/Conductor/Command.html +0 -271
  11. data/html/Conductor/Condition.html +0 -791
  12. data/html/Conductor/Config.html +0 -170
  13. data/html/Conductor/Env.html +0 -220
  14. data/html/Conductor/Script.html +0 -288
  15. data/html/Conductor.html +0 -363
  16. data/html/FalseClass.html +0 -138
  17. data/html/Filter.html +0 -269
  18. data/html/Hash.html +0 -160
  19. data/html/Object.html +0 -138
  20. data/html/README_rdoc.html +0 -86
  21. data/html/String.html +0 -1409
  22. data/html/TrueClass.html +0 -138
  23. data/html/YuiCompressor/Yui.html +0 -447
  24. data/html/YuiCompressor.html +0 -93
  25. data/html/created.rid +0 -16
  26. data/html/css/fonts.css +0 -167
  27. data/html/css/rdoc.css +0 -687
  28. data/html/fonts/Lato-Light.ttf +0 -0
  29. data/html/fonts/Lato-LightItalic.ttf +0 -0
  30. data/html/fonts/Lato-Regular.ttf +0 -0
  31. data/html/fonts/Lato-RegularItalic.ttf +0 -0
  32. data/html/fonts/SourceCodePro-Bold.ttf +0 -0
  33. data/html/fonts/SourceCodePro-Regular.ttf +0 -0
  34. data/html/images/add.png +0 -0
  35. data/html/images/arrow_up.png +0 -0
  36. data/html/images/brick.png +0 -0
  37. data/html/images/brick_link.png +0 -0
  38. data/html/images/bug.png +0 -0
  39. data/html/images/bullet_black.png +0 -0
  40. data/html/images/bullet_toggle_minus.png +0 -0
  41. data/html/images/bullet_toggle_plus.png +0 -0
  42. data/html/images/date.png +0 -0
  43. data/html/images/delete.png +0 -0
  44. data/html/images/find.png +0 -0
  45. data/html/images/loadingAnimation.gif +0 -0
  46. data/html/images/macFFBgHack.png +0 -0
  47. data/html/images/package.png +0 -0
  48. data/html/images/page_green.png +0 -0
  49. data/html/images/page_white_text.png +0 -0
  50. data/html/images/page_white_width.png +0 -0
  51. data/html/images/plugin.png +0 -0
  52. data/html/images/ruby.png +0 -0
  53. data/html/images/tag_blue.png +0 -0
  54. data/html/images/tag_green.png +0 -0
  55. data/html/images/transparent.png +0 -0
  56. data/html/images/wrench.png +0 -0
  57. data/html/images/wrench_orange.png +0 -0
  58. data/html/images/zoom.png +0 -0
  59. data/html/index.html +0 -110
  60. data/html/js/darkfish.js +0 -97
  61. data/html/js/navigation.js +0 -105
  62. data/html/js/navigation.js.gz +0 -0
  63. data/html/js/search.js +0 -110
  64. data/html/js/search_index.js +0 -1
  65. data/html/js/search_index.js.gz +0 -0
  66. data/html/js/searcher.js +0 -229
  67. data/html/js/searcher.js.gz +0 -0
  68. data/html/table_of_contents.html +0 -539
  69. data/test.md +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a78acbdf0f9693636a7456265dca72cf53cfa771aaa4fe0e2ad848c4b3526612
4
- data.tar.gz: c913dc807337b977cc0caa4b843512991df890f48cff913a06fe660831aa0f53
3
+ metadata.gz: b36eba533a0b58958b2a4a9cb9c1a4ec2e9d93a1f57fb91524fead2ef93f55a5
4
+ data.tar.gz: 37897dda228ea0b7f8e84c233fb5703c4ed2e9573fe412ae54b724f7d0c6ef4f
5
5
  SHA512:
6
- metadata.gz: b2c6979fcb015ac31d51895772ed83c9aad4644bb8b3f151f31e6e5015ca0fda4ca0b1a994adef1c388fe5c557747cd787da8a9325a2bb543295ac3bcaddbb18
7
- data.tar.gz: c4759af9e3af7495e659464018eaf8eb858d6d10fdb93ed8b137c85c01b71fec23d3d062b91ba1deedcc4859b6ee832064e91a476929cb89e5898d62fbdba469
6
+ metadata.gz: 15a5ec6f5a56f5def420bddbd26c4c644f0ce37e3b32a430d13ba51d35957811f882778ce5f9cd396bde255607ef6697b6c07ce7b64a7a3191548f3302705a76
7
+ data.tar.gz: 73472bc3cb6add78f1566d79e7b5c032da312af0021fc7ccebb17523ba719ca1e7f65f5ab478d05a4e5f29782a62141c169c74136997085230be45c23f2f607f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ### 1.0.19
2
+
3
+ 2024-07-02 11:25
4
+
5
+ #### FIXED
6
+
7
+ - Bug in creating default config
8
+
9
+ ### 1.0.18
10
+
11
+ 2024-07-02 11:08
12
+
13
+ #### NEW
14
+
15
+ - InsertScript or insertCSS arguments that are URLs will be inserted properly
16
+
17
+ #### FIXED
18
+
19
+ - When prepending styles/files/titles, always inject AFTER existing metadata (YAML or MMD)
20
+
1
21
  ### 1.0.17
2
22
 
3
23
  2024-07-02 10:27
data/README.md CHANGED
@@ -170,6 +170,8 @@ For `insertScript`, if path is just a filename it will look for a match in `~/.c
170
170
 
171
171
  For `insertCSS`, if path is just a filename (with or without .css extension), the file will be searched for in `~/.config/conductor/css` or `~/.config/conductor/files` and injected. CSS will be compressed using the YUI algorithm and inserted at the top of the document, but after any existing metadata.
172
172
 
173
+ If the path for `insertScript` or `insertCSS` is a URL instead of a filename, the URL will be properly inserted instead of a file path. Inserted scripts will be surrounded with `<div>` tags, which fixes a quirk with javascript in Marked.
174
+
173
175
  For all of the prepend/append file filters, you can store files in `~/.config/conductor/files` and reference them with just a filename. Otherwise a full path will be assumed.
174
176
 
175
177
  For `autoLink`, any URL that's not contained in parenthesis or following a `[]: url` pattern will be autolinked (surrounded by angle brackets). URLs must contain `//` to be recognized, but any protocol will work, e.g. `x-marked://refresh`.
@@ -14,34 +14,34 @@ module Conductor
14
14
 
15
15
  @tracks = @config["tracks"].symbolize_keys
16
16
  end
17
- end
18
17
 
19
- def create_config(config_file)
20
- config_dir = File.dirname(config_file)
21
- scripts_dir = File.dirname(File.join(config_dir, "scripts"))
22
- FileUtils.mkdir_p(config_dir) unless File.directory?(config_dir)
23
- FileUtils.mkdir_p(scripts_dir) unless File.directory?(scripts_dir)
24
- File.open(config_file, "w") { |f| f.puts sample_config }
25
- puts "Sample config created at #{config_file}"
18
+ def create_config(config_file)
19
+ config_dir = File.dirname(config_file)
20
+ scripts_dir = File.dirname(File.join(config_dir, "scripts"))
21
+ FileUtils.mkdir_p(config_dir) unless File.directory?(config_dir)
22
+ FileUtils.mkdir_p(scripts_dir) unless File.directory?(scripts_dir)
23
+ File.open(config_file, "w") { |f| f.puts sample_config }
24
+ puts "Sample config created at #{config_file}"
26
25
 
27
- Process.exit 0
28
- end
26
+ Process.exit 0
27
+ end
29
28
 
30
- def sample_config
31
- <<~EOCONFIG
32
- tracks:
33
- - condition: phase is pre
34
- tracks:
35
- - condition: tree contains .obsidian
29
+ def sample_config
30
+ <<~EOCONFIG
31
+ tracks:
32
+ - condition: phase is pre
36
33
  tracks:
34
+ - condition: tree contains .obsidian
35
+ tracks:
36
+ - condition: extension is md
37
+ script: obsidian-md-filter
37
38
  - condition: extension is md
38
- script: obsidian-md-filter
39
- - condition: extension is md
40
- command: rdiscount $file
41
- - condition: yaml includes comments
42
- script: blog-processor
43
- - condition: any
44
- command: echo 'NOCUSTOM'
45
- EOCONFIG
39
+ command: rdiscount $file
40
+ - condition: yaml includes comments
41
+ script: blog-processor
42
+ - condition: any
43
+ command: echo 'NOCUSTOM'
44
+ EOCONFIG
45
+ end
46
46
  end
47
47
  end
@@ -78,7 +78,7 @@ class ::String
78
78
  when :h1
79
79
  first_h1.positive? ? first_h1 + 1 : 0
80
80
  else
81
- 0
81
+ meta_insert_point.positive? ? meta_insert_point + 1 : 0
82
82
  end
83
83
 
84
84
  lines.insert(line, "\n<!--toc#{max}-->\n").join("\n")
@@ -92,7 +92,13 @@ class ::String
92
92
  end
93
93
  end
94
94
 
95
+ def insert_stylesheet(path)
96
+ inject_after_meta(%(<link rel="stylesheet" href="#{path.strip}">))
97
+ end
98
+
95
99
  def insert_css(path)
100
+ return insert_stylesheet(path) if path.strip =~ /^http/
101
+
96
102
  path.sub!(/(\.css)?$/, '.css')
97
103
 
98
104
  if path =~ %r{^[~/]}
@@ -109,17 +115,21 @@ class ::String
109
115
  content = IO.read(path)
110
116
  yui = YuiCompressor::Yui.new
111
117
  content = yui.compress(content)
112
- lines = split(/\n/)
113
- insert_point = meta_insert_point
114
- insert_at = insert_point.positive? ? insert_point + 1 : 0
115
- lines.insert(insert_at, "#{content.wrap_style}\n\n")
116
- lines.join("\n")
118
+ inject_after_meta(content.wrap_style)
117
119
  else
118
120
  warn "File not found (#{path})"
119
121
  self
120
122
  end
121
123
  end
122
124
 
125
+ def inject_after_meta(content)
126
+ lines = split(/\n/)
127
+ insert_point = meta_insert_point
128
+ insert_at = insert_point.positive? ? insert_point + 1 : 0
129
+ lines.insert(insert_at, "#{content}\n\n")
130
+ lines.join("\n")
131
+ end
132
+
123
133
  def insert_file(path, type = :file, position = :end)
124
134
  path.strip!
125
135
 
@@ -142,7 +152,7 @@ class ::String
142
152
 
143
153
  case position
144
154
  when :start
145
- "#{out}\n#{self}"
155
+ inject_after_meta(out)
146
156
  when :h1
147
157
  split(/\n/).insert(first_h1 + 1, out).join("\n")
148
158
  else
@@ -154,9 +164,25 @@ class ::String
154
164
  "#{self}\n#{string}"
155
165
  end
156
166
 
167
+ def append!(string)
168
+ replace append(string)
169
+ end
170
+
171
+ def insert_javascript(path)
172
+ %(#{self}\n<script type="javascript" src="#{path.strip}"></script>\n)
173
+ end
174
+
175
+ def insert_raw_javascript(content)
176
+ %(#{self}\n<script>#{content}</script>)
177
+ end
178
+
157
179
  def insert_script(path)
158
180
  path.strip!
159
- path = "#{path}.js" unless path =~ /\.js$/
181
+ return insert_javascript(path) if path =~ /^http/
182
+
183
+ return insert_raw_javascript(path) if path =~ /\(.*?\)/
184
+
185
+ path.sub!(/(\.js)?$/, '.js')
160
186
 
161
187
  if path =~ %r{^[~/]}
162
188
  path = File.expand_path(path)
@@ -172,7 +198,7 @@ class ::String
172
198
  path = new_path if File.exist?(new_path)
173
199
  end
174
200
 
175
- %(#{self}\n<script type="javascript" src="#{path}"></script>\n)
201
+ insert_javascript(path)
176
202
  end
177
203
 
178
204
  def title_from_slug
@@ -297,12 +323,12 @@ class ::String
297
323
  gsub(regex.to_rx, pattern.to_pattern)
298
324
  end
299
325
 
300
- def replace(regex, pattern)
326
+ def replace_one(regex, pattern)
301
327
  sub(regex.to_rx, pattern.to_pattern)
302
328
  end
303
329
 
304
330
  def autolink
305
- gsub(%r{(?mi)(?<!\(|]: )\b((?:[\w-]+?://)[-a-zA-Z0-9@:%._+~#=]{2,256}\b(?:[-a-zA-Z0-9@:%_+.~#?&/=]*))},
331
+ gsub(%r{(?mi)(?<!\(|\]: |")\b((?:[\w-]+?://)[-a-zA-Z0-9@:%._+~#=]{2,256}\b(?:[-a-zA-Z0-9@:%_+.~#?&/=]*))},
306
332
  '<\1>')
307
333
  end
308
334
 
@@ -343,7 +369,7 @@ class Filter < String
343
369
  when /(insert|add|inject)title/
344
370
  content.insert_title
345
371
  when /(insert|add|inject)script/
346
- content = content.append("\n\n<div>")
372
+ content.append!("\n\n<div>")
347
373
  @params.each do |script|
348
374
  content = content.insert_script(script)
349
375
  end
@@ -352,19 +378,19 @@ class Filter < String
352
378
  m = Regexp.last_match
353
379
 
354
380
  position = if @params.count == 2
355
- @params[1].normalize_position
356
- else
357
- m[1].normalize_position
358
- end
381
+ @params[1].normalize_position
382
+ else
383
+ m[1].normalize_position
384
+ end
359
385
  content.insert_file(@params[0], m[2].normalize_include_type, position)
360
386
  when /inserttoc/
361
387
  max = @params.count.positive? ? @params[0] : nil
362
388
 
363
- if @params.count == 2
364
- after = @params[1] =~ /2/ ? :h2 : :h1
365
- else
366
- after = :start
367
- end
389
+ after = if @params.count == 2
390
+ @params[1] =~ /2/ ? :h2 : :h1
391
+ else
392
+ :start
393
+ end
368
394
 
369
395
  content.insert_toc(max, after)
370
396
  when /(add|set)meta/
@@ -377,7 +403,7 @@ class Filter < String
377
403
  # should recognize yaml and mmd
378
404
  content.set_meta(@params[0], @params[1], style: content.meta_type)
379
405
  when /(strip|remove|delete)meta/
380
- if @params&.count.positive?
406
+ if @params.count.positive?
381
407
  content.delete_meta(@params[0])
382
408
  else
383
409
  content.strip_meta
@@ -398,7 +424,7 @@ class Filter < String
398
424
  return content
399
425
  end
400
426
 
401
- content.replace(@params[0], @params[1])
427
+ content.replace_one(@params[0], @params[1])
402
428
  when /(auto|self)link/
403
429
  content.autolink
404
430
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Conductor
4
- VERSION = '1.0.17'
4
+ VERSION = '1.0.19'
5
5
  end
data/src/_README.md CHANGED
@@ -170,6 +170,8 @@ For `insertScript`, if path is just a filename it will look for a match in `~/.c
170
170
 
171
171
  For `insertCSS`, if path is just a filename (with or without .css extension), the file will be searched for in `~/.config/conductor/css` or `~/.config/conductor/files` and injected. CSS will be compressed using the YUI algorithm and inserted at the top of the document, but after any existing metadata.
172
172
 
173
+ If the path for `insertScript` or `insertCSS` is a URL instead of a filename, the URL will be properly inserted instead of a file path. Inserted scripts will be surrounded with `<div>` tags, which fixes a quirk with javascript in Marked.
174
+
173
175
  For all of the prepend/append file filters, you can store files in `~/.config/conductor/files` and reference them with just a filename. Otherwise a full path will be assumed.
174
176
 
175
177
  For `autoLink`, any URL that's not contained in parenthesis or following a `[]: url` pattern will be autolinked (surrounded by angle brackets). URLs must contain `//` to be recognized, but any protocol will work, e.g. `x-marked://refresh`.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marked-conductor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.17
4
+ version: 1.0.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
@@ -204,66 +204,6 @@ files:
204
204
  - README.rdoc
205
205
  - Rakefile
206
206
  - bin/conductor
207
- - html/Array.html
208
- - html/Conductor.html
209
- - html/Conductor/Command.html
210
- - html/Conductor/Condition.html
211
- - html/Conductor/Config.html
212
- - html/Conductor/Env.html
213
- - html/Conductor/Script.html
214
- - html/FalseClass.html
215
- - html/Filter.html
216
- - html/Hash.html
217
- - html/Object.html
218
- - html/README_rdoc.html
219
- - html/String.html
220
- - html/TrueClass.html
221
- - html/YuiCompressor.html
222
- - html/YuiCompressor/Yui.html
223
- - html/created.rid
224
- - html/css/fonts.css
225
- - html/css/rdoc.css
226
- - html/fonts/Lato-Light.ttf
227
- - html/fonts/Lato-LightItalic.ttf
228
- - html/fonts/Lato-Regular.ttf
229
- - html/fonts/Lato-RegularItalic.ttf
230
- - html/fonts/SourceCodePro-Bold.ttf
231
- - html/fonts/SourceCodePro-Regular.ttf
232
- - html/images/add.png
233
- - html/images/arrow_up.png
234
- - html/images/brick.png
235
- - html/images/brick_link.png
236
- - html/images/bug.png
237
- - html/images/bullet_black.png
238
- - html/images/bullet_toggle_minus.png
239
- - html/images/bullet_toggle_plus.png
240
- - html/images/date.png
241
- - html/images/delete.png
242
- - html/images/find.png
243
- - html/images/loadingAnimation.gif
244
- - html/images/macFFBgHack.png
245
- - html/images/package.png
246
- - html/images/page_green.png
247
- - html/images/page_white_text.png
248
- - html/images/page_white_width.png
249
- - html/images/plugin.png
250
- - html/images/ruby.png
251
- - html/images/tag_blue.png
252
- - html/images/tag_green.png
253
- - html/images/transparent.png
254
- - html/images/wrench.png
255
- - html/images/wrench_orange.png
256
- - html/images/zoom.png
257
- - html/index.html
258
- - html/js/darkfish.js
259
- - html/js/navigation.js
260
- - html/js/navigation.js.gz
261
- - html/js/search.js
262
- - html/js/search_index.js
263
- - html/js/search_index.js.gz
264
- - html/js/searcher.js
265
- - html/js/searcher.js.gz
266
- - html/table_of_contents.html
267
207
  - images/preferences.jpg
268
208
  - lib/conductor.rb
269
209
  - lib/conductor/array.rb
@@ -280,7 +220,6 @@ files:
280
220
  - lib/conductor/yui-compressor.rb
281
221
  - marked-conductor.gemspec
282
222
  - src/_README.md
283
- - test.md
284
223
  - test.sh
285
224
  homepage: https://github.com/ttscoff/marked-conductor
286
225
  licenses:
data/html/Array.html DELETED
@@ -1,160 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <meta charset="UTF-8">
6
-
7
- <title>class Array - Marked Conductor</title>
8
-
9
- <script type="text/javascript">
10
- var rdoc_rel_prefix = "./";
11
- var index_rel_prefix = "./";
12
- </script>
13
-
14
- <script src="./js/navigation.js" defer></script>
15
- <script src="./js/search.js" defer></script>
16
- <script src="./js/search_index.js" defer></script>
17
- <script src="./js/searcher.js" defer></script>
18
- <script src="./js/darkfish.js" defer></script>
19
-
20
- <link href="./css/fonts.css" rel="stylesheet">
21
- <link href="./css/rdoc.css" rel="stylesheet">
22
-
23
-
24
- <body id="top" role="document" class="class">
25
- <nav role="navigation">
26
- <div id="project-navigation">
27
- <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
- <h2>
29
- <a href="./index.html" rel="home">Home</a>
30
- </h2>
31
-
32
- <div id="table-of-contents-navigation">
33
- <a href="./table_of_contents.html#pages">Pages</a>
34
- <a href="./table_of_contents.html#classes">Classes</a>
35
- <a href="./table_of_contents.html#methods">Methods</a>
36
- </div>
37
- </div>
38
-
39
- <div id="search-section" role="search" class="project-section initially-hidden">
40
- <form action="#" method="get" accept-charset="utf-8">
41
- <div id="search-field-wrapper">
42
- <input id="search-field" role="combobox" aria-label="Search"
43
- aria-autocomplete="list" aria-controls="search-results"
44
- type="text" name="search" placeholder="Search (/) for a class, method, ..." spellcheck="false"
45
- title="Type to search, Up and Down to navigate, Enter to load">
46
- </div>
47
-
48
- <ul id="search-results" aria-label="Search Results"
49
- aria-busy="false" aria-expanded="false"
50
- aria-atomic="false" class="initially-hidden"></ul>
51
- </form>
52
- </div>
53
-
54
- </div>
55
-
56
-
57
-
58
- <div id="class-metadata">
59
-
60
-
61
- <div id="parent-class-section" class="nav-section">
62
- <h3>Parent</h3>
63
-
64
- <p class="link"><a href="Object.html">Object</a>
65
- </div>
66
-
67
-
68
-
69
-
70
- <!-- Method Quickref -->
71
- <div id="method-list-section" class="nav-section">
72
- <h3>Methods</h3>
73
-
74
- <ul class="link-list" role="directory">
75
- <li ><a href="#method-i-symbolize_keys">#symbolize_keys</a>
76
- <li ><a href="#method-i-symbolize_keys-21">#symbolize_keys!</a>
77
- </ul>
78
- </div>
79
-
80
- </div>
81
- </nav>
82
-
83
- <main role="main" aria-labelledby="class-Array">
84
- <h1 id="class-Array" class="class">
85
- class Array
86
- </h1>
87
-
88
- <section class="description">
89
-
90
- </section>
91
-
92
- <section id="5Buntitled-5D" class="documentation-section">
93
-
94
-
95
-
96
-
97
-
98
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
99
- <header>
100
- <h3>Public Instance Methods</h3>
101
- </header>
102
-
103
- <div id="method-i-symbolize_keys" class="method-detail ">
104
- <div class="method-header">
105
- <div class="method-heading">
106
- <span class="method-name">symbolize_keys</span><span
107
- class="method-args">()</span>
108
- <span class="method-click-advice">click to toggle source</span>
109
- </div>
110
- </div>
111
-
112
- <div class="method-description">
113
-
114
-
115
- <div class="method-source-code" id="symbolize_keys-source">
116
- <pre><span class="ruby-comment"># File lib/conductor/array.rb, line 8</span>
117
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">symbolize_keys</span>
118
- <span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">symbolize_keys</span> }
119
- <span class="ruby-keyword">end</span></pre>
120
- </div>
121
- </div>
122
-
123
-
124
- </div>
125
-
126
- <div id="method-i-symbolize_keys-21" class="method-detail ">
127
- <div class="method-header">
128
- <div class="method-heading">
129
- <span class="method-name">symbolize_keys!</span><span
130
- class="method-args">()</span>
131
- <span class="method-click-advice">click to toggle source</span>
132
- </div>
133
- </div>
134
-
135
- <div class="method-description">
136
-
137
-
138
- <div class="method-source-code" id="symbolize_keys-21-source">
139
- <pre><span class="ruby-comment"># File lib/conductor/array.rb, line 4</span>
140
- <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">symbolize_keys!</span>
141
- <span class="ruby-identifier">replace</span> <span class="ruby-identifier">symbolize_keys</span>
142
- <span class="ruby-keyword">end</span></pre>
143
- </div>
144
- </div>
145
-
146
-
147
- </div>
148
-
149
- </section>
150
-
151
- </section>
152
- </main>
153
-
154
-
155
- <footer id="validator-badges" role="contentinfo">
156
- <p><a href="https://validator.w3.org/check/referer">Validate</a>
157
- <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.7.0.
158
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
159
- </footer>
160
-