def method_missing(m, *args, &block)
      valid_method = [:small, :medium, :large].find { |size| size === m }

      if valid_method
        if args[0] === true
          send("get_#{m}_avatar")
        else
          sizes.fetch(m.to_s) { sizes }
        end
      else
        super
      end
    end
def method_missing(m, *args, &block)
      valid_method = [:small, :medium, :large].find { |size| size === m }

      if valid_method
        if args[0] === true
          send("get_#{m}_avatar")
        else
          sizes.fetch(m.to_s) { sizes }
        end
      else
        super
      end
    end
Internal: Intercepts all method calls on instances of this class, that
 aren't defined here. If the called method coincides with one of the valid
 methods, then it gets the value of that Hash pair from @sizes Hash. If
 the parameter true was provided, then the method performs a request
 directly to API rather than to cache.

 force - If equals to true, then request an avatar from API. If false, then
         use avatar from cache (default: false).

 Examples

   avatar.foo_bar_baz
   # => NoMethodError
   avatar.small
   # => "https://forum.kag2d.com/data/avatars/s/0/231.jpg"

   # From cache.
   avatar.small
   # => "https://forum.kag2d.com/data/avatars/s/0/231.jpg"

   # Refresh cache.
   avatar.small(true)
   # => "https://forum.kag2d.com/data/avatars/s/0/231.jpg"

   # Attempt to get an avatar of nonexistent player.
   nonexistent_avatar = KAG::Player::Avatar.new('foobarbazbaz')
   nonexistent_avatar.small
   # => {"statusMessage"=>"Player not found"}

 Returns the value of the method call on self.
 Raises NoMethodError, if the given method doesn't exist.