goga

command module
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 22, 2019 License: Apache-2.0 Imports: 1 Imported by: 0

README

goga

Менеджер однофайловых модулей (версионированная альтернатива copy-paste)

Зачем?

Бывают небольшие участки кода, которые, слегка модифицируясь копируются из проекта в проект. Ради них не рационально заводить и регистрировать в пакетных менеджерах отдельный пакет. Во-первых это занимает время на создание и поддержку, во-вторых придется отдельно вносить изменения в такие пакеты и выкачивать их обратной в основной проект. При этом хочется видеть историю изменений, централизованно хранить и делиться.

Для таких случаев подходит goga.

Что даёт?

  • Подключение пакетов одной командой.
  • Использует Ваш git и gists для хранения пакетов.
  • Живет в системе контроля версий вашего приложения.
  • Не зависит от языка программированя.
  • Легко вность изменения.
  • Легко публиковать.
  • Мультиплатформенное решение. Написано на golang

Установка

go get github.com/dapi/goga

Использование

Добавление модуля в проект
  1. Возьмите ссылку на файл, который вы хотите добавить в проект. Это может быть прямая ссылка на github, например - https://github.com/dapi/elements/blob/master/spinner.js

  2. Добавьте модуль в проект

goga add https://github.com/dapi/elements/blob/master/spinner.js ./app/javascripts/

  1. Используйте добавленный код ./spinner.js привычным для вас способом.

Вы можете подключать и перемещать файл по проекту как вам удобно, используя проектную систему контроля версий.

Публикация изменений

После того как вы внесли в модуль, находящийся в вашем проекте, изменения, оттестировали их и хотите ими поделиться или сохранить для будущего использования, опубликуйте его следующей командой.

goga push ./app/javascripts/spinner.js

goga заглянет в исходник, найдет там ссылку на источник находящуюся в комментраии с префиксом goga и зальет туда изменения.

Как устроены goga-модули

goga-модуль это обычный исходник на любом языке программирования, в который, добавлен goga-комментарий с адресом источника.

Например:

// goga https://github.com/dapi/elements/blob/master/spinner.js

customElements.define('dapi-spinner', class extends HTMLElement {} )

Вам не нужно добавлять это комментарий самостоятельно. goga сам добавит его при подключении модуля.

Поддерживаемые источники модулей

Языковая поддержка

В goga легко добавить поддержку модулей на любом языке программирования. Но на данный момент поддерживает только следующие.

Язык Вид goga-комментария
JavaScript // goga URI
Ruby # goga URI

Если Вам нужна поддержка других языкой - создавайте issue или присылайте PR

Documentation

Overview

Copyright © 2019 Danil Pismenny <[email protected]>

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL