Size: a a a

pro.rb (Ruby/Rails / RU)

2019 December 21

VK

Vasya Kuzmik in pro.rb (Ruby/Rails / RU)
это одинаковые выражения
источник

DP

D. P. in pro.rb (Ruby/Rails / RU)
Как тогда передать в первом параметре хэш, чтобы руби его не раскрывал?
источник

VK

Vasya Kuzmik in pro.rb (Ruby/Rails / RU)
D. P.
Я передаю в первом параметре хэш. Но руби раскрывает его, и думает, что это параметры функции.
**hash
источник

DP

D. P. in pro.rb (Ruby/Rails / RU)
test( **ha )
ArgumentError: unknown keyword: token
from (pry):31:in `test'
источник

VK

Vasya Kuzmik in pro.rb (Ruby/Rails / RU)
источник

DP

D. P. in pro.rb (Ruby/Rails / RU)
[16] pry(main)> def a1( h )
[16] pry(main)*   puts h
[16] pry(main)* end  
=> :a1
[17] pry(main)> a1({ token: '123' })
{:token=>"123"}

Разумеется так работает и без дополнительных усилий.
Проблема проявляется только если добавить именованные параметры, и у всех параметроа есть значения по умолчанию.
источник

DP

D. P. in pro.rb (Ruby/Rails / RU)
def test( **data = nil, content_type: 'application/json', charset: 'UTF-8' )
SyntaxError: unexpected ',', expecting end-of-input
...ntent_type: 'application/json', charset: 'UTF-8' )
источник

VK

Vasya Kuzmik in pro.rb (Ruby/Rails / RU)
D. P.
def test( **data = nil, content_type: 'application/json', charset: 'UTF-8' )
SyntaxError: unexpected ',', expecting end-of-input
...ntent_type: 'application/json', charset: 'UTF-8' )
**data надо в самый конец
источник

VK

Vasya Kuzmik in pro.rb (Ruby/Rails / RU)
И можно без = nil
источник

DP

D. P. in pro.rb (Ruby/Rails / RU)
если без = nil или без = {} то работает и так, как ожидалось.
источник

VK

Vasya Kuzmik in pro.rb (Ruby/Rails / RU)
Та норм без = nil работает
источник

VK

Vasya Kuzmik in pro.rb (Ruby/Rails / RU)
или я что-то не понял
источник

DP

D. P. in pro.rb (Ruby/Rails / RU)
[20] pry(main)> test
{}
источник

DP

D. P. in pro.rb (Ruby/Rails / RU)
Да, уже увидел.
Не знал вообще, что можно использовать **
источник

VK

Vasya Kuzmik in pro.rb (Ruby/Rails / RU)
Пользуйся
источник

VK

Vasya Kuzmik in pro.rb (Ruby/Rails / RU)
Полезная фича
источник

DP

D. P. in pro.rb (Ruby/Rails / RU)
Спасибо.
Нашёл наконец. https://habr.com/ru/post/257151/
источник

RU

Roman Usherenko in pro.rb (Ruby/Rails / RU)
в 2.7 там кстати поменяли немного прием/передачу кейвордов
источник

МВ

Максим Вейсгейм in pro.rb (Ruby/Rails / RU)
Как сделать такой же терминал
источник

VK

Vasya Kuzmik in pro.rb (Ruby/Rails / RU)
Максим Вейсгейм
Как сделать такой же терминал
Всмысле полупрозрачный?
источник