psychgus 1.3.3 → 1.3.4

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: e694ed2c4e320e06a0d0e5c5db16c0472e736e09bac0efef2f5fac0461362c1b
4
- data.tar.gz: 231599a639053718de167143ede822d24c839ddd8ed152bb298bc12fbcb61bdc
3
+ metadata.gz: 91a1bbacfcd8d1a658b07bfad787182c7a789b0d0b2fb3ab51a30b9954572484
4
+ data.tar.gz: 6afd3dba752a30d76bd694d3d5866765522605757c5826f3c366c51d7a19cc0f
5
5
  SHA512:
6
- metadata.gz: 9cea5c31be2934dfb29cd5416c9fbc91aaf4588edf816c2cccef1e5b2290bca7e2f19ae6660979fd5927aa90f97b57a777d3d2268f6154bc6838e344b4a94fff
7
- data.tar.gz: 369236b14dd097f5d7fc29b564cc01cda079a3ccf21145e94d4737cb7958e684f6d7c07bc81fc8ca5a3e18612ae7111584bb97074a15c08fac7a4b502cb6feab
6
+ metadata.gz: d01c30c222b5da77b34a3c4fd0f97f6d1685fea13a9a4addb4fd91ff178733326aabc57ae72a1e8d4511b11a021210ba4aeb9eec7498b81f23310a7dfa307fd8
7
+ data.tar.gz: 0d4deeab277e4894124f8fec33f8e1064a5f95c1bd684dd2f09d612427094c3540452608068cd6076080df8545c395d2b9ab55e04437188f164b416bba8568d4
data/.yardopts ADDED
@@ -0,0 +1,4 @@
1
+ --files 'LICENSE.txt,CHANGELOG.md'
2
+ --protected
3
+ --readme 'README.md'
4
+ --template-path 'yard/templates'
data/CHANGELOG.md CHANGED
@@ -1,18 +1,32 @@
1
1
  # Changelog | Psychgus
2
2
 
3
- Format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
3
+ All notable changes to this project will be documented in this file.
4
4
 
