Skip to content

Commit

Permalink
fix readme.md
Browse files Browse the repository at this point in the history
  • Loading branch information
MaksymStoianov committed Aug 23, 2024
1 parent 7fed807 commit 443341e
Show file tree
Hide file tree
Showing 5 changed files with 180 additions and 175 deletions.
71 changes: 36 additions & 35 deletions docs/bg/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,77 +7,78 @@
</div>


# SettingsService
# SheetSchema

<div id="badges" align="left">
<img src="https://img.shields.io/github/v/release/MaksymStoianov/SettingsService" alt="Release">
<a href="LICENSE.md"><img src="https://img.shields.io/github/license/MaksymStoianov/SettingsService" alt="License"></a>
<img src="https://img.shields.io/github/v/release/MaksymStoianov/SheetSchema" alt="Release">
<a href="LICENSE.md"><img src="https://img.shields.io/github/license/MaksymStoianov/SheetSchema" alt="License"></a>
<a href="https://github.com/google/clasp"><img src="https://img.shields.io/badge/built%20with-clasp-4285f4.svg" alt="clasp"></a>
</div>

**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, което улеснява поддържането на структурирани данни.

__Внимание!__ Използването на този сервис може да увеличи времето за изпълнение на скрипта.


## Инсталация

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', '[email protected]');
const sheet = SpreadsheetApp.getActiveSheet();
const schema = SheetSchema.getSchemaBySheet(sheet);

// Използване на прокси
scriptSettings.email = '[email protected]';
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);
```


## Принос
Expand Down
71 changes: 36 additions & 35 deletions docs/de/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,77 +7,78 @@
</div>


# SettingsService
# SheetSchema

<div id="badges" align="left">
<img src="https://img.shields.io/github/v/release/MaksymStoianov/SettingsService" alt="Release">
<a href="LICENSE.md"><img src="https://img.shields.io/github/license/MaksymStoianov/SettingsService" alt="License"></a>
<img src="https://img.shields.io/github/v/release/MaksymStoianov/SheetSchema" alt="Release">
<a href="LICENSE.md"><img src="https://img.shields.io/github/license/MaksymStoianov/SheetSchema" alt="License"></a>
<a href="https://github.com/google/clasp"><img src="https://img.shields.io/badge/built%20with-clasp-4285f4.svg" alt="clasp"></a>
</div>

**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.


## 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', '[email protected]');
const Blatt = SpreadsheetApp.getActiveSheet();
const schema = SheetSchema.getSchemaBySheet(sheet);

// Mit einem Proxy
scriptSettings.email = '[email protected]';
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
Expand Down
71 changes: 36 additions & 35 deletions docs/en/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,77 +7,78 @@
</div>


# SettingsService
# SheetSchema

<div id="badges" align="left">
<img src="https://img.shields.io/github/v/release/MaksymStoianov/SettingsService" alt="Release">
<a href="LICENSE.md"><img src="https://img.shields.io/github/license/MaksymStoianov/SettingsService" alt="License"></a>
<img src="https://img.shields.io/github/v/release/MaksymStoianov/SheetSchema" alt="Release">
<a href="LICENSE.md"><img src="https://img.shields.io/github/license/MaksymStoianov/SheetSchema" alt="License"></a>
<a href="https://github.com/google/clasp"><img src="https://img.shields.io/badge/built%20with-clasp-4285f4.svg" alt="clasp"></a>
</div>

**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.


## 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', '[email protected]');
const sheet = SpreadsheetApp.getActiveSheet();
const schema = SheetSchema.getSchemaBySheet(sheet);

// Using a proxy
scriptSettings.email = '[email protected]';
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
Expand Down
Loading

0 comments on commit 443341e

Please sign in to comment.