
Mikhail
20.03.2018
16:50:47
но если начну редактировать, то копия создается
если ссылок нет

Dima
20.03.2018
16:56:09

Google

Mikhail
20.03.2018
16:58:07
А как у строки реализован downcase например? Создается новый экземпляр в котором все объекты приведены к нижнему регистру, или меняется исходная выделенная память?

Alex
20.03.2018
16:59:21
a = "WTF"
b = a.downcase
p a,b

Mikhail
20.03.2018
17:00:05
Это понятно
а если a.downcase!

Alex
20.03.2018
17:00:16

Mikhail
20.03.2018
17:00:24
Объект тот же остается

Dima
20.03.2018
17:00:29

Alex
20.03.2018
17:00:30

Dima
20.03.2018
17:00:55

Mikhail
20.03.2018
17:01:11
Так я знаю, что тот же будет
Вот у меня есть строка, я хочу все символы привести к нижнему регистру двумя спосабами
Либо иду и каждый символ привожу к нижнему регистру
либо создаю новую строку, в которой все буквы в нижнем регистре, а затем перезаписываю этой строкой исходную

Google

Mikhail
20.03.2018
17:02:29
Просто если возможен первый вариант, посимвольное измение, значит есть ссылки на подстроки

Dima
20.03.2018
17:02:39

Alex
20.03.2018
17:02:54

Dima
20.03.2018
17:03:58

Mikhail
20.03.2018
17:04:18

Владимир
20.03.2018
17:04:36
он работает!
и это здорово)

Alex
20.03.2018
17:06:12

Dima
20.03.2018
17:07:29
Я пытаюсь понять как он работает :)
Если есть желания разбираться в глубинах языка руби, то могу посоветовать вот это видео:
https://youtu.be/268UU4EpTew
А из этого видео, девушка лектор говорит о следующих ресурсах:
https://github.com/tjjjwxzq/ruby-object-model-talk/blob/master/ruby-object-model-notes.md
https://ruby-hacking-guide.github.io/
http://patshaughnessy.net/ruby-under-a-microscope

Владимир
20.03.2018
17:07:35
народ, я знаю что мои вкусы специфичны но кто то работал с bisiness dropbox api?
а именно DRM прямым запросом
ех, пошел дальше сам ковырять, скучные вы

Mikhail
20.03.2018
17:34:13
А как запустить вариант из best practice? Хочется по быстродействию сравнить :)

Zamira
20.03.2018
18:15:14
Коллеги, кто использует Postgres с рельсами? Нужна помощь

Mikhail
20.03.2018
18:18:27

Dmitry
20.03.2018
18:19:24

Zamira
20.03.2018
18:19:55
Есть число #<BigDecimal:55e370cb3e60,'0.31469964E4',18(27)>.
Его сохраняю в postgres в поле big decimal precision=10 scale=2.
Если взять 2 цифры после запятой, то имеет 3146.99. Такие штуки в такие поля записываются как 3147. Я понимаю, что в теории вещественных чисел 0.(9) это 1, но можно ли его заставить все же сохранять 3146.99?

David
20.03.2018
18:23:34
Можно было бы хранить в базе 314699, как это делает например money gem
А затем перед использованием возвращать в нужные 3146.99

Zamira
20.03.2018
18:24:15
Воу... неожиданно.

Google

David
20.03.2018
18:24:49
Это как вариант, если всегда речь идёт о двух знаках после точки

Zamira
20.03.2018
18:24:58
Да, всегда 2

David
20.03.2018
18:26:05
Если ребята не подскажут что-то получше, то такой вариант вполне приемлем. А вам для значения денег?

Zamira
20.03.2018
18:27:29
Да. Есть отчет, в котором местами нужно значение без копеек, а местами с копейками. Так вот.. Там где отбрасывают копейки, у меня проблема, потому что мой отчет всегда на несколько рублей больше показывает из-за того, что 0.99 превращается в 1
Спасибо за идею. Я бы не додумалась.

David
20.03.2018
18:28:57
???

Vasiliy
20.03.2018
18:31:47
так если там с деньгами работа может заюзать гем money, который выше упоминали?

Zamira
20.03.2018
18:40:50
В проекте работы с деньгами много, но гема этого нет. Мне только один отчет немного надо переписать. И то оптимизации ради что бы страница быстрее открывалась. нет времени на переписывание всего проекта на использование этого гема. Но я для себя почитаю. В будущем пригодится. Спасибо.

