^hash.sort[key;value]{string-key-maker}[[asc|desc]] — вылезла несовместимость
Sumo 10.11.2015 14:30
/ 10.11.2015 14:36
У меня в некоторых местах встречается такая конструкция:
@getEntities[aOptions]
$aOptions[^hash::create[$aOptions]]
^sql::table{
select *
from entities
order by ^switch[$aOptions]{
^case[DEFAULT]{id}
}
}
Сейчас я огребаю ошибку, если в хеше не задано поле sort:
switch
is 'junction', it does not have numerical (double) value
Это логично, но не очень удобно, поскольку sort слово частотное. Обойти через hash.contains можно, но совместимость уже поломана. Варианты исправления вижу такие:
— Переименовать метод в _sort.
— Сделать в hash.fields доступ только к данным, т.е. положить туда не ссылку на хеш, а объектик, который возвращает значения полей, даже если у нас есть одноименные методы.
— При обращении к $hash.method_name возвращать не ссылку на функцию, а void, если поля нет. Чтобы получить ссылку на методы обращаемся к $hash._method_name.
Последний варант мне кажется наиболее удачным, но я не знаю насколько эффективно это можно реализовать.
p.s. Вылезло в редкоиспользуемых местах, поскольку у меня почти везде ключ для сортировки называется order. Но наверняка у многих именно sort. Опять же $form:fields.sort навернякак часто встречается.
- Parser 3.4.4 RC, moko [M] 27.10.2015 15:16
- Ответ, G_Z [M] 12.11.2015 20:03
- ^hash.sort[key;value]{string-key-maker}[[asc|desc]] — вылезла несовместимость, Sumo [M] 10.11.2015 14:30 / 10.11.2015 14:36
- Ответ, moko [M] 10.11.2015 14:50
- Ответ, moko [M] 10.11.2015 14:36
- Спасибо за проведённую работу!, stur 09.11.2015 10:32
- Обновлнение, Евгений Химич 01.11.2015 23:08
- Класс, Parser стал заметно живее, как проект. (-), andylars 28.10.2015 18:19 / 28.10.2015 18:20
- Ответ, 28.10.2015 18:17
- Unhandled exception 0xC0000005 at 0x1000192A, G_Z [M] 27.10.2015 16:42
- Ответ, moko [M] 27.10.2015 16:56
- Падает на запросе, G_Z [M] 27.10.2015 17:26 / 27.10.2015 17:51
- Ответ, moko [M] 27.10.2015 17:52
- Ответ, G_Z [M] 27.10.2015 17:53
- Ответ, moko [M] 27.10.2015 18:03
- Ответ, G_Z [M] 27.10.2015 18:08
- Ответ, moko [M] 27.10.2015 18:38
- Странно, G_Z [M] 27.10.2015 16:59
- Ура!, G_Z [M] 27.10.2015 15:53
- Ответ, moko [M] 27.10.2015 15:59
- Ответ, G_Z [M] 27.10.2015 16:15
- Ответ, moko [M] 27.10.2015 16:17
- Ответ, G_Z [M] 27.10.2015 16:20