
Anatoly
07.09.2017
13:56:47
Всем привет.
В чем может быть проблема, тесты:
subject { instance.result }
it { expect(subject.size).to eq(Fragment.count) }
Если в методе result поставить дебаггер и просто продолжить его - то все ок.
Если поставить дебаггер в it и выполнить expect - то все ок.
Но если оставить в таком виде, то subject.size всегда возвращает 0.
Само содержание subject - запрос в эластик:
def result
@result ||= Fragment.search(es_query, { scroll: '15m', size: 30 })
end

Vladimir
07.09.2017
13:58:19
скорее всего эластик не успел доиндексировать
а дебагер просто дает ему время это сделать
@FedorKoshel знает, как решить =)

Google

Anatoly
07.09.2017
13:58:58
Разве эластик асинхронно индексирует?

Fedor
07.09.2017
13:58:58
а

Vladimir
07.09.2017
13:59:06

Fedor
07.09.2017
13:59:08
да, эластик асинхронно работает
если добавить Model.import refresh: true то добавится синхронность
но это костыль
который добавляется вместе с срефрешем индекса
но в тестах работает

Anatoly
07.09.2017
14:01:27
А по-хорошему как в тестах это решается?

Fedor
07.09.2017
14:01:38
я так решил )
можно sleep воткнуть
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-refresh.html

Vladimir
07.09.2017
14:02:25
мы в итоге к такому контексту пришли:
shared_context 'cleanup elastic' do |*classes|
before do
# workaround https://github.com/elastic/elasticsearch-rails/issues/571
begin
classes.first.__elasticsearch__.delete_index!
rescue => e
raise e unless e.class.to_s =~ /NotFound/
end
classes.first.__elasticsearch__.create_index!
classes.each do |klass|
klass.import refresh: true
end
end
end

Google

Anatoly
07.09.2017
14:03:40
Понял, спасибо, рефреша хватит, да

Alex
07.09.2017
14:05:17
типа elastic: true
каждый раз писать что переиндексировать как то неоч.

Vladimir
07.09.2017
14:06:12
потому что я не раскурил эту хитрую магию с метаданными, которые инклудят код =)
ты же про метаданные рспека?

Alex
07.09.2017
14:06:36
ага
у нас так сделано.

Vladimir
07.09.2017
14:06:58
давай экзампл =)

Alex
07.09.2017
14:07:57
# Create indexes for all elastic searchable models
config.before :each, elasticsearch: true do
next if RSpec.current_example.metadata[:skip_database].present?
begin
Model.__elasticsearch__.create_index! force: true
Model.__elasticsearch__.refresh_index!
rescue => Elasticsearch::Transport::Transport::Errors::NotFound
# This kills "Index does not exist" errors being written to console
rescue => e
STDERR.puts "There was an error creating the elasticsearch index for Model: #{e.inspect}"
end
end
Я не очень понимаю что у нас под капотом юзается, выглядит как то так.
Главное принцип.

Fedor
07.09.2017
14:08:16

Vladimir
07.09.2017
14:19:48

Alex
07.09.2017
14:20:07

Victor
07.09.2017
14:26:56
require "twitter_cldr"

rekero
07.09.2017
14:33:22

Anton
07.09.2017
14:50:44
дискасс
https://twitter.com/dailyrubytip/status/905729685937684480

Google

Gleb
07.09.2017
14:56:53
Хотел бомбануть, но прочитал. Оказалось доводы в пользу вполне адекватные, хоть и высосаны из пальца... Не поспорить короч

Anton
07.09.2017
14:57:40
а у нас тут корпаративный спонсор появился
https://twitter.com/hanamirb/status/905803117672923137

Alex
07.09.2017
15:01:43

Vlad
07.09.2017
15:02:50
Ребят, если у меня есть хэлпэр от гема который видно только в контроллерах и вьюхах но мне нужно использовать его в декораторах каким образом его наилучше туда притащить?

Nikolay
07.09.2017
15:10:25

Vlad
07.09.2017
15:11:23
Это бест практис?)

Gleb
07.09.2017
15:16:08
ActionController::Base.helpers

Nikolay
07.09.2017
15:16:28
надо смотреть насколько убог тот модуль
если там только твой хелпер - то сойдет
а так Gleb вариант тоже норм, можно его юзать как доступ к хелперам

Eugene
07.09.2017
15:18:16

rekero
07.09.2017
15:24:38

Vlad
07.09.2017
15:36:48
Ну я создал бейс декоратор в котором метод зовет ActionController::Base.helpers

Alex
07.09.2017
16:49:50
?
...а можно ли мне тоже книжечку по trailblazer ?
люблю книжечки)
indigoshw@gmail.com
спасибо!

Alexander
07.09.2017
17:26:04
ну че?
тут вроде спор какой то был. кто выйграл?
фп vs ооп? или о чем то другом?

Lupsick
07.09.2017
17:26:46

Anton
07.09.2017
17:27:25
будем тратить на продукт

Google

Anton
07.09.2017
17:27:46
(всякий мерч, крутые компании делать и так далее)

Nikolay
07.09.2017
17:28:12
Го наклеички с лого на рк раздавать)
Я б наклеил

Anton
07.09.2017
17:28:26
или луку

Admin
ERROR: S client not available

Nikolay
07.09.2017
17:29:08

Anton
07.09.2017
17:29:14
договорились!
у меня будет роза в волосах

Nikolay
07.09.2017
17:29:26
как в матрице

Anton
07.09.2017
17:30:54
или так, да

Nikolay
07.09.2017
17:31:41
у марсиан новые наклейки тож прикольные, вроде аарону подарили не так давно

wi11son
07.09.2017
17:46:27
йо, товарищи
кому стикер saintprug'a ?
буду на railsclub'e
вот такой, но теперь на виниле, нормально вырезанный )

Anton
07.09.2017
17:47:31

Alex
07.09.2017
17:48:36
да, крутой стикер

Alexander
07.09.2017
17:49:34
это гранат какой то а не рубин

Google

Andrey
07.09.2017
17:58:41

wi11son
07.09.2017
18:00:41

Anton
07.09.2017
18:03:19
лол

Ivan
07.09.2017
18:10:30
@hiddman — дайджест новостей и интересной информации по темной стороне интернета (darknet'a).
https://t.me/hiddman

Danny
07.09.2017
18:18:14
Подскажите почему не работает моя логика)
"active" if current_page?(full_path) || request.path.to_s.include?(path.to_s)не работает та проверка где после OR
(кусок хелпера)

Alexander
07.09.2017
18:19:19
request.path.to_s.include?(path.to_s)
а вот это вообще сработает?
тут точно 2 разных path?

Danny
07.09.2017
18:21:57
а типа, path зарезирвированое слово?
в аргументе попробывать другое заюзать?
да, 2 разных)

Alexander
07.09.2017
18:22:47
нет, просто странно как то. поставь логи туда

Danny
07.09.2017
18:23:13

Alexander
07.09.2017
18:31:38
https://apidock.com/rails/ActionDispatch/Request/fullpath
а вообще что означает cp ? child porn?