Владимир
20.03.2018
18:45:34
Советую только еше добавить проверку того что после запятой только два знака и только потом подводить к единому виду.
А то потом в отчете будут отнюдь не в рублях промахи
Ето может сейчас оно отдает строго с двумя знаками, через пол года еше какая то оптимизация, уже все забыто, и вот такое вылазит не сразу и не повсемесно

Felix
20.03.2018
18:46:52
может просто округлять до двух знаков, если больше?
ну и скорее всего это значение копеек, туда слава богу дробные еще не завезли)

Владимир
20.03.2018
18:47:35
Как мне обьяснили "так надо"

Felix
20.03.2018
18:49:00
а вообще да. если операции сложнее вычитания/сложения, возможно имеет смысл хранить
особенно если с результатами отчетов еще что-то планируется делать

Zamira
20.03.2018
18:57:13
Оно ложится в postgres big decimal precision 10 scale 2 как 3147.

Владимир
20.03.2018
18:58:00
Тогда тем более единый формат представления чисел и тд

Google

Zamira
20.03.2018
18:58:33

Владимир
20.03.2018
18:58:57
Слоник в инте принимает, вот и отдавать ему инт заданого формата
Первые 5 чисел это дробь, остальное целое
К примеру
Если уж E
23.12344 будет как 2312344
А 23 как 2300000
А потом просто точку где надо и TO_i

Zamira
20.03.2018
19:00:34
Ах да, еще забить нулями исходно-целые...

Владимир
20.03.2018
19:01:00

David
20.03.2018
19:01:03

Владимир
20.03.2018
19:01:11
А то зашло 23 рубля а вышло ноль

David
20.03.2018
19:01:16

Zamira
20.03.2018
19:01:45
Как видите я имею bigdecimal числа(деньги) в принципе. Я могу умножить на 100, отбросить дробь, и записывать. Ничего же не надо забивать нулями.

Владимир
20.03.2018
19:01:52
я думаю в случае такой траблы вам даже предоставят в каком из пригородных лесков вас прикопать
ето и есть один из способов "забития" нулями)

David
20.03.2018
19:03:07

Zamira
20.03.2018
19:05:12

Владимир
20.03.2018
19:07:43
Такой милый ?
Просто реалист)
Знаю что в БД цену на корм для котика не хранят. А милионные потери из за программной ошибки ваша почка не решит.
Данный тип ошибок из вида коварных и несовпадение сумм на отладке и первых тестах может и не выявится. А потом... ...ну вобшем и так понятно)

Google

Zamira
20.03.2018
19:09:13
Так не то что при тестах... Это при разработке выявилось. Я же большая девочка, мозги хоть чууууть-чуть есть)
Поэтому и обратилась с вопросом как это решить.

Владимир
20.03.2018
19:10:15
ничего, значит на тестах вылезет что то еше)

David
20.03.2018
19:10:29

Felix
20.03.2018
19:10:50

Zamira
20.03.2018
19:11:20

Владимир
20.03.2018
19:11:42
У самого было когда при формировании pdf калькуляции подтягивались ушербные шрифты и сохранялось.
Там всей командой с ума сходили как так, в консоли и на отладке одно а в отчете другое
ага. клиповая память. моргнул и забыл. удобно.
хотя при работе приходится по 12 часов не моргать...

Artem
20.03.2018
19:31:03
Rails 5.2.0 RC2: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials
and Webpacker 3.0
http://weblog.rubyonrails.org/2018/3/20/Rails-5-2-RC2/

Vadim
20.03.2018
19:35:14
Есть некая переменная в конструкторе some, мне нужно её привести к random значению из массива [5, 7, 9 32]

Alex
20.03.2018
19:36:04
[5, 7, 9 32].sample

Felix
20.03.2018
19:36:31
занес в копилочку
не знал о таком методе)

Vadim
20.03.2018
19:36:41
и всё это присвоить моей переменной верно?

Alex
20.03.2018
19:37:02

Владимир
20.03.2018
19:37:11
да

Vadim
20.03.2018
19:40:12
@Fedcomp а получается вот у меня есть констурктор в классе initialize
а само это присвоение я могу писать в руби просто ниже типо так?
или нужно всё таки создавать метод какой то который будет присваивать переменной значение?
class Test
def initialize(some)
@some = some
end
some = [6, 12, 24, 36].sample
end

Alex
20.03.2018
19:41:05
class Test
RANDOM_ARRAY = [6, 12, 24, 36].freeze
def initialize(some = RANDOM_ARRAY.sample)
@some = some
end
end
Наверное так будет работать