class EacRubyUtils::Yaml::Sanitizer

Constants

RESULT_TYPES

Attributes

source[R]

Public Class Methods

new(source) click to toggle source
# File lib/eac_ruby_utils/yaml.rb, line 52
def initialize(source)
  @source = source
end

Public Instance Methods

result() click to toggle source
# File lib/eac_ruby_utils/yaml.rb, line 56
def result
  RESULT_TYPES.each do |type|
    return send("result_#{type}") if send("result_#{type}?")
  end

  source.to_s
end

Private Instance Methods

result_enumerableable() click to toggle source
# File lib/eac_ruby_utils/yaml.rb, line 70
def result_enumerableable
  source.to_a.map { |child| sanitize_value(child) }
end
result_enumerableable?() click to toggle source
# File lib/eac_ruby_utils/yaml.rb, line 66
def result_enumerableable?
  source.respond_to?(:to_a) && !source.is_a?(::Hash)
end
result_hashable() click to toggle source
# File lib/eac_ruby_utils/yaml.rb, line 78
def result_hashable
  source.to_h.map { |k, v| [k.to_sym, sanitize_value(v)] }.to_h
end
result_hashable?() click to toggle source
# File lib/eac_ruby_utils/yaml.rb, line 74
def result_hashable?
  source.respond_to?(:to_h)
end
result_nil() click to toggle source
# File lib/eac_ruby_utils/yaml.rb, line 86
def result_nil
  nil
end
result_nil?() click to toggle source
# File lib/eac_ruby_utils/yaml.rb, line 82
def result_nil?
  source.nil?
end
result_permitted() click to toggle source
# File lib/eac_ruby_utils/yaml.rb, line 95
def result_permitted
  source
end
result_permitted?() click to toggle source
# File lib/eac_ruby_utils/yaml.rb, line 90
def result_permitted?
  (::EacRubyUtils::Yaml.permitted_classes - [::Array, ::Hash])
    .any? { |klass| source.is_a?(klass) }
end
sanitize_value(value) click to toggle source
# File lib/eac_ruby_utils/yaml.rb, line 99
def sanitize_value(value)
  self.class.new(value).result
end