From 443341efe67412ecf93922d2a50227e38878e98a Mon Sep 17 00:00:00 2001 From: Maksym Stoyanov Date: Fri, 23 Aug 2024 15:40:50 +0200 Subject: [PATCH] fix readme.md --- docs/bg/README.md | 71 ++++++++++++++++++++++++----------------------- docs/de/README.md | 71 ++++++++++++++++++++++++----------------------- docs/en/README.md | 71 ++++++++++++++++++++++++----------------------- docs/ru/README.md | 71 ++++++++++++++++++++++++----------------------- docs/uk/README.md | 71 ++++++++++++++++++++++++----------------------- 5 files changed, 180 insertions(+), 175 deletions(-) diff --git a/docs/bg/README.md b/docs/bg/README.md index 559d809..c74aeaf 100644 --- a/docs/bg/README.md +++ b/docs/bg/README.md @@ -7,18 +7,17 @@ -# SettingsService +# SheetSchema
- Release - License + Release + License clasp
-**SettingsService** работи подобно на [**PropertiesService**](https://developers.google.com/apps-script/reference/properties), но с подобрени възможности. +**SheetSchema** е библиотека за скриптове на Google Apps, която осигурява лесен начин за работа със схеми на листове в Google Sheets. -Настоящата модификация намалява натоварването върху системните лимити при четене и запис на свойства. -Това се постига чрез паралелно съхранение на данни в [**CacheService**](https://developers.google.com/apps-script/reference/cache). +Тя ви позволява да дефинирате, вмъквате, извличате и управлявате схеми в Google Sheets, което улеснява поддържането на структурирани данни. __Внимание!__ Използването на този сервис може да увеличи времето за изпълнение на скрипта. @@ -26,58 +25,60 @@ __Внимание!__ Използването на този сервис мож ## Инсталация 1. Отворете своя проект в [Google Apps Script Dashboard](https://script.google.com/). -2. Копирайте съдържанието на файла [settings.js](../../src/settings.js) и го поставете в нов файл във вашия проект в Google Apps Script. +2. Копирайте съдържанието на файла [sheet-schema.js](../../src/sheet-schema.js) и го поставете в нов файл във вашия проект в Google Apps Script. ## Употреба -### Получаване на инстанция на настройките +Ето няколко примера за използване на SheetSchema: -Получете настройки за документ, сценарий или потребител: +### Добавяне на схема ```javascript -// Настройки на документа -const documentSettings = SettingsService.getDocumentSettings(); +const sheet = SpreadsheetApp.getActiveSheet(); +const fields = [„time“, null, { name: „id“ } ]; +const schema = SheetSchema.insertSchema(sheet, fields); -// Настройки на сценария -const scriptSettings = SettingsService.getScriptSettings(); - -// Настройки на потребителя -const userSettings = SettingsService.getUserSettings(); +console.log(schema); ``` -### Запазване на данни - -Използвайте методи или пълномощни за запазване на данни: +### Извличане на схема ```javascript -// Използване на метода -scriptSettings.setProperty('email', 'stoianov.maksym@gmail.com'); +const sheet = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); -// Използване на прокси -scriptSettings.email = 'stoianov.maksym@gmail.com'; +console.log(schema); ``` -### Извличане на данни +### Извличане на поле по индекс на колона + +```javascript +const sheet = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); +const field = schema.getFieldByIndex(0); + +console.log(field); +``` -Използвайте методи или пълномощни за извличане на данни: +### Получаване на поле по име ```javascript -// Използване на метода -const email = scriptSettings.getProperty('email'); +const sheet = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); +const field = schema.getFieldByName('time'); -// Използване на прокси -const email = scriptSettings.email; +console.log(field); ``` +### Изтриване на схема -## Задачи +```javascript +const sheet = SpreadsheetApp.getActiveSheet(); +const result = SheetSchema.removeSchema(sheet); -- [ ] Създаване на метод `settings.setProperties(properties, deleteAllOthers)`. -- [ ] Създаване на метод `settings.getKeys()`. -- [ ] Създаване на метод `settings.getProperties()`. -- [ ] Създаване на метод `settings.deleteAllProperties()`. -- [ ] Използвайте рекурсивно пълномощно, за да проследявате промените в дървото на обектите в `settings._values`, като това трябва да създаде и йерархия от обекти, напр: `settings._values.prop1.m1.m2 = 5;`. +console.log(result); +``` ## Принос diff --git a/docs/de/README.md b/docs/de/README.md index b40bb4f..d0f6ce8 100644 --- a/docs/de/README.md +++ b/docs/de/README.md @@ -7,18 +7,17 @@ -# SettingsService +# SheetSchema
- Release - License + Release + License clasp
-**SettingsService** funktioniert ähnlich wie [**PropertiesService**](https://developers.google.com/apps-script/reference/properties), jedoch mit erweiterten Möglichkeiten. +**SheetSchema** ist eine Google Apps Script-Bibliothek, die eine einfache Möglichkeit bietet, mit Sheet-Schemata in Google Sheets zu arbeiten. -Die aktuelle Modifikation reduziert die Belastung der Systemgrenzen beim Lesen und Schreiben von Eigenschaften. -Dies wird durch die parallele Speicherung von Daten im [**CacheService**](https://developers.google.com/apps-script/reference/cache) erreicht. +Sie ermöglicht das Definieren, Einfügen, Extrahieren und Verwalten von Schemata in Google Sheets und erleichtert so die Pflege strukturierter Daten. __Achtung!__ Die Verwendung dieses Dienstes kann die Ausführungszeit des Skripts verlängern. @@ -26,58 +25,60 @@ __Achtung!__ Die Verwendung dieses Dienstes kann die Ausführungszeit des Skript ## Installation 1. Öffnen Sie Ihr Projekt im [Google Apps Script Dashboard](https://script.google.com/). -2. Kopieren Sie den Inhalt der Datei [settings.js](../../src/settings.js) und fügen Sie ihn in eine neue Datei in Ihrem Google Apps Script-Projekt ein. +2. Kopieren Sie den Inhalt der Datei [sheet-schema.js](../../src/sheet-schema.js) und fügen Sie ihn in eine neue Datei in Ihrem Google Apps Script-Projekt ein. ## Verwendung -### Instanz der Einstellungen abrufen +Hier sind einige Beispiele für die Verwendung von SheetSchema: -Rufen Sie Einstellungen für ein Dokument, ein Skript oder einen Benutzer ab: +### Schema einfügen ```javascript -// Dokumenteinstellungen -const documentSettings = SettingsService.getDocumentSettings(); +const Blatt = SpreadsheetApp.getActiveSheet(); +const fields = [ 'time', null, { name: 'id' } ]; +const schema = SheetSchema.insertSchema(sheet, fields); -// Szenarioeinstellungen -const scriptSettings = SettingsService.getScriptSettings(); - -// Benutzereinstellungen -const userSettings = SettingsService.getUserSettings(); +console.log(schema); ``` -### Speichern von Daten - -Verwenden Sie Methoden oder Proxys, um Daten zu speichern: +### Schema abrufen ```javascript -// Anwendung der Methode -scriptSettings.setProperty('email', 'stoianov.maksym@gmail.com'); +const Blatt = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); -// Mit einem Proxy -scriptSettings.email = 'stoianov.maksym@gmail.com'; +console.log(schema); ``` -### Datenabruf +### Abrufen von Feld nach Spaltenindex + +```javascript +const Blatt = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); +const field = schema.getFieldByIndex(0); + +console.log(field); +``` -Verwenden Sie Methoden oder Proxys zum Abrufen von Daten: +### Feld nach Name abrufen ```javascript -// Anwendung der Methode -const email = scriptSettings.getProperty('email'); +const Blatt = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(Blatt); +const field = schema.getFieldByName('time'); -// Mit einem Proxy -const email = scriptSettings.email; +console.log(field); ``` +### Löschen des Schemas -## Aufgaben +```javascript +const Blatt = SpreadsheetApp.getActiveSheet(); +const result = SheetSchema.removeSchema(sheet); -- [ ] Erstellen Sie eine Methode `settings.setProperties(properties, deleteAllOthers)`. -- [ ] Erstelle eine Methode `settings.getKeys()`. -- [ ] Erstelle Methode `settings.getProperties()`. -- [ ] Erstelle eine Methode `settings.deleteAllProperties()`. -- [ ] Verwenden Sie einen rekursiven Proxy, um Änderungen am Objektbaum in `settings._values` zu verfolgen, dies sollte auch eine Hierarchie von Objekten erstellen, z.B.: `settings._values.prop1.m1.m2 = 5;`. +console.log(result); +``` ## Beitrag diff --git a/docs/en/README.md b/docs/en/README.md index 3713925..c7490a8 100644 --- a/docs/en/README.md +++ b/docs/en/README.md @@ -7,18 +7,17 @@ -# SettingsService +# SheetSchema
- Release - License + Release + License clasp
-**SettingsService** works similarly to [**PropertiesService**](https://developers.google.com/apps-script/reference/properties) but with enhanced capabilities. +**SheetSchema** is a Google Apps Script library that provides an easy way to work with sheet schemas in Google Sheets. -The current modification reduces the load on system limits when reading and writing properties. -This is achieved through parallel data storage in [**CacheService**](https://developers.google.com/apps-script/reference/cache). +It allows you to define, insert, extract and manage schemas in Google Sheets, making it easy to maintain structured data. __Note!__ Using this service may increase script execution time. @@ -26,58 +25,60 @@ __Note!__ Using this service may increase script execution time. ## Installation 1. Open your project in the [Google Apps Script Dashboard](https://script.google.com/). -2. Copy the contents of the [settings.js](../../src/settings.js) file and paste it into a new file in your Google Apps Script project. +2. Copy the contents of the [sheet-schema.js](../../src/sheet-schema.js) file and paste it into a new file in your Google Apps Script project. ## Usage -### Getting a settings instance +Here are some examples of how to use SheetSchema: -Retrieve settings for a document, script, or user: +### Insert Schema ```javascript -// Document settings -const documentSettings = SettingsService.getDocumentSettings(); +const sheet = SpreadsheetApp.getActiveSheet(); +const fields = [ 'time', null, { name: 'id' } ]; +const schema = SheetSchema.insertSchema(sheet, fields); -// Script settings -const scriptSettings = SettingsService.getScriptSettings(); - -// User settings -const userSettings = SettingsService.getUserSettings(); +console.log(schema); ``` -### Saving data - -Use methods or proxies to save data: +### Retrieve schema ```javascript -// Using the method -scriptSettings.setProperty('email', 'stoianov.maksym@gmail.com'); +const sheet = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); -// Using a proxy -scriptSettings.email = 'stoianov.maksym@gmail.com'; +console.log(schema); ``` -### Data retrieval +### Retrieve field by column index + +```javascript +const sheet = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); +const field = schema.getFieldByIndex(0); + +console.log(field); +``` -Use methods or proxies to retrieve data: +### Get field by name ```javascript -// Using the method -const email = scriptSettings.getProperty('email'); +const sheet = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); +const field = schema.getFieldByName('time'); -// Using a proxy -const email = scriptSettings.email; +console.log(field); ``` +### Deleting schema -## Tasks +```javascript +const sheet = SpreadsheetApp.getActiveSheet(); +const result = SheetSchema.removeSchema(sheet); -- [ ] Create a method `settings.setProperties(properties, deleteAllOthers)`. -- [ ] Create a method `settings.getKeys()`. -- [ ] Create method `settings.getProperties()`. -- [ ] Create a method `settings.deleteAllProperties()`. -- [ ] Use a recursive proxy to track changes to the object tree in `settings._values`, this should also create a hierarchy of objects, e.g.: `settings._values.prop1.m1.m2 = 5;`. +console.log(result); +``` ## Contribution diff --git a/docs/ru/README.md b/docs/ru/README.md index 73aaa8c..e547f7c 100644 --- a/docs/ru/README.md +++ b/docs/ru/README.md @@ -7,18 +7,17 @@ -# SettingsService +# SheetSchema
- Release - License + Release + License clasp
-**SettingsService** работает подобно [**PropertiesService**](https://developers.google.com/apps-script/reference/properties), но с улучшенными возможностями. +**SheetSchema** - это библиотека сценариев Google Apps Script, которая обеспечивает простой способ работы со схемами листов в Google Sheets. -Текущая модификация уменьшае нагрузку на системные лимиты при чтении и записи свойств. -Это достигается за счет параллельного хранения данных в [**CacheService**](https://developers.google.com/apps-script/reference/cache). +Она позволяет определять, вставлять, извлекать и управлять схемами в Google Sheets, что упрощает ведение структурированных данных. __Внимание!__ Использование этого сервиса может увеличить время выполнения скрипта. @@ -26,58 +25,60 @@ __Внимание!__ Использование этого сервиса мо ## Установка 1. Откройте свой проект в [Google Apps Script Dashboard](https://script.google.com/). -2. Скопируйте содержимое файла [settings.js](../../src/settings.js) и вставьте его в новый файл в вашем проекте Google Apps Script. +2. Скопируйте содержимое файла [sheet-schema.js](../../src/sheet-schema.js) и вставьте его в новый файл в вашем проекте Google Apps Script. ## Использование -### Получение экземпляра настроек +Вот несколько примеров использования SheetSchema: -Получите настройки для документа, сценария или пользователя: +### Вставка схемы ```javascript -// Настройки документа -const documentSettings = SettingsService.getDocumentSettings(); +const sheet = SpreadsheetApp.getActiveSheet(); +const fields = [ 'time', null, { name: 'id' } ]; +const schema = SheetSchema.insertSchema(sheet, fields); -// Настройки сценария -const scriptSettings = SettingsService.getScriptSettings(); - -// Настройки пользователя -const userSettings = SettingsService.getUserSettings(); +console.log(schema); ``` -### Сохранение данных - -Используйте методы или прокси для сохранения данных: +### Получение схемы ```javascript -// С помощью метода -scriptSettings.setProperty('email', 'stoianov.maksym@gmail.com'); +const sheet = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); -// С помощью прокси -scriptSettings.email = 'stoianov.maksym@gmail.com'; +console.log(schema); ``` -### Получение данных +### Получение поля по индексу столбца + +```javascript +const sheet = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); +const field = schema.getFieldByIndex(0); + +console.log(field); +``` -Используйте методы или прокси для получения данных: +### Получение поля по его имени ```javascript -// С помощью метода -const email = scriptSettings.getProperty('email'); +const sheet = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); +const field = schema.getFieldByName('time'); -// С помощью прокси -const email = scriptSettings.email; +console.log(field); ``` +### Удаление схемы -## Задачи +```javascript +const sheet = SpreadsheetApp.getActiveSheet(); +const result = SheetSchema.removeSchema(sheet); -- [ ] Создать метод `settings.setProperties(properties, deleteAllOthers)`. -- [ ] Создать метод `settings.getKeys()`. -- [ ] Создать метод `settings.getProperties()`. -- [ ] Создать метод `settings.deleteAllProperties()`. -- [ ] Использовать рекурсивный прокси для отслеживания изменений дерева объектов в `settings._values`, это также должно создавать иерархию объектов, например: `settings._values.prop1.m1.m2 = 5;`. +console.log(result); +``` ## Вклад diff --git a/docs/uk/README.md b/docs/uk/README.md index e3260d1..6190311 100644 --- a/docs/uk/README.md +++ b/docs/uk/README.md @@ -7,18 +7,17 @@ -# SettingsService +# SheetSchema
- Release - License + Release + License clasp
-**SettingsService** працює подібно до [**PropertiesService**](https://developers.google.com/apps-script/reference/properties), але з покращеними можливостями. +**SheetSchema** - це бібліотека сценаріїв Google Apps Script, яка забезпечує простий спосіб роботи зі схемами аркушів у Google Sheets. -Поточна модифікація зменшує навантаження на системні ліміти при читанні та запису властивостей. -Це досягається завдяки паралельному зберіганню даних у [**CacheService**](https://developers.google.com/apps-script/reference/cache). +Вона дає змогу визначати, вставляти, витягувати та керувати схемами в Google Sheets, що спрощує ведення структурованих даних. __Увага!__ Використання цього сервісу може збільшити час виконання скрипта. @@ -26,58 +25,60 @@ __Увага!__ Використання цього сервісу може зб ## Встановлення 1. Відкрийте свій проект у [Google Apps Script Dashboard](https://script.google.com/). -2. Скопіюйте вміст файлу [settings.js](../../src/settings.js) і вставте його у новий файл у вашому проекті Google Apps Script. +2. Скопіюйте вміст файлу [sheet-schema.js](../../src/sheet-schema.js) і вставте його у новий файл у вашому проекті Google Apps Script. ## Використання -### Отримання екземпляра налаштувань +Ось кілька прикладів використання SheetSchema: -Отримайте налаштування для документа, скрипта або користувача: +### Вставка схеми ```javascript -// Налаштування документа -const documentSettings = SettingsService.getDocumentSettings(); +const sheet = SpreadsheetApp.getActiveSheet(); +const fields = [ 'time', null, { name: 'id' } ]; +const schema = SheetSchema.insertSchema(sheet, fields); -// Налаштування сценарію -const scriptSettings = SettingsService.getScriptSettings(); - -// Налаштування користувача -const userSettings = SettingsService.getUserSettings(); +console.log(schema); ``` -### Збереження даних - -Використовуйте методи або проксі для збереження даних: +### Отримання схеми ```javascript -// За допомогою методу -scriptSettings.setProperty('email', 'stoianov.maksym@gmail.com'); +const sheet = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); -// За допомогою проксі -scriptSettings.email = 'stoianov.maksym@gmail.com'; +console.log(schema); ``` -### Отримання даних +### Отримання поля за індексом стовпця + +```javascript +const sheet = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); +const field = schema.getFieldByIndex(0); + +console.log(field); +``` -Використовуйте методи або проксі для отримання даних: +### Отримання поля за його іменем ```javascript -// За допомогою методу -const email = scriptSettings.getProperty('email'); +const sheet = SpreadsheetApp.getActiveSheet(); +const schema = SheetSchema.getSchemaBySheet(sheet); +const field = schema.getFieldByName('time'); -// За допомогою проксі -const email = scriptSettings.email; +console.log(field); ``` +### Видалення схеми -## Завдання +```javascript +const sheet = SpreadsheetApp.getActiveSheet(); +const result = SheetSchema.removeSchema(sheet); -- [ ] Створити метод `settings.setProperties(properties, deleteAllOthers)`. -- [ ] Створити метод `settings.getKeys()`. -- [ ] Створити метод `settings.getProperties()`. -- [ ] Створити метод `settings.deleteAllProperties()`. -- [ ] Використовувати рекурсивний проксі для відстеження змін дерева об'єктів в `settings._values`, це також має створювати ієрархію об'єктів, наприклад: `settings._values.prop1.m1.m2 = 5;`. +console.log(result); +``` ## Внесок