5
- ## [[Unreleased]](https://github.com/esotericpig/psychgus/compare/v1.3.3...master)
5
+ Format is based on [Keep a Changelog v1.0.0](https://keepachangelog.com/en/1.0.0),
6
+ and this project adheres to [Semantic Versioning v2.0.0](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [[Unreleased]](https://github.com/esotericpig/psychgus/compare/v1.3.4...HEAD)
9
+ -
6
10
 
7
- ## [v1.3.3] - 2020-04-25
8
11
 
12
+ ## [v1.3.4] - 2021-06-20
13
+ ### Fixed
14
+ - Fixed test file to use `unsafe_load()` for Psych v4+.
15
+
16
+ ### Changed
17
+ - Changed `SuperSniffer::Parent` to use `SimpleDelegator`.
18
+ - Updated Gems.
19
+ - Formatted files with RuboCop.
20
+
21
+
22
+ ## [v1.3.3] - 2020-04-25
9
23
  ### Fixed
10
24
  - SuperSniffer::Parent
11
25
  - Added require of `delegate` for Delegator
12
26
  - Rake test task didn't catch this (must already include it)
13
27
 
14
- ## [v1.3.2] - 2020-04-23
15
28
 
29
+ ## [v1.3.2] - 2020-04-23
16
30
  ### Changed
17
31
  - SuperSniffer::Parent
18
32
  - Changed to use Delegator to delegate all methods of `node`
@@ -22,16 +36,16 @@ Format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
22
36
  ### Fixed
23
37
  - Fixed some Ruby 2.7 warnings in tests
24
38
 
25
- ## [v1.2.2] - 2020-03-15
26
39
 
40
+ ## [v1.2.2] - 2020-03-15
27
41
  ### Fixed
28
42
  - Fixed Psych version to be >= 3.0 for `to_yaml/encode_with` warnings
29
43
  - This is mainly for Windows
30
44
  - [Ruby-lang Bug #13115](https://bugs.ruby-lang.org/issues/13115)
31
45
  - [GitHub Psych Commit](https://github.com/ruby/psych/commit/712a65a53f3c15105cd86e8ad3ee3c779050ada4)
32
46
 
33
- ## [v1.2.1] - 2019-12-18
34
47
 
48
+ ## [v1.2.1] - 2019-12-18
35
49
  ### Added
36
50
  - Use of YardGhurt gem for Rakefile tasks
37
51
 
@@ -44,8 +58,8 @@ Format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
44
58
  ### Fixed
45
59
  - Updated gems
46
60
 
47
- ## [v1.2.0] - 2019-07-11
48
61
 
62
+ ## [v1.2.0] - 2019-07-11
49
63
  ### Added
50
64
  - Commonly-used Stylers and Stylables
51
65
  - Changelog
@@ -60,6 +74,7 @@ Format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
60
74
  ### Fixed
61
75
  - Psychgus.dump_stream() if you only pass in a Hash w/ symbols as keys (options would be set to it, instead of objects)
62
76
 
77
+
63
78
  ## [v1.0.0] - 2019-07-03
64
79
  ### Added
65
80
  ### Changed
data/Gemfile CHANGED
@@ -1,24 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  # frozen_string_literal: true
3
3
 
4
- #--
5
- # This file is part of Psychgus.
6
- # Copyright (c) 2017-2019 Jonathan Bradley Whited (@esotericpig)
7
- #
8
- # Psychgus is free software: you can redistribute it and/or modify
9
- # it under the terms of the GNU Lesser General Public License as published by
10
- # the Free Software Foundation, either version 3 of the License, or
11
- # (at your option) any later version.
12
- #
13
- # Psychgus is distributed in the hope that it will be useful,
14
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- # GNU Lesser General Public License for more details.
17
- #
18
- # You should have received a copy of the GNU Lesser General Public License
19
- # along with Psychgus. If not, see <http://www.gnu.org/licenses/>.
20
- #++
21
-
22
4
 
23
5
  source 'https://rubygems.org'
24
6
 
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # Psychgus
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/psychgus.svg)](https://badge.fury.io/rb/psychgus)
4
- [![Build Status](https://travis-ci.org/esotericpig/psychgus.svg?branch=master)](https://travis-ci.org/esotericpig/psychgus)
5
4
  [![Doc Coverage](http://inch-ci.org/github/esotericpig/psychgus.svg?branch=master)](https://inch-ci.org/github/esotericpig/psychgus)
6
5
 
7
6
  [![Documentation](https://img.shields.io/badge/doc-yard-%23A0522D.svg)](https://esotericpig.github.io/docs/psychgus/yardoc/index.html)
@@ -118,7 +117,7 @@ require 'psychgus'
118
117
 
119
118
  class CoffeeStyler
120
119
  include Psychgus::Styler
121
-
120
+
122
121
  def style_sequence(sniffer,node)
123
122
  node.style = Psychgus::SEQUENCE_FLOW
124
123
  end
@@ -138,12 +137,12 @@ puts coffee.to_yaml(stylers: CoffeeStyler.new)
138
137
 
139
138
  class Coffee
140
139
  include Psychgus::Blueberry
141
-
140
+
142
141
  def initialize
143
142
  @roast = ['Light', 'Medium', 'Dark', 'Extra Dark']
144
143
  @style = ['Cappuccino', 'Espresso', 'Latte', 'Mocha']
145
144
  end
146
-
145
+
147
146
  def psychgus_stylers(sniffer)
148
147
  CoffeeStyler.new
149
148
  end
@@ -164,20 +163,20 @@ require 'psychgus'
164
163
 
165
164
  class BurgerStyler
166
165
  include Psychgus::Styler # Mix in methods needed for styling
167
-
166
+
168
167
  # Style maps (Psych::Nodes::Mapping)
169
168
  # - Hashes (key/value pairs)
170
169
  # - Example: "Burgers: Classic {}"
171
170
  def style_mapping(sniffer,node)
172
171
  node.style = Psychgus::MAPPING_FLOW if sniffer.level >= 4
173
172
  end
174
-
173
+
175
174
  # Style scalars (Psych::Nodes::Scalar)
176
175
  # - Any text (non-alias)
177
176
  def style_scalar(sniffer,node)
178
177
  # Remove colon (change symbols into strings)
179
178
  node.value = node.value.sub(':','')
180
-
179
+
181
180
  # Capitalize each word
182
181
  node.value = node.value.split(' ').map do |v|
183
182
  if v.casecmp('BBQ') == 0
@@ -186,11 +185,11 @@ class BurgerStyler
186
185
  v.capitalize()
187
186
  end
188
187
  end.join(' ')
189
-
188
+
190
189
  # Change lettuce to spinach
191
190
  node.value = 'Spinach' if node.value == 'Lettuce'
192
191
  end
193
-
192
+
194
193
  # Style sequences (Psych::Nodes::Sequence)
195
194
  # - Arrays
196
195
  # - Example: "[Lettuce, Onions, Pickles, Tomatoes]"
@@ -259,50 +258,50 @@ require 'psychgus'
259
258
 
260
259
  class BurgerStyler
261
260
  include Psychgus::Styler # Mix in methods needed for styling
262
-
261
+
263
262
  def initialize(sniffer)
264
263
  @class_level = sniffer.level
265
264
  @class_position = sniffer.position
266
265
  end
267
-
266
+
268
267
  # Style all nodes (Psych::Nodes::Node)
269
268
  def style(sniffer,node)
270
269
  # Remove "!ruby/object:..." for Burger classes (not Burgers class)
271
270
  node.tag = nil if node.node_of?(:mapping,:scalar,:sequence)
272
-
271
+
273
272
  # This is another way to do the above
274
273
  #node.tag = nil if node.respond_to?(:tag=)
275
274
  end
276
-
275
+
277
276
  # Style maps (Psych::Nodes::Mapping)
278
277
  # - Hashes (key/value pairs)
279
278
  # - Example: "Burgers: Classic {}"
280
279
  def style_mapping(sniffer,node)
281
280
  parent = sniffer.parent
282
-
281
+
283
282
  if !parent.nil?()
284
283
  # BBQ
285
284
  node.style = Psychgus::MAPPING_FLOW if parent.node_of?(:scalar) &&
286
285
  parent.value.casecmp('BBQ') == 0
287
286
  end
288
287
  end
289
-
288
+
290
289
  # Style scalars (Psych::Nodes::Scalar)
291
290
  # - Any text (non-alias)
292
291
  def style_scalar(sniffer,node)
293
292
  parent = sniffer.parent
294
-
293
+
295
294
  # Single quote scalars that are not keys to a map
296
295
  # - "child_key?" is the same as "child_type == :key"
297
296
  node.style = Psychgus::SCALAR_SINGLE_QUOTED unless parent.child_key?()
298
297
  end
299
-
298
+
300
299
  # Style sequences (Psych::Nodes::Sequence)
301
300
  # - Arrays
302
301
  # - Example: "[Lettuce, Onions, Pickles, Tomatoes]"
303
302
  def style_sequence(sniffer,node)
304
303
  relative_level = (sniffer.level - @class_level) + 1
305
-
304
+
306
305
  # "[Ketchup, Mustard]"
307
306
  node.style = Psychgus::SEQUENCE_FLOW if relative_level == 3
308
307
  end
@@ -310,23 +309,23 @@ end
310
309
 
311
310
  class Burger
312
311
  include Psychgus::Blueberry # Mix in methods needed to be stylable
313
-
312
+
314
313
  attr_accessor :bun
315
314
  attr_accessor :cheese
316
315
  attr_accessor :sauce
317
-
316
+
318
317
  def initialize(sauce,cheese,bun)
319
318
  @bun = bun
320
319
  @cheese = cheese
321
320
  @sauce = sauce
322
321
  end
323
-
322
+
324
323
  # Return our styler(s)
325
324
  # - Can be an Array: [MyStyler1.new, MyStyler2.new]
326
325
  def psychgus_stylers(sniffer)
327
326
  return BurgerStyler.new(sniffer)
328
327
  end
329
-
328
+
330
329
  # You can still use Psych's encode_with(), no problem
331
330
  def encode_with(coder)
332
331
  coder['Bun'] = @bun
@@ -339,23 +338,23 @@ class Burgers
339
338
  attr_accessor :burgers
340
339
  attr_accessor :toppings
341
340
  attr_accessor :favorite
342
-
341
+
343
342
  def initialize()
344
343
  @burgers = {
345
344
  'Classic' => Burger.new(['Ketchup','Mustard'],'American' ,'Sesame Seed'),
346
345
  'BBQ' => Burger.new('Honey BBQ' ,'Cheddar' ,'Kaiser'),
347
346
  'Fancy' => Burger.new('Spicy Wasabi' ,'Smoked Gouda','Hawaiian')
348
347
  }
349
-
348
+
350
349
  @toppings = [
351
350
  'Mushrooms',
352
351
  %w(Lettuce Onions Pickles Tomatoes),
353
352
  [%w(Ketchup Mustard),%w(Salt Pepper)]
354
353
  ]
355
-
354
+
356
355
  @favorite = @burgers['BBQ'] # Alias
357
356
  end
358
-
357
+
359
358
  # You can still use Psych's encode_with(), no problem
360
359
  def encode_with(coder)
361
360
  coder['Burgers'] = @burgers
@@ -430,7 +429,7 @@ require 'psychgus'
430
429
 
431
430
  class MyStyler
432
431
  include Psychgus::Styler
433
-
432
+
434
433
  def style_sequence(sniffer,node)
435
434
  node.style = Psychgus::SEQUENCE_FLOW
436
435
  end
@@ -605,7 +604,7 @@ Clean &amp; generate pristine doc:
605
604
  [GNU LGPL v3+](LICENSE.txt)
606
605
 
607
606
  > Psychgus (<https://github.com/esotericpig/psychgus>)
608
- > Copyright (c) 2017-2020 Jonathan Bradley Whited (@esotericpig)
607
+ > Copyright (c) 2017-2021 Jonathan Bradley Whited
609
608
  >
610
609
  > Psychgus is free software: you can redistribute it and/or modify
611
610
  > it under the terms of the GNU Lesser General Public License as published by
data/Rakefile CHANGED
@@ -1,22 +1,5 @@
1
1
  # encoding: UTF-8
2
-
3
- #--
4
- # This file is part of Psychgus.
5
- # Copyright (c) 2019-2020 Jonathan Bradley Whited (@esotericpig)
6
- #
7
- # Psychgus is free software: you can redistribute it and/or modify
8
- # it under the terms of the GNU Lesser General Public License as published by
9
- # the Free Software Foundation, either version 3 of the License, or
10
- # (at your option) any later version.
11
- #
12
- # Psychgus is distributed in the hope that it will be useful,
13
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
- # GNU Lesser General Public License for more details.
16
- #
17
- # You should have received a copy of the GNU Lesser General Public License
18
- # along with Psychgus. If not, see <https://www.gnu.org/licenses/>.
19
- #++
2
+ # frozen_string_literal: true
20
3
 
21
4
 
22
5
  require 'bundler/gem_tasks'
@@ -38,10 +21,11 @@ CLOBBER.include('doc/')
38
21
 
39
22
  # Execute "rake clobber doc" for pristine docs
40
23
  desc 'Generate documentation (YARDoc)'
41
- task :doc => [:yard,:yard_gfm_fix] do |task|
42
- end
24
+ task doc: %i[yard yard_gfm_fix]
43
25
 
44
- Rake::TestTask.new() do |task|
26
+ # To test using different Gem versions:
27
+ # GST=1 bundle update && bundle exec rake test
28
+ Rake::TestTask.new do |task|
45
29
  task.libs = ['lib','test']
46
30
  task.pattern = File.join('test','**','*_test.rb')
47
31
  task.description += " ('#{task.pattern}')"
@@ -53,40 +37,34 @@ end
53
37
  desc 'Run all tests (including writing to temp files, etc.)'
54
38
  task :test_all do |task|
55
39
  ENV['PSYCHGUS_TEST'] = 'all'
56
-
40
+
57
41
  test_task = Rake::Task[:test]
58
-
59
- test_task.reenable()
60
- test_task.invoke()
42
+
43
+ test_task.reenable
44
+ test_task.invoke
61
45
  end
62
46
 
63
- YARD::Rake::YardocTask.new() do |task|
47
+ YARD::Rake::YardocTask.new do |task|
64
48
  task.files = [File.join('lib','**','*.rb')]
65
-
66
- task.options += ['--files','CHANGELOG.md,LICENSE.txt']
67
- task.options += ['--readme','README.md']
68
-
69
- task.options << '--protected' # Show protected methods
70
- task.options += ['--template-path',File.join('yard','templates')]
71
49
  task.options += ['--title',"Psychgus v#{Psychgus::VERSION} Doc"]
72
50
  end
73
51
 
74
- YardGhurt::GFMFixTask.new() do |task|
52
+ YardGhurt::GFMFixTask.new do |task|
75
53
  task.description = 'Fix (find & replace) text in the YARD files for GitHub differences'
76
-
54
+
77
55
  task.arg_names = [:dev]
78
56
  task.dry_run = false
79
57
  task.fix_code_langs = true
80
58
  task.md_files = ['index.html']
81
-
82
- task.before = Proc.new() do |task,args|
59
+
60
+ task.before = proc do |t2,args|
83
61
  # Delete this file as it's never used (index.html is an exact copy)
84
- YardGhurt.rm_exist(File.join(task.doc_dir,'file.README.html'))
85
-
62
+ YardGhurt.rm_exist(File.join(t2.doc_dir,'file.README.html'))
63
+
86
64
  # Root dir of my GitHub Page for CSS/JS
87
- GHP_ROOT = YardGhurt.to_bool(args.dev) ? '../../esotericpig.github.io' : '../../..'
88
-
89
- task.css_styles << %Q(<link rel="stylesheet" type="text/css" href="#{GHP_ROOT}/css/prism.css" />)
90
- task.js_scripts << %Q(<script src="#{GHP_ROOT}/js/prism.js"></script>)
65
+ ghp_root = YardGhurt.to_bool(args.dev) ? '../../esotericpig.github.io' : '../../..'
66
+
67
+ t2.css_styles << %Q(<link rel="stylesheet" type="text/css" href="#{ghp_root}/css/prism.css" />)
68
+ t2.js_scripts << %Q(<script src="#{ghp_root}/js/prism.js"></script>)
91
69
  end
92
70
  end
data/lib/psychgus.rb CHANGED
@@ -1,22 +1,11 @@
1
- #!/usr/bin/env ruby
2
1
  # encoding: UTF-8
2
+ # frozen_string_literal: true
3
3
 
4
4
  #--
5
5
  # This file is part of Psychgus.
6
- # Copyright (c) 2017-2019 Jonathan Bradley Whited (@esotericpig)
7
- #
8
- # Psychgus is free software: you can redistribute it and/or modify
9
- # it under the terms of the GNU Lesser General Public License as published by
10
- # the Free Software Foundation, either version 3 of the License, or
11
- # (at your option) any later version.
12
- #
13
- # Psychgus is distributed in the hope that it will be useful,
14
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- # GNU Lesser General Public License for more details.
17
- #
18
- # You should have received a copy of the GNU Lesser General Public License
19
- # along with Psychgus. If not, see <http://www.gnu.org/licenses/>.
6
+ # Copyright (c) 2017-2021 Jonathan Bradley Whited
7
+ #
8
+ # SPDX-License-Identifier: LGPL-3.0-or-later
20
9
  #++
21
10
 
22
11
 
@@ -42,22 +31,22 @@ require 'psychgus/super_sniffer/parent'
42
31
  # Psychgus uses the core standard library {https://github.com/ruby/psych Psych} for working with YAML
43
32
  # and extends it so that developers can easily style the YAML according to their needs.
44
33
  # Thank you to the people that worked and continue to work hard on that project.
45
- #
34
+ #
46
35
  # The name comes from the well-styled character Gus from the TV show Psych.
47
- #
36
+ #
48
37
  # == Create a Styler
49
- #
38
+ #
50
39
  # First, we will create a {Styler}.
51
- #
40
+ #
52
41
  # All you need to do is add +include Psychgus::Styler+ to a class.
53
- #
42
+ #
54
43
  # Here is a complex {Styler} for the examples below:
55
44
  # require 'psychgus'
56
- #
45
+ #
57
46
  # class BurgerStyler
58
47
  # # Mix in methods needed for styling
59
48
  # include Psychgus::Styler
60
- #
49
+ #
61
50
  # def initialize(sniffer=nil)
62
51
  # if sniffer.nil?()
63
52
  # @class_level = 0
@@ -68,48 +57,48 @@ require 'psychgus/super_sniffer/parent'
68
57
  # @class_position = sniffer.position
69
58
  # end
70
59
  # end
71
- #
60
+ #
72
61
  # # Style all nodes (Psych::Nodes::Node)
73
62
  # def style(sniffer,node)
74
63
  # # Remove "!ruby/object:..." for classes
75
64
  # node.tag = nil if node.node_of?(:mapping,:scalar,:sequence)
76
- #
65
+ #
77
66
  # # This is another way to do the above
78
67
  # #node.tag = nil if node.respond_to?(:tag=)
79
68
  # end
80
- #
69
+ #
81
70
  # # Style aliases (Psych::Nodes::Alias)
82
71
  # def style_alias(sniffer,node)
83
72
  # end
84
- #
73
+ #
85
74
  # # Style maps (Psych::Nodes::Mapping)
86
75
  # # - Hashes (key/value pairs)
87
76
  # # - Example: "Burgers: Classic {}"
88
77
  # def style_mapping(sniffer,node)
89
78
  # parent = sniffer.parent
90
- #
79
+ #
91
80
  # if !parent.nil?()
92
81
  # # BBQ
93
82
  # node.style = Psychgus::MAPPING_FLOW if parent.node_of?(:scalar) &&
94
83
  # parent.value.casecmp('BBQ') == 0
95
84
  # end
96
85
  # end
97
- #
86
+ #
98
87
  # # Style scalars (Psych::Nodes::Scalar)
99
88
  # # - Any text (non-alias)
100
89
  # def style_scalar(sniffer,node)
101
90
  # parent = sniffer.parent
102
- #
91
+ #
103
92
  # # Single quote scalars that are not keys to a map
104
93
  # # - "child_key?" is the same as "child_type == :key"
105
94
  # node.style = Psychgus::SCALAR_SINGLE_QUOTED unless parent.child_key?()
106
- #
95
+ #
107
96
  # # Remove colon (change symbols into strings)
108
97
  # node.value = node.value.sub(':','')
109
- #
98
+ #
110
99
  # # Change lettuce to spinach
111
100
  # node.value = 'Spinach' if node.value.casecmp('Lettuce') == 0
112
- #
101
+ #
113
102
  # # Capitalize each word
114
103
  # node.value = node.value.split(' ').map do |v|
115
104
  # if v.casecmp('BBQ') == 0
@@ -119,23 +108,23 @@ require 'psychgus/super_sniffer/parent'
119
108
  # end
120
109
  # end.join(' ')
121
110
  # end
122
- #
111
+ #
123
112
  # # Style sequences (Psych::Nodes::Sequence)
124
113
  # # - Arrays
125
114
  # # - Example: "[Lettuce, Onions, Pickles, Tomatoes]"
126
115
  # def style_sequence(sniffer,node)
127
116
  # relative_level = (sniffer.level - @class_level) + 1
128
- #
117
+ #
129
118
  # node.style = Psychgus::SEQUENCE_FLOW if sniffer.level >= 4
130
- #
119
+ #
131
120
  # # Make "[Ketchup, Mustard]" a block for the Class Example
132
121
  # node.style = Psychgus::SEQUENCE_BLOCK if relative_level == 7
133
122
  # end
134
123
  # end
135
- #
124
+ #
136
125
  # @example Hash example
137
126
  # require 'psychgus'
138
- #
127
+ #
139
128
  # burgers = {
140
129
  # :Burgers => {
141
130
  # :Classic => {
@@ -161,9 +150,9 @@ require 'psychgus/super_sniffer/parent'
161
150
  # ]
162
151
  # }
163
152
  # burgers[:Favorite] = burgers[:Burgers][:BBQ] # Alias
164
- #
153
+ #
165
154
  # puts burgers.to_yaml(indent: 3,stylers: BurgerStyler.new,deref_aliases: true)
166
- #
155
+ #
167
156
  # # Output:
168
157
  # # ---
169
158
  # # Burgers:
@@ -184,21 +173,21 @@ require 'psychgus/super_sniffer/parent'
184
173
  # # Sauce: 'Honey BBQ'
185
174
  # # Cheese: 'Cheddar'
186
175
  # # Bun: 'Kaiser'
187
- #
176
+ #
188
177
  # @example Class example
189
178
  # require 'psychgus'
190
- #
179
+ #
191
180
  # class Burger
192
181
  # attr_accessor :bun
193
182
  # attr_accessor :cheese
194
183
  # attr_accessor :sauce
195
- #
184
+ #
196
185
  # def initialize(sauce,cheese,bun)
197
186
  # @bun = bun
198
187
  # @cheese = cheese
199
188
  # @sauce = sauce
200
189
  # end
201
- #
190
+ #
202
191
  # # You can still use Psych's encode_with(), no problem
203
192
  # #def encode_with(coder)
204
193
  # # coder['Bun'] = @bun
@@ -206,34 +195,34 @@ require 'psychgus/super_sniffer/parent'
206
195
  # # coder['Sauce'] = @sauce
207
196
  # #end
208
197
  # end
209
- #
198
+ #
210
199
  # class Burgers
211
200
  # include Psychgus::Blueberry
212
- #
201
+ #
213
202
  # attr_accessor :burgers
214
203
  # attr_accessor :toppings
215
204
  # attr_accessor :favorite
216
- #
205
+ #
217
206
  # def initialize()
218
207
  # @burgers = {
219
208
  # 'Classic' => Burger.new(['Ketchup','Mustard'],'American','Sesame Seed'),
220
209
  # 'BBQ' => Burger.new('Honey BBQ','Cheddar','Kaiser'),
221
210
  # 'Fancy' => Burger.new('Spicy Wasabi','Smoked Gouda','Hawaiian')
222
211
  # }
223
- #
212
+ #
224
213
  # @toppings = [
225
214
  # 'Mushrooms',
226
215
  # %w(Lettuce Onions Pickles Tomatoes),
227
216
  # [%w(Ketchup Mustard),%w(Salt Pepper)]
228
217
  # ]
229
- #
218
+ #
230
219
  # @favorite = @burgers['BBQ'] # Alias
231
220
  # end
232
- #
221
+ #
233
222
  # def psychgus_stylers(sniffer)
234
223
  # return BurgerStyler.new(sniffer)
235
224
  # end
236
- #
225
+ #
237
226
  # # You can still use Psych's encode_with(), no problem
238
227
  # #def encode_with(coder)
239
228
  # # coder['Burgers'] = @burgers
@@ -241,10 +230,10 @@ require 'psychgus/super_sniffer/parent'
241
230
  # # coder['Favorite'] = @favorite
242
231
  # #end
243
232
  # end
244
- #
233
+ #
245
234
  # burgers = Burgers.new
246
235
  # puts burgers.to_yaml(indent: 3,deref_aliases: true)
247
- #
236
+ #
248
237
  # # Output:
249
238
  # # ---
250
239
  # # Burgers:
@@ -267,144 +256,144 @@ require 'psychgus/super_sniffer/parent'
267
256
  # # Bun: 'Kaiser'
268
257
  # # Cheese: 'Cheddar'
269
258
  # # Sauce: 'Honey BBQ'
270
- #
259
+ #
271
260
  # @example Emitting / Parsing examples
272
261
  # styler = BurgerStyler.new()
273
262
  # options = {:indentation=>3,:stylers=>styler,:deref_aliases=>true}
274
263
  # yaml = burgers.to_yaml(options)
275
- #
264
+ #
276
265
  # # High-level emitting
277
266
  # Psychgus.dump(burgers,options)
278
267
  # Psychgus.dump_file('burgers.yaml',burgers,options)
279
268
  # burgers.to_yaml(options)
280
- #
269
+ #
281
270
  # # High-level parsing
282
271
  # # - Because to_ruby() will be called, just use Psych:
283
272
  # # - load(), load_file(), load_stream(), safe_load()
284
- #
273
+ #
285
274
  # # Mid-level emitting
286
275
  # stream = Psychgus.parse_stream(yaml,stylers: styler,deref_aliases: true)
287
- #
276
+ #
288
277
  # stream.to_yaml()
289
- #
278
+ #
290
279
  # # Mid-level parsing
291
280
  # Psychgus.parse(yaml,stylers: styler,deref_aliases: true)
292
281
  # Psychgus.parse_file('burgers.yaml',stylers: styler,deref_aliases: true)
293
282
  # Psychgus.parse_stream(yaml,stylers: styler,deref_aliases: true)
294
- #
283
+ #
295
284
  # # Low-level emitting
296
285
  # tree_builder = Psychgus::StyledTreeBuilder.new(styler,deref_aliases: true)
297
286
  # visitor = Psych::Visitors::YAMLTree.create(options,tree_builder)
298
- #
287
+ #
299
288
  # visitor << burgers
300
289
  # visitor.tree.to_yaml
301
- #
290
+ #
302
291
  # # Low-level parsing
303
292
  # parser = Psychgus.parser(stylers: styler,deref_aliases: true)
304
- #
293
+ #
305
294
  # parser.parse(yaml)
306
295
  # parser.handler
307
296
  # parser.handler.root
308
- #
309
- # @author Jonathan Bradley Whited (@esotericpig)
297
+ #
298
+ # @author Jonathan Bradley Whited
310
299
  # @since 1.0.0
311
300
  ###
312
301
  module Psychgus
313
302
  # Include these in the top namespace for convenience (i.e., less typing).
314
303
  include Stylables # @since 1.2.0
315
304
  include Stylers # @since 1.2.0
316
-
317
- NODE_CLASS_ALIASES = {:Doc => :Document,:Map => :Mapping,:Seq => :Sequence}
318
- OPTIONS_ALIASES = {:canon => :canonical,:indent => :indentation}
319
-
305
+
306
+ NODE_CLASS_ALIASES = {Doc: :Document,Map: :Mapping,Seq: :Sequence}.freeze
307
+ OPTIONS_ALIASES = {canon: :canonical,indent: :indentation}.freeze
308
+
320
309
  # Get a Class (constant) from Psych::Nodes.
321
- #
310
+ #
322
311
  # Some +name+s have aliases:
323
312
  # :doc => :document
324
313
  # :map => :mapping
325
314
  # :seq => :sequence
326
- #
315
+ #
327
316
  # @param name [Symbol,String] the name of the class from Psych::Nodes
328
- #
317
+ #
329
318
  # @return [Class] a class from Psych::Nodes
330
- #
319
+ #
331
320
  # @see Psych::Nodes
332
321
  # @see NODE_CLASS_ALIASES
333
322
  def self.node_class(name)
334
- name = name.to_sym().capitalize()
335
-
323
+ name = name.to_sym.capitalize
324
+
336
325
  actual_name = NODE_CLASS_ALIASES[name]
337
- name = actual_name unless actual_name.nil?()
338
-
326
+ name = actual_name unless actual_name.nil?
327
+
339
328
  return Psych::Nodes.const_get(name)
340
329
  end
341
-
330
+
342
331
  # Get a constant from a Psych::Nodes class (using {.node_class}).
343
- #
332
+ #
344
333
  # @param class_name [Symbol,String] the name of the class to get using {.node_class}
345
334
  # @param const_name [Symbol,String] the constant to get from the class
346
335
  # @param lenient [true,false] if true, will return 0 if not const_defined?(), else raise an error
347
- #
336
+ #
348
337
  # @return [Integer,Object] the constant value from the class (usually an int)
349
- #
338
+ #
350
339
  # @see .node_class
351
340
  def self.node_const(class_name,const_name,lenient=true)
352
341
  node_class = node_class(class_name)
353
- const_name = const_name.to_sym().upcase()
354
-
342
+ const_name = const_name.to_sym.upcase
343
+
355
344
  return 0 if lenient && !node_class.const_defined?(const_name,true)
356
345
  return node_class.const_get(const_name,true)
357
346
  end
358
-
347
+
359
348
  MAPPING_ANY = node_const(:mapping,:any)
360
349
  MAPPING_BLOCK = node_const(:mapping,:block)
361
350
  MAPPING_FLOW = node_const(:mapping,:flow)
362
351
  MAP_ANY = MAPPING_ANY
363
352
  MAP_BLOCK = MAPPING_BLOCK
364
353
  MAP_FLOW = MAPPING_FLOW
365
-
354
+
366
355
  SCALAR_ANY = node_const(:scalar,:any)
367
356
  SCALAR_PLAIN = node_const(:scalar,:plain)
368
357
  SCALAR_SINGLE_QUOTED = node_const(:scalar,:single_quoted)
369
358
  SCALAR_DOUBLE_QUOTED = node_const(:scalar,:double_quoted)
370
359
  SCALAR_LITERAL = node_const(:scalar,:literal)
371
360
  SCALAR_FOLDED = node_const(:scalar,:folded)
372
-
361
+
373
362
  SEQUENCE_ANY = node_const(:sequence,:any)
374
363
  SEQUENCE_BLOCK = node_const(:sequence,:block)
375
364
  SEQUENCE_FLOW = node_const(:sequence,:flow)
376
365
  SEQ_ANY = SEQUENCE_ANY
377
366
  SEQ_BLOCK = SEQUENCE_BLOCK
378
367
  SEQ_FLOW = SEQUENCE_FLOW
379
-
368
+
380
369
  STREAM_ANY = node_const(:stream,:any)
381
370
  STREAM_UTF8 = node_const(:stream,:utf8)
382
371
  STREAM_UTF16LE = node_const(:stream,:utf16le)
383
372
  STREAM_UTF16BE = node_const(:stream,:utf16be)
384
-
373
+
385
374
  # Convert +object+ to YAML and dump to +io+.
386
- #
375
+ #
387
376
  # +object+, +io+, and +options+ are used like in Psych.dump so can be a drop-in replacement for Psych.
388
- #
377
+ #
389
378
  # @param object [Object] the Object to convert to YAML and dump
390
379
  # @param io [nil,IO,Hash] the IO to dump the YAML to or the +options+ Hash; if nil, will use StringIO
391
380
  # @param options [Hash] the options (or keyword args) to use; see {.dump_stream}
392
- #
381
+ #
393
382
  # @return [String,Object] the result of converting +object+ to YAML using the params
394
- #
383
+ #
395
384
  # @see .dump_stream
396
385
  # @see Psych.dump_stream
397
386
  def self.dump(object,io=nil,**options)
398
387
  return dump_stream(object,io: io,**options)
399
388
  end
400
-
389
+
401
390
  # Convert +objects+ to YAML and dump to a file.
402
- #
391
+ #
403
392
  # @example
404
393
  # Psychgus.dump_file('my_dir/my_file.yaml',my_object1,my_object2,mode: 'w:UTF-16',
405
394
  # stylers: MyStyler.new())
406
395
  # Psychgus.dump_file('my_file.yaml',my_object,stylers: [MyStyler1.new(),MyStyler2.new()])
407
- #
396
+ #
408
397
  # @param filename [String] the name of the file (and path) to dump to
409
398
  # @param objects [Object,Array<Object>] the Object(s) to convert to YAML and dump
410
399
  # @param mode [String,Integer] the IO open mode to use; examples:
@@ -415,23 +404,23 @@ module Psychgus
415
404
  # @param perm [Integer] the permission bits to use (platform dependent)
416
405
  # @param opt [Hash] Hash of keyword args to pass to +File.open()+
417
406
  # @param options [Hash] the options (or keyword args) to use; see {.dump_stream}
418
- #
407
+ #
419
408
  # @see .dump_stream
420
409
  # @see File.open
421
410
  # @see IO.new
422
411
  # @see https://ruby-doc.org/core/IO.html#method-c-new
423
412
  def self.dump_file(filename,*objects,mode: 'w',perm: nil,opt: nil,**options)
424
413
  opt = Hash(opt)
425
-
414
+
426
415
  File.open(filename,mode,perm,**opt) do |file|
427
416
  file.write(dump_stream(*objects,**options))
428
417
  end
429
418
  end
430
-
419
+
431
420
  # Convert +objects+ to YAML and dump to +io+.
432
- #
421
+ #
433
422
  # +io+ and +options+ are used like in Psych.dump so can be a drop-in replacement for Psych.
434
- #
423
+ #
435
424
  # @param objects [Object,Array<Object>] the Object(s) to convert to YAML and dump
436
425
  # @param io [nil,IO,Hash] the IO to dump the YAML to or the +options+ Hash; if nil, will use StringIO
437
426
  # @param stylers [nil,Styler,Array<Styler>] the Styler(s) to use when converting to YAML
@@ -449,47 +438,48 @@ module Psychgus
449
438
  # Write "canonical" YAML form (very verbose, yet strictly formal).
450
439
  # [+:header+] Default: +false+.
451
440
  # Write +%YAML [version]+ at the beginning of document.
452
- #
441
+ #
453
442
  # @return [String,Object] the result of converting +object+ to YAML using the params
454
- #
443
+ #
455
444
  # @see Psych.dump_stream
456
445
  # @see OPTIONS_ALIASES
457
446
  def self.dump_stream(*objects,io: nil,stylers: nil,deref_aliases: false,**options)
458
447
  # If you call this method with only a Hash that uses symbols as keys,
459
448
  # then options will be set to the Hash, instead of objects.
460
- #
449
+ #
461
450
  # For example, the below will be stored in options, not objects:
462
451
  # - dump_stream({:coffee => {:roast => [],:style => []}})
463
- #
452
+ #
464
453
  # This if-statement is guaranteed because dump_stream([]) and dump_stream(nil)
465
454
  # will produce [[]] and [nil], which are not empty.
466
- #
455
+ #
467
456
  # dump_stream() w/o any args is the only problem, but resolved w/ [nil].
468
- if objects.empty?()
469
- objects = options.empty?() ? [nil] : [options]
457
+ if objects.empty?
458
+ objects = options.empty? ? [nil] : [options]
470
459
  options = {}
471
460
  end
472
-
473
- if Hash === io
461
+
462
+ if io.is_a?(Hash)
474
463
  options = io
475
464
  io = nil
476
465
  end
477
-
478
- if !options.empty?()
466
+
467
+ if !options.empty?
479
468
  OPTIONS_ALIASES.each do |option_alias,actual_option|
480
469
  if options.key?(option_alias) && !options.key?(actual_option)
481
470
  options[actual_option] = options[option_alias]
482
471
  end
483
472
  end
484
473
  end
485
-
474
+
486
475
  visitor = Psych::Visitors::YAMLTree.create(options,StyledTreeBuilder.new(*stylers,
487
476
  deref_aliases: deref_aliases))
488
-
489
- if objects.empty?()
477
+
478
+ if objects.empty?
490
479
  # Else, will throw a cryptic NoMethodError:
491
- # - "psych/tree_builder.rb:in `set_end_location': undefined method `end_line=' for nil:NilClass (NoMethodError)"
492
- #
480
+ # - "psych/tree_builder.rb:in `set_end_location':
481
+ # undefined method `end_line=' for nil:NilClass (NoMethodError)"
482
+ #
493
483
  # This should never occur because of the if-statement at the top of this method.
494
484
  visitor << nil
495
485
  else
@@ -497,17 +487,17 @@ module Psychgus
497
487
  visitor << object
498
488
  end
499
489
  end
500
-
490
+
501
491
  return visitor.tree.yaml(io,options)
502
492
  end
503
-
493
+
504
494
  # Get a visual hierarchy of the levels as a String.
505
- #
495
+ #
506
496
  # This is useful for determining the correct level/position when writing a {Styler}.
507
- #
497
+ #
508
498
  # @example
509
499
  # require 'psychgus'
510
- #
500
+ #
511
501
  # burgers = {
512
502
  # :burgers => {
513
503
  # :classic => {:sauce => %w(Ketchup Mustard),
@@ -526,9 +516,9 @@ module Psychgus
526
516
  # [%w(Ketchup Mustard), %w(Salt Pepper)]
527
517
  # ]
528
518
  # }
529
- #
519
+ #
530
520
  # puts Psychgus.hierarchy(burgers)
531
- #
521
+ #
532
522
  # # Output:
533
523
  # # ---
534
524
  # # (level:position):current_node - <parent:(parent_level:parent_position)>
@@ -579,34 +569,34 @@ module Psychgus
579
569
  # # (5:2):Psych::Nodes::Sequence - <seq:(4:3)>
580
570
  # # (6:1):Salt - <seq:(5:2)>
581
571
  # # (6:2):Pepper - <seq:(5:2)>
582
- #
572
+ #
583
573
  # @param objects [Object,Array<Object>] the Object(s) to get a visual hierarchy of
584
574
  # @param kargs [Hash] the keyword args to pass to {Stylers::HierarchyStyler} and to {dump_stream}
585
- #
575
+ #
586
576
  # @return [String] the visual hierarchy of levels
587
- #
577
+ #
588
578
  # @see Stylers::HierarchyStyler
589
579
  # @see dump_stream
590
- #
580
+ #
591
581
  # @since 1.2.0
592
582
  def self.hierarchy(*objects,**kargs)
593
583
  styler = Stylers::HierarchyStyler.new(**kargs)
594
-
584
+
595
585
  dump_stream(*objects,stylers: styler,**kargs)
596
-
597
- return styler.to_s()
586
+
587
+ return styler.to_s
598
588
  end
599
-
589
+
600
590
  # Parse +yaml+ into a Psych::Nodes::Document.
601
- #
591
+ #
602
592
  # If you're just going to call to_ruby(), then using this method is unnecessary,
603
593
  # and the styler(s) will do nothing for you.
604
- #
594
+ #
605
595
  # @param yaml [String] the YAML to parse
606
596
  # @param kargs [Hash] the keyword args to use; see {.parse_stream}
607
- #
597
+ #
608
598
  # @return [Psych::Nodes::Document] the parsed Document node
609
- #
599
+ #
610
600
  # @see .parse_stream
611
601
  # @see Psych.parse
612
602
  # @see Psych::Nodes::Document
@@ -614,23 +604,23 @@ module Psychgus
614
604
  parse_stream(yaml,**kargs) do |node|
615
605
  return node
616
606
  end
617
-
607
+
618
608
  return false
619
609
  end
620
-
610
+
621
611
  # Parse a YAML file into a Psych::Nodes::Document.
622
- #
612
+ #
623
613
  # If you're just going to call to_ruby(), then using this method is unnecessary,
624
614
  # and the styler(s) will do nothing for you.
625
- #
615
+ #
626
616
  # @param filename [String] the name of the YAML file (and path) to parse
627
617
  # @param fallback [Object] the return value when nothing is parsed
628
618
  # @param mode [String,Integer] the IO open mode to use; example: +'r:BOM|UTF-8'+
629
619
  # @param opt [Hash] Hash of keyword args to pass to +File.open()+
630
620
  # @param kargs [Hash] the keyword args to use; see {.parse_stream}
631
- #
621
+ #
632
622
  # @return [Psych::Nodes::Document] the parsed Document node
633
- #
623
+ #
634
624
  # @see .parse_stream
635
625
  # @see Psych.parse_file
636
626
  # @see Psych::Nodes::Document
@@ -638,19 +628,19 @@ module Psychgus
638
628
  # @see IO.new
639
629
  def self.parse_file(filename,fallback: false,mode: 'r:BOM|UTF-8',opt: nil,**kargs)
640
630
  opt = Hash(opt)
641
-
631
+
642
632
  result = File.open(filename,mode,**opt) do |file|
643
633
  parse(file,filename: filename,**kargs)
644
634
  end
645
-
635
+
646
636
  return result || fallback
647
637
  end
648
-
638
+
649
639
  # Parse +yaml+ into a Psych::Nodes::Stream for one document or for multiple documents in one YAML.
650
- #
640
+ #
651
641
  # If you're just going to call to_ruby(), then using this method is unnecessary,
652
642
  # and the styler(s) will do nothing for you.
653
- #
643
+ #
654
644
  # @example
655
645
  # burgers = <<EOY
656
646
  # ---
@@ -664,9 +654,9 @@ module Psychgus
664
654
  # ---
665
655
  # `Invalid`
666
656
  # EOY
667
- #
657
+ #
668
658
  # i = 0
669
- #
659
+ #
670
660
  # begin
671
661
  # Psychgus.parse_stream(burgers,filename: 'burgers.yaml') do |document|
672
662
  # puts "Document ##{i += 1}"
@@ -675,52 +665,52 @@ module Psychgus
675
665
  # rescue Psych::SyntaxError => err
676
666
  # puts "File: #{err.file}"
677
667
  # end
678
- #
668
+ #
679
669
  # # Output:
680
670
  # # Document #1
681
671
  # # {"Burgers"=>{"Classic"=>{"BBQ"=>{"Sauce"=>"Honey BBQ", "Cheese"=>"Cheddar", "Bun"=>"Kaiser"}}}}
682
672
  # # Document #2
683
673
  # # {"Toppings"=>[["Mushrooms", "Mustard"], ["Salt", "Pepper", "Pickles"]]}
684
674
  # # File: burgers.yaml
685
- #
675
+ #
686
676
  # @param yaml [String] the YAML to parse
687
677
  # @param filename [String] the filename to pass as +file+ to the Error potentially raised
688
678
  # @param stylers [nil,Styler,Array<Styler>] the Styler(s) to use when parsing the YAML
689
679
  # @param deref_aliases [true,false] whether to dereference aliases; output the actual value
690
680
  # instead of the alias
691
681
  # @param block [Proc] an optional block for parsing multiple documents
692
- #
682
+ #
693
683
  # @return [Psych::Nodes::Stream] the parsed Stream node
694
- #
684
+ #
695
685
  # @see StyledDocumentStream
696
686
  # @see Psych.parse_stream
697
687
  # @see Psych::Nodes::Stream
698
688
  # @see Psych::SyntaxError
699
689
  def self.parse_stream(yaml,filename: nil,stylers: nil,deref_aliases: false,**options,&block)
700
- if block_given?()
690
+ if block_given?
701
691
  parser = Psych::Parser.new(StyledDocumentStream.new(*stylers,deref_aliases: deref_aliases,**options,
702
692
  &block))
703
-
693
+
704
694
  return parser.parse(yaml,filename)
705
695
  else
706
696
  parser = self.parser(stylers: stylers,deref_aliases: deref_aliases,**options)
707
697
  parser.parse(yaml,filename)
708
-
698
+
709
699
  return parser.handler.root
710
700
  end
711
701
  end
712
-
702
+
713
703
  # Create a new styled Psych::Parser for parsing YAML.
714
- #
704
+ #
715
705
  # @example
716
706
  # class CoffeeStyler
717
707
  # include Psychgus::Styler
718
- #
708
+ #
719
709
  # def style_sequence(sniffer,node)
720
710
  # node.style = Psychgus::SEQUENCE_FLOW
721
711
  # end
722
712
  # end
723
- #
713
+ #
724
714
  # coffee = <<EOY
725
715
  # Coffee:
726
716
  # Roast:
@@ -732,43 +722,43 @@ module Psychgus
732
722
  # - Latte
733
723
  # - Mocha
734
724
  # EOY
735
- #
725
+ #
736
726
  # parser = Psychgus.parser(stylers: CoffeeStyler.new)
737
727
  # parser.parse(coffee)
738
728
  # puts parser.handler.root.to_yaml
739
- #
729
+ #
740
730
  # # Output:
741
731
  # # Coffee:
742
732
  # # Roast: [Light, Medium, Dark]
743
733
  # # Style: [Cappuccino, Latte, Mocha]
744
- #
734
+ #
745
735
  # @param stylers [nil,Styler,Array<Styler>] the Styler(s) to use when parsing the YAML
746
736
  # @param deref_aliases [true,false] whether to dereference aliases; output the actual value
747
737
  # instead of the alias
748
- #
738
+ #
749
739
  # @return [Psych::Parser] the new styled Parser
750
- #
740
+ #
751
741
  # @see StyledTreeBuilder
752
742
  # @see Psych.parser
753
743
  def self.parser(stylers: nil,deref_aliases: false,**options)
754
744
  return Psych::Parser.new(StyledTreeBuilder.new(*stylers,deref_aliases: deref_aliases,**options))
755
745
  end
756
-
746
+
757
747
  ###
758
748
  # Unnecessary Methods
759
- #
749
+ #
760
750
  # All of the below methods are not needed, but are defined
761
751
  # so that Psychgus can be a drop-in replacement for Psych.
762
- #
752
+ #
763
753
  # Instead, you should probably use Psych.
764
754
  # This is also the recommended practice in case your version
765
755
  # of Psych defines the method differently.
766
- #
756
+ #
767
757
  # Private methods of Psych are not defined.
768
- #
758
+ #
769
759
  # @note For devs/hacking: because extend is used, do not prefix methods with "self."
770
- #
771
- # @author Jonathan Bradley Whited (@esotericpig)
760
+ #
761
+ # @author Jonathan Bradley Whited
772
762
  # @since 1.0.0
773
763
  ###
774
764
  module PsychDropIn
@@ -776,47 +766,47 @@ module Psychgus
776
766
  def add_builtin_type(*args,&block)
777
767
  Psych.add_builtin_type(*args,&block)
778
768
  end
779
-
769
+
780
770
  # @see Psych.add_domain_type
781
771
  def add_domain_type(*args,&block)
782
772
  Psych.add_domain_type(*args,&block)
783
773
  end
784
-
774
+
785
775
  # @see Psych.add_tag
786
776
  def add_tag(*args)
787
777
  Psych.add_tag(*args)
788
778
  end
789
-
779
+
790
780
  # @see Psych.load
791
781
  def load(*args,**kargs)
792
782
  Psych.load(*args,**kargs)
793
783
  end
794
-
784
+
795
785
  # @see Psych.load_file
796
786
  def load_file(*args,**kargs)
797
787
  Psych.load_file(*args,**kargs)
798
788
  end
799
-
789
+
800
790
  # @see Psych.load_stream
801
791
  def load_stream(*args,**kargs)
802
792
  Psych.load_stream(*args,**kargs)
803
793
  end
804
-
794
+
805
795
  # @see Psych.remove_type
806
796
  def remove_type(*args)
807
797
  Psych.remove_type(*args)
808
798
  end
809
-
799
+
810
800
  # @see Psych.safe_load
811
801
  def safe_load(*args,**kargs)
812
802
  Psych.safe_load(*args,**kargs)
813
803
  end
814
-
804
+
815
805
  # @see Psych.to_json
816
806
  def to_json(*args)
817
807
  Psych.to_json(*args)
818
808
  end
819
809
  end
820
-
810
+
821
811
  extend PsychDropIn
822
812
  end