Module: YAML
- Defined in:
- lib/review/retrovert/converter.rb
Overview
For Ruby 3.1+ compatibility with review 5.3 and earlier These versions don't support safe YAML loading with permitted_classes
Class Method Summary collapse
- .load_file(path, *args, **kwargs) ⇒ Object
- .original_load_file ⇒ Object
- .original_safe_load ⇒ Object
-
.safe_load(yaml, *args, **kwargs) ⇒ Object
Handle both old positional args (review 5.3 and earlier) and new keyword args Old format: YAML.safe_load(yaml, permitted_classes, permitted_symbols, aliases, filename) New format: YAML.safe_load(yaml, permitted_classes: [], permitted_symbols: [], aliases: false).
Class Method Details
.load_file(path, *args, **kwargs) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/review/retrovert/converter.rb', line 10 def load_file(path, *args, **kwargs) if kwargs.empty? && args.empty? original_load_file(path, permitted_classes: [Date, Time, Symbol], permitted_symbols: [], aliases: true) else original_load_file(path, *args, **kwargs) end end |
.original_load_file ⇒ Object
7 |
# File 'lib/review/retrovert/converter.rb', line 7 alias_method :original_load_file, :load_file |
.original_safe_load ⇒ Object
8 |
# File 'lib/review/retrovert/converter.rb', line 8 alias_method :original_safe_load, :safe_load |
.safe_load(yaml, *args, **kwargs) ⇒ Object
Handle both old positional args (review 5.3 and earlier) and new keyword args Old format: YAML.safe_load(yaml, permitted_classes, permitted_symbols, aliases, filename) New format: YAML.safe_load(yaml, permitted_classes: [], permitted_symbols: [], aliases: false)
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/review/retrovert/converter.rb', line 21 def safe_load(yaml, *args, **kwargs) if kwargs.empty? if args.empty? original_safe_load(yaml, permitted_classes: [Date, Time, Symbol], permitted_symbols: [], aliases: true) else # Convert old positional args to new keyword args format permitted_classes = args[0].is_a?(Array) ? args[0] : [Date, Time, Symbol] permitted_symbols = args[1].is_a?(Array) ? args[1] : [] aliases = args[2].nil? ? true : args[2] original_safe_load(yaml, permitted_classes: permitted_classes + [Date, Time, Symbol], permitted_symbols: permitted_symbols, aliases: aliases) end else original_safe_load(yaml, *args, **kwargs) end end |