Rails 콘솔 / irb 출력을 억제하는 방법
나는 꽤 이상한 문제에 봉착했다.
Rails Console의 프로덕션 서버에서 일부 db 항목을 테스트하고 있었는데, 거의 모든 명령으로 인해 ssh 채널이 중단되는 등 수많은 o / p 라인이 발생했습니다.
콘솔 / irb 스크린 풀을 억제하는 방법이 있습니까?
감사
추가 할 수 있습니다 . 모든 명령 / 문에 nil .
예:
users = User.all; nil
실제로 irb는 마지막으로 실행 된 명령문의 (반환) 값을 인쇄합니다. 따라서이 경우 nil이 마지막으로 실행 된 유효한 문이므로 nil 만 인쇄됩니다. :)
irb / console 출력을 침묵시키는 방법을 찾기 위해 austinruby.com 에서 답변을 찾았습니다 .
침묵 irb :
conf.return_format = ""
기본 출력 :
conf.return_format = "=> %s\n"
예를 들어 512 자로 제한 :
conf.return_format = "=> limited output\n %.512s\n"
여기에 이것을 ~ / .irbrc에 추가하십시오.
require 'ctx'
require 'awesome_print'
module IRB
class Irb
ctx :ap do
def output_value()
ap(@context.last_value)
end
end
ctx :puts do
def output_value()
puts(@context.last_value)
end
end
ctx :p do
def output_value()
p(@context.last_value)
end
end
ctx :quiet do
def output_value()
end
end
end
end
def irb_mode(mode)
ctx(mode) { irb }
end
(Note: You must install the ctx
gem first, though awesome_print
is optional, of course.)
Now when you are on any console that uses irb, you can do the following:
Normal mode:
irb(main):001:0> { this:'is a complex object', that:[ { will:'probably'}, { be:'good to read' } ], in:{ some:{ formatted:'way'} } }
=> {:this=>"is a complex object", :that=>[{:will=>"probably"}, {:be=>"good to read"}], :in=>{:some=>{:formatted=>"way"}}}
...yep, just what you expect.
awesome_print
mode:
irb(main):002:0> irb_mode(:ap)
irb#1(main):001:0> { this:'is a complex object', that:[ { will:'probably'}, { be:'good to read' } ], in:{ some:{ formatted:'way'} } }
=> {
:this => "is a complex object",
:that => [
[0] {
:will => "probably"
},
[1] {
:be => "good to read"
}
],
:in => {
:some => {
:formatted => "way"
}
}
}
...wow, now everything is printing out awesomely! :)
Quiet mode:
irb#1(main):002:0> irb_mode(:quiet)
irb#1(main):001:0> { this:'is a complex object', that:[ { will:'probably'}, { be:'good to read' } ], in:{ some:{ formatted:'way'} } }
irb#1(main):002:0>
... whoah, no output at all? Nice.
Anyways, you can add whatever mode you like, and when you're finished with that mode, just exit
out or it, and you'll be back in the previous mode.
Hope that was helpful! :)
Supress Output, In General
Also, depending on your needs, have a look at using quietly
or silence_stream
for suppressing output in general, not just in the irb/console:
silence_stream(STDOUT) do
users = User.all
end
NOTE: quietly
will be deprecated in Ruby 2.2.0 and will eventually be removed. (Thanks BenMorganIO!)
More information can be found here.
$ irb --simple-prompt --noecho
running the following within irb works for me:
irb_context.echo = false
참고URL : https://stackoverflow.com/questions/4678732/how-to-suppress-rails-console-irb-outputs
'IT story' 카테고리의 다른 글
Visual Studio의 느린 디버깅 문제 (0) | 2020.09.17 |
---|---|
유사 절 JPQL의 매개 변수 (0) | 2020.09.17 |
Postgresql이 수퍼 유저로 "createdb"를 사용하여 db를 생성하지 않지만 오류를 출력하지 않음 (0) | 2020.09.17 |
논리 AND 연산자 &&와 함께 Swift if let 사용 (0) | 2020.09.17 |
지원 라이브러리 v21로 업그레이드 한 후 PreferenceActivity에 ActionBar가 없음 (0) | 2020.09.17 |