Этот синтаксис
const { google } = require('googleapis')
называется Деструктуризацией объекта.
Фактически он загружает требуемый модуль и получает свойство google
из этого модуля и передает его переменной, также называемой google
.
Это то же самое, что и это:
const google = require('googleapis').google;
Итак, когда вы делаете это:
const { googleapi } = require('googleapis')
, это то же самое, что и это:
var googleapi = require('googleapis').googleapi;
Дело в том, что модуль googleapis
не экспортирует свойство с именем googleapi
.
Если вы действительно хотите, чтобы имя было googleapi
, вы можете сделать это:
const { googleapi: google } = require('googleapis');
или
const googleapi = require('googleapis').google;
или даже так:
const GoogleAPIs = require('googleapis');
const googleapi = GoogleAPIs.google;
При использовании Ruby 2.4 + можно звонить compact
и compact!
h = { a: 1, b: false, c: nil }
h.compact! #=> { a: 1, b: false }
https://ruby-doc.org/core-2.4.0/Hash.html#method-i-compact-21
Используйте hsh.delete_if . В вашем конкретном случае что-то вроде: hsh.delete_if {| k, v | v. пусто? }