@bestplace/ljsp
check permissions
Last updated 7 months ago by bestplace .
ISC · Repository · Original npm · Tarball · package.json
$ cnpm install @bestplace/ljsp 
SYNC missed versions from official npm registry.

LJSP

Точка сбора Lua JavaScript Python

Репозиторий для кросплатформенных функций.

check(obj, path, default)

Аналог _.get для словарей с правами
Возвращает '*' для всех дочерних путей, если всё поддерево разрешено через '*'
При этом список [42, "spam"] интерпретируется как {42: '*', "spam": '*'}

Пример:
    check({1: 'foo'}, 'bar.foo') == None

    check({1: '*'}, '1.all.you.need.is.love') == '*'

    check({1: 2}, '1.foo.bar.3', 42) == 42

    check({1: 'foo'}, '.') == {1: 'foo'}

:param obj: dict или '*' прав
:param path: точечный путь в словаре
:param default: значение, которое будет возвращено, если прав для заданной путем ветви нет
:return: значение, по заданному пути
fillna(value, fill = '-')

Возвращает fill, если value - неопределенное значение (1), иначе value.
chunk3(value)

Возвращает строку с числом, где разряды разбиты по 3, начиная от первого, в обе стороны. Например: 1234567.8987 -> 1 234 567.898 7. Ожидается, что value либо число, либо строка (2). В противном случае возвращается неопределенное значение (3).
nbsp(value)

Возвращает строку, где все пробелы заменены HTML-символом неразрывного пробела ' '. value должен быть строкой, иначе возвращается неопределенное значение (3).
trunc(value, length = 255)

Возвращает часть строки, ограниченной length первых символов. value должен быть либо числом, либо строкой (2). В противном случае возвращается неопределенное значение (3).
JavaScript: round(value, precision)
Python 3: round_(value, precision)

Возвращает округленное значение с точностью precision знаков после запятой. value должен быть числом (4), в противном случае возвращается исходный value. Если точность не указана, она определяется в зависимости от
значения value: чем меньше число, тем выше точность.
href(value, length)

Возвращает ссылку в виде HTML-тэга a, если value начинается с 'http://' или 'https://', в противном случае
возвращается value. Атрибут href принимает значение value, внутри тэга первые length значений value c '...' или целиком
value, если его длина не превышает length + 3.
Арифметические функции
m(value, number = 1)
d(value, number = 1)
a(value, number = 1)
s(value, number = 1)
Возвращают результат соответствующей арифметической операции над двумя
аргументами (m - умножение, d - деление, a - сложение, s - вычитание). value
должен быть числом (5), или строкой, модержащей число. В противном случае
возвращается неопределенное значение (3).
Примечание: для целых чисел рекомендуется дополнительно использовать `round(val, 0)`.
fmt(value, processStr = '')
Преобразует value по цепочке, заданной строкой processStr. Строка имеет вид 'функция1.функция2<целое число>.функция3....'. Когда после функции идет целое число, оно передается в нее вторым аргументом. Поддерживаемые функции:<br />
- без аргументов: fillna, chunk3, nbsp, str;<br />
- с целочисленным аргументом: trunc, round, m, d, a, s.<br />
Пример: 'm7.d15.a10.chunk3.nbsp.fillna'.<br />
Когда в строке обнаруживается неподдерживаемая функция, промежуточный результат неопределен (3).
format(string, ...values)
Форматирует строку в соответствии с переданным шаблоном и подставляет данные из аргументов.
Поддерживаются позиционные и именованные подстановки. Позиционные ('{}') заменяются на
соответствующие позиционны аргументы (со сдвигом +1, если первый аргумент - объект [для JavaScript]).
Именованные подставноки ('{<key>}') заменяются на соответсвующие значения именованных аргументов (Python)
или на значения по ключу из первого аргумента (JavaScript). Каждая подстановка может содержать
часть ('|<цепочка преобразований>'). В этом случае значение обрабатывается с помощью fmt (см. выше).
Примеры:
- 'format("{key1} {key2}", {key1: "a", key2: "b"})' -> "a b" [JavaScript]
- 'format("{key1} {key2}", key1="a", key2="b"})' -> "a b" [Python]
- 'format("{} {key} {}", {key: "hey"}, "a", "b")' -> "a hey b" [JavaScript]
- 'format("{} {key} {}", "a", "b", key="hey")' -> "a hey b" [Python]
- 'format("{||}", {"|": "hey"})' -> "hey" [JavaScript]
- 'format("{||}", **{"|": "hey"})' -> "hey" [Python]
- 'format("{|a2.round0}", 2)' -> "4" [JavaScript/Python]
Примечания:
- Только последний "|" считается разделителем фильтров от ключа.
- В случае, если после "|" пустая строка - обработки не происходит.

(1) Функция считает следующие значения аргументов неопределенными:
JavaScript: undefined или null
Python 3: None или nan
(2) В данном случае проводятся следующие проверки value:
JavaScript: Number или String
Python 3: не bool и не None
(3) Функция возвращает как неопределенное значение:
JavaScript: null
Python 3: None
(4) В данном случае проводятся следующие проверки value:
JavaScript: Number
Python 3: не bool, не None и не str
(5) В данном случае проводятся следующие проверки value: JavaScript: не null
Python 3: не None

Current Tags

  • 0.1.35                                ...           latest (25 days ago)

27 Versions

  • 0.1.35                                ...           25 days ago
  • 0.1.34                                ...           a month ago
  • 0.1.33                                ...           2 months ago
  • 0.1.32                                ...           2 months ago
  • 0.1.31                                ...           3 months ago
  • 0.1.30                                ...           3 months ago
  • 0.1.29                                ...           3 months ago
  • 0.1.28                                ...           3 months ago
  • 0.1.27                                ...           3 months ago
  • 0.1.26                                ...           3 months ago
  • 0.1.25                                ...           3 months ago
  • 0.1.24                                ...           3 months ago
  • 0.1.23                                ...           3 months ago
  • 0.1.22                                ...           3 months ago
  • 0.1.21                                ...           3 months ago
  • 0.1.20                                ...           3 months ago
  • 0.1.19                                ...           5 months ago
  • 0.1.18                                ...           5 months ago
  • 0.1.17                                ...           7 months ago
  • 0.1.16                                ...           7 months ago
  • 0.1.15                                ...           8 months ago
  • 0.1.14                                ...           8 months ago
  • 0.1.13                                ...           8 months ago
  • 0.1.12                                ...           8 months ago
  • 0.1.11                                ...           8 months ago
  • 0.1.10                                ...           10 months ago
  • 0.0.1                                ...           10 months ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 1
Last Month 14
Dependencies (0)
None
Dev Dependencies (5)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |