module JHash

Wednesday, August 19 2020

Public Instance Methods

method_missing(method_name, arg = :nothing) click to toggle source
# File lib/jhash.rb, line 7
def method_missing(method_name, arg = :nothing) # rubocop:disable Metrics/MethodLength
  if arg.eql? :nothing
    return self[method_name]
  elsif method_name.to_s.match?(/\w+\d*=/)
    m_name = method_name[/[[:alnum:]]+/]
    return merge!({ m_name.to_sym => arg})
  end
  obj = self[method_name]
  begin
    msg = obj.send(arg)
  rescue NoMethodError => err
    msg = err.message
  end
  msg
end