Można zawsze znaleźć źródło danej metody korzystania source_location
:
method(:j).source_location
lub nawet jego dokładną definicję z pry (lub method_source
gem):
method(:j).source
Wynik:
def j(*objs)
objs.each do |obj|
puts JSON::generate(obj, :allow_nan => true, :max_nesting => false)
end
nil
end
j
jest metodą pochodzącą z biblioteki JSON (która jest dodanie tej metody do modułu Kernel
więc jest ona dostępna w IRB) i jest odpowiedzialny za wyświetlanie podane argumenty jako obiekty JSON:
j(hello: :world)
#=> {"hello":"world"}
nil
Rails domyślnie wymagają json
biblioteki więc jest on dostępny od razu. W czystej IRB musisz mieć do niej dostęp require 'json'
.
Przyjmuje dowolną liczbę argumentów, więc j
zwraca zero bez drukowania czegokolwiek. Jest to odpowiednik metody p
, po prostu używa json zamiast wyniku inspect
.
Wiem, że 'j' jest skrótem od' escape_javascript', metody, która pozwala wstawiać cząstki w plikach '.js.erb'. Jeśli wywołasz to bez żadnych parametrów, może zwrócić zero. –
Istnieją również "p" i "y". – roob
@roob - yep, metoda 'y' pochodzi z modułu' YAML', dostęp do niego można uzyskać w czystym rubinku bez żadnych klejnotów po "wymaganiu" yaml''. – BroiSatse