Как стать автором
Обновить

Комментарии 17

про мультики — это вы клево придумали:) да простят меня умные дамы.
Код не читал еще, но сразу вопрос: поддерживает ли этот класс 'to_json'? Сильно ли он завязан на RoR с этим вашим ActiveRecord? (хочу это с Couchrest::Model использовать)
Лучше уж сразу используй большой резиновый член. И код прочитай.
Какой-то ты толстый сегодня. Я понимаю, что у тебя аллергия на NoSQL, но зачем так реагировать?
Я бы ещё понял монго, но коч — это выше моих сил.
Имхо, много выбор для хайлоад или близко к нему, когда под него есть смысл выделить минимум один сервер целиком. А если это впс, на котором крутится с десяток сайтов с суммарной посещаемостью сто хостов в сутки, пара РСУБД и хочется ещё NoSQL, то использование монго может создавать излишние проблемы.
HTTP RESTful API :D Согздание баз на лету и их прозрачное проксирование, можно столько всякой магии натворить с каучем. Клиент для айфона еще лучше выходит — мобильный кауч с 2-сторонней синхронизацией только нужных баз (на каждого клиента своя база, данные для бэкэнда в отдельно базе)? Возможность работать с базой напрямую из cappuccino без прослойки?
Насчет to_json:
Money.new(1000, 'USD').to_json
# => "{\"cents\":1000,\"currency\":{\"id\":\"usd\",\"priority\":1,\"iso_code\":\"USD\",\"name\":\"United States Dollar\",\"symbol\":\"$\",\"subunit\":\"Cent\",\"subunit_to_unit\":100,\"symbol_first\":true,\"html_entity\":\"$\",\"decimal_mark\":\".\",\"thousands_separator\":\",\"},\"bank\":{\"rounding_method\":null,\"rates\":{},\"mutex\":{}}}"


В данный момент 100% завязан на активрекорд, но там кода 5 строчек. Если напишите поддержку Couch с тестами, будет славно.
Как-то уж сильно много букв. Думаю вот так было бы лучше:
Money.new(1000, 'USD').to_json
# => "{\«cents\»:1000,\«currency\»:\«USD\»}"
Ну, я метод добавил. Теперь все зависит от того, примут ли меинтейнеры гема money мой пулл-реквест.

specify "Money.to_json works" do
  json = %({"amount":10.0,"currency":"USD"})
  Money.new(10_00, 'USD').to_json.should == json
end
забавное Вы выбрали назавание для плагина работающего с деньгами
Автоконвертация — это мечта программиста и страшный сон маркетолога. Вот представьте, поставили вы в рублях цену, а в гривны она перевелась как 5,05 гривен. Или 31,08 долларов. Это во-первых неудобно, во-вторых мусорно, в-третьих не дает ставить цены типа 4,90 гривен или 29,90 долларов.

Да, с ручными ценами оплата в одной валюте может выйти чуть выгодней чем в другой. Однако прибыль от правильных цен перебьет эту разницу в десятки и сотни раз.
Ну это по-умолчанию она авто. Конечно, при должном подходе легко реализовать не-совсем-авто. Нужно просто написать свой класс Exchange с возможностью, например, редактировать циферки маркетологом из админки и подсунуть его в качестве банка классу Money.
А ещё лучше добавить конвертор, принимающий во внимание маркетологические соображения, и округляющий цену до ближайших 95 копеек, или 99, чтонить вроде:

price in: :EUR, round: 95
НЛО прилетело и опубликовало эту надпись здесь
блин неужели нет способа как то все свести к одной валюте? чтобы в базе вообще int было
Можно. Когда биткоин победит с станет единственной мировой валютой, например. А пока — нет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории