Описание тега ruby-block
3
ответа
Как я могу связать with_index и with_object для перечислимого в ruby?
Я хочу обработать массив ['a', 'b', 'c'] вернуть строку '0a1b2c' (т. е. строка, образованная путем объединения каждого индекса с его значением). Я могу сделать это: result = '' ['a', 'b', 'c'].each.with_index do |char, i| result += "#{i}#{char}" end…
14 янв '17 в 05:23
2
ответа
Передать блок функции карты
Мне было интересно, возможно ли что-то подобное? info = arrange_info({|x| [x.name, x.number]}, info_array) def arrange_info(block, info) info.map(block).to_h end Это позволило бы мне передавать разные блоки, чтобы упорядочить массив разными способам…
02 фев '17 в 16:24
1
ответ
Ресурс шеф-повара ruby_block заменяет файл aline в файле
Как заменить: export JAVA_HOME=${JAVA_HOME} с: export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::") in hadoop-env.sh using RUBY_BLOCK resource in CHEF
22 дек '16 в 12:53
1
ответ
Шеф-повар ruby_block ShellOut MySQL результат stdout навсегда пустой
Есть следующий случай: test3 = Mixlib::ShellOut.new("echo '1'") test4 = Mixlib::ShellOut.new("mysql -u root --silent --skip-column-names --password='rootpass' -e 'some sql;'") test3.run_command test4.run_command puts test3.stdout # => 1 puts test…
07 авг '18 в 07:43
1
ответ
Как связать вызов метода с блоком `do ... end` в Ruby?
Я делаю следующее: array_variable = collection.map do |param| some value with param end return array_variable.compact Могу я позвонить map а также compact как-то в одном утверждении, чтобы я мог вернуть результат мгновенно? Я думаю о чем-то вроде эт…
08 июн '17 в 11:12
0
ответов
Шеф-повар установил значение атрибута узла из соответствия регулярному выражению
Я пытаюсь установить атрибут узла с подстрокой из файла, но я не могу добиться этого успешно. Содержимое #{ENV['TEMP']}\fullname.txt Full Name King Arthur И я хочу назначить только "King Arthur" атрибуту узла node.default[имя_пользователя] Это ruby_…
20 авг '18 в 23:39
1
ответ
Во втором запуске chef-client ленивый атрибут docker_container для "link" не разрешается и ему передается нечитаемое значение
Я впервые спрашиваю о переполнении стека, здесь, в Китае, я редко могу встретиться с любым разработчиком-шефом, чтобы поговорить о моей проблеме, поэтому я публикую его здесь, чтобы обратиться за помощью. Эта проблема беспокоила меня уже несколько н…
19 мар '17 в 13:43
1
ответ
Ruby Blocks внутри модуля или класса
Можно ли написать блок в Ruby внутри класса или модуля? согласно документам блок может быть вызван из методов, использующих yield... то есть он должен вызываться также из методов в классах. Но для приведенного ниже кода, как я получаю следующую ошиб…
09 сен '18 в 02:07
2
ответа
Как блочная форма Array#new работает с "Array.new(10) { |e| e = e * 2 }"?
У меня проблемы с пониманием роли внутри фигурных скобок. Array.new(10) { |e| e = e * 2 } # => [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] Я получаю, что создается новый массив с десятью значениями, но что делает вторая половина?
24 мар '16 в 19:35
1
ответ
Ruby block - возвращать код выполнения yield после yield
Я хочу вернуть вывод yield но также выполнить код после yieldЕсть ли более "правильный" путь? def myblock yield_output = yield puts 'after yield' yield_output end myblock {'my yield'} # after yield # => my yield
03 авг '17 в 09:38
2
ответа
Как проверить, что блок вызывается с помощью rspec
Я хочу проверить, вызван ли блок в моей функции с помощью rspec. Ниже мой код: class SP def speak(options={},&block) puts "speak called" block.call() rescue ZeroDivisionError => e end end describe SP do it "testing speak functionality can rec…
16 июн '17 в 21:13
1
ответ
Передайте рубин и блок, используя rspec
Я хочу проверить функциональность метода, используя rspec, который получает анонимный блок и не вызывает ошибку. Ниже мой код: class SP def speak(options={},&block) puts "speak called" block.call() rescue StandardError => e puts e.inspect() e…
16 июн '17 в 17:22
2
ответа
Ruby: передача блоков в качестве параметров из класса oustide
Я получаю ниже ошибку при выполнении кода: example.rb:9:in `<main>': undefined method `each' for main:Object (NoMethodError) Строка 9 - вторая последняя строка в моем коде. Мой код: class TargetProvider def each(target,&block) block.call(t…
17 июн '17 в 19:33
1
ответ
Переменная присваивается в блоке в блоке
Сначала у меня был этот код, но он не работал: VIM = Vimrunner::RSpec.configure do |config| config.reuse_server = true config.start_vim do vim = Vimrunner.start vim end end configure это просто метод, который делает настройки для сервера Vimrunner. …
13 июл '16 в 22:16
1
ответ
Ruby: используйте возврат условия для назначения и сравнения переменных
У меня есть метод, и чтобы проверить, передается ли ему блок, я делаю следующее: if block_given? res = yield(array[i], array[i+1]) else res = array[i] - array[i+1] end Однако RuboCop дает мне предупреждение, которое я не очень понимаю в if block_giv…
11 фев '18 в 11:29
2
ответа
Используя print внутри def с оператором yield
Я пытаюсь распечатать внутри функции. Функция используется для вызова блока. Но я не вижу печати в определении функции. Пожалуйста, пролить свет на это. В принципе, я не понимаю, с потоком управления. def find_all matching_items = [] self.each do |i…
05 май '16 в 00:33
1
ответ
Требовать rest-client для модуля в Chef
Мне нужно включить res-client в мой модуль, чтобы использовать RestClient::Resource. Я использую метод в модуле в рецепте шеф-повара (ресурс ruby_block). Когда мой ресурс ruby_block пытается запустить метод в модуле, он выводит эту ошибку: ОШИБКА: н…
23 июн '18 в 22:59
2
ответа
У меня есть загадка с участием блоков и их раздача, нужна помощь в ее решении
Итак, я построил DSL, и часть его требует, чтобы пользователь DSL определил то, что я назвал "блоком записи". writer do |data_block| CSV.open("data.csv", "wb") do |csv| headers_written = false data_block do |hash| (csv << headers_written &…
05 мар '17 в 18:41
3
ответа
Ruby - перебирая и вызывая массив методов
Допустим, у меня есть два метода: def hello 'hello' end def world 'world' end Теперь я хочу вызвать эти методы следующим образом: try_retry{ hello } try_retry{ world } предположим, что try_retry - это метод, который в случае ошибки повторяет блок ко…
20 окт '16 в 18:40
1
ответ
Невозможно избежать знака доллара на ресурсе ruby_block
Я пишу рецепт шеф-повара, где запускается команда sql. ruby_block 'SQL command' do block do report = open(ReportFile,'a') command = %Q( ssh -o StrictHostKeyChecking=no root@#{dbHost2} 'su - #{oraSidUser} -c "#{oracleHome}/bin/sqlplus / as sysdba <…
06 фев '19 в 10:24