рдЖрд░рдИрдкреАрдПрд▓
рдШреБрдЯрдиреЗ рдХреЗ рдЙрдЪреНрдЪ рд╡рд┐рдХрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ REPL
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЦрдбрд╝рд╛ рд╣реИ тЖТ рдореВрд▓реНрдпрд╛рдВрдХрди тЖТ рдкреНрд░рд┐рдВрдЯ рд▓реВрдк ред рдкрдврд╝реЗрдВ, рдирд┐рд╖реНрдкрд╛рджрд┐рдд, рдореБрджреНрд░рд┐рдд, рдФрд░ рдХрдИ рдмрд╛рд░ред
рд░реВрдмреА, рдХрдИ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреА рддрд░рд╣, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ REPL рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ irb
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЖрджрд┐рдо рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рднреА рд╕рдордЭрджрд╛рд░ рдбреЗрд╡рд▓рдкрд░ рдХреА рдорд╛рдВрдЧреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рдХрд╕рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИ: pry
ред

рдпрд╣рд╛рдБ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ pry
рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдПрдХ рдЕрдВрд╢ рд╣реИ:
Pry , Ruby IRB рд░реИрдкрд░ рдХреЗ рдорд╛рдирдХ рдХрд╛ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдПрдХ рд▓рдЪреАрд▓рд╛ рдкреНрд▓рдЧрдЗрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ , рд░рдирдЯрд╛рдЗрдо рдХреЙрд▓ рдФрд░ рджреЗрдЦрдиреЗ рдХреЗ рд╕реНрд░реЛрдд рдФрд░ рдкреНрд░рд▓реЗрдЦрди ред
рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдмреНрд▓рд╛ рдмреНрд▓рд╛ рдмреНрд▓рд╛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдЪ рд╣реИред рдореИрдВ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╕рдмрд╕реЗ рдкрд░рд┐рд╖реНрдХреГрдд рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдШрдВрдЯрд┐рдпрд╛рдБ рдФрд░ рд╕реАрдЯреА рдХреЗ рд╕рд╛рде pry
рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд░реВрдмреА рдХрд╛ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдФрд░ рд▓рдХреНрд╖реНрдп рдорд╢реАрди рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
рдЯреНрд░реЗрдирд┐рдВрдЧ
рдХрдВрд╕реЛрд▓ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:
$ gem install pry pry-theme awesome_print coderay
рд╕рдм рдХреБрдЫ, рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рд╣реИрдВред рдЖрдЗрдП pry
рдЪрд▓рд╛рддреЗ рд╣реИрдВ ... рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ irb
рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред рдЕрдЪрд╛рдирдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
рдареАрдХ рд╣реИ, рддреЛ рдЪрд▓реЛ, рдереЛрдбрд╝рд╛ рд╣реЛрд╢рд┐рдпрд╛рд░ рд╣реЛрдиреЗ рдХрд╛ рдЙрдкрджреЗрд╢ рджреЗрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓
рдпрд╣ .pryrc
ред рд╣реЛрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ рджрд┐рдЦрдирд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рднреНрдп рд╕рдорд╛рдЬ рдореЗрдВ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ cd && touch .pryrc
рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдирд╛рдЬреБрдХ рднрд░рдиреЗ .pryrc
рдирд┐рд░реНрджреЗрд╢
рдореИрдВ рдЪрд░рдг рджрд░ рдЪрд░рдг pry
рдХреА рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдЕрдзреАрд░ рдХреЗ рд▓рд┐рдП: gist .pryrc
ред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрдкрд╛рджрдХ
Pry.editor = 'vi'
рдЙрд╕ рд╕рдВрдкрд╛рджрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн ( edit
рдХрдорд╛рдВрдб) рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ
Pry.config.prompt = [ ->(_obj, _nest_level, _) { "тЬО " }, ->(*) { " " } ]
.pryrc
рд╕рд┐рд░реНрдл рдПрдХ .pryrc
рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреЗ рдЗрдЪреНрдЫрд┐рдд рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореЗрд░рд╛ рдмрд┐рдЯрдХреЙрдЗрди рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдк рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рд╕рдВрдХреЗрдд рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рдкрд╣рд▓реЗ рд╕реНрддрд░ рдФрд░ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрддрд░ (рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдЕрдВрджрд░) рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдПрдХ рдХрд╛рд▓реЗ рдЫрд╛рдпрд╛рдВрдХрд┐рдд рддреНрд░рд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ , рдЬреЛ рдкрд╣рд▓реЗ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╕реНрдд рд╣рдмреНрд░ рдкрд╛рд░реНрд╕рд░ рдХреЛ рдХрд╛рдЯрддрд╛ рд╣реИ рдФрд░ gradually рдиреЗрд╕реНрдЯреЗрдб рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП a, рд▓реЗрдХрд┐рди рдзреАрд░реЗ-рдзреАрд░реЗ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА рдмрд╛рд╣рд░реА рд╡рд░реНрдг рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХрд╣реАрдВ рднреА рдЯреБрдХрдбрд╝реЗ рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд╣реИред
рд░рдВрдЧ
рд╡рд┐рд╖рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, pry-theme
рд░рддреНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд░рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ (рдФрд░ рдЬрдм рдореИрдВ рдКрдм рдЬрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ PRY_BW=true pry
рдЪрд▓рд╛рддрд╛ PRY_BW=true pry
)ред рд░реЗрд▓реНрд╕ ( рд░реЗрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдпреБрдХреНрдд) рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рдФрд░ рднреА рдЕрдзрд┐рдХ рдлреИрдВрд╕реА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд░реЗрд▓ рд╕реЗ рдирдлрд░рдд рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ред
unless ENV['PRY_BW'] Pry.color = true Pry.config.theme = "railscasts" Pry.config.prompt = PryRails::RAILS_PROMPT if defined?(PryRails::RAILS_PROMPT) Pry.config.prompt ||= Pry.prompt end
рдХрд╣рд╛рдиреА
рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЦреЛрдЬ рд╣реИред рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ, рдпрд╛ рдпрджрд┐ рдХрдорд╛рдВрдб рдЙрд╕рдХреЗ рддреБрд░рдВрдд рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдмрд╕ it рджрдмрд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдбрд┐рдмрдЧрд░ рдореЗрдВ рдХреЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рд╣реИ (рдпрджрд┐ рдЖрдк, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рди рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдЬреИрд╕реЗ рдбрд┐рдмрдЧрд░ рдХреЛ рдХрднреА рднреА рд▓реЙрдиреНрдЪ рди рдХрд░реЗрдВ)ред
Pry.config.history.should_save = true Pry::Commands.command /^$/, "repeat last command" do _pry_.run_command Pry.history.to_a.last end
рдЖрджреЗрд╢реЛрдВ
рдбреАрдмрдЧрд░ред рдмрд╛рдЗрдХ рдореЗрд░реА рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ рдЕрдкрдиреА рдЯреАрдо рдХреЗ рд╕рд╛рдереА рд╕реЗ рд╕рд┐рд░реНрдл рдпреЗ рдкрд╛рдВрдЪ рд▓рд╛рдЗрдиреЗрдВ рдЙрдзрд╛рд░ рд▓реА рд╣реИрдВ, рдЬреЛ рдЕрдкрдирд╛ рдкреВрд░рд╛ рдЬреАрд╡рди рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рдмрд┐рддрд╛ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
Pry.commands.alias_command 'c', 'continue' rescue nil Pry.commands.alias_command 's', 'step' rescue nil Pry.commands.alias_command 'n', 'next' rescue nil Pry.commands.alias_command 'f', 'finish' rescue nil Pry.commands.alias_command 'l', 'whereami' rescue nil
рдореЙрдбреНрдпреВрд▓ / рд╡рд░реНрдЧ рд╡рд┐рд╡рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕
Pry.config.ls.separator = "\n"
рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред
рдХреЙрд▓ рд╕рд┐рд╕реНрдЯрдо рдпреВрдЯрд┐рд▓рд┐рдЯреАрдЬ
Pry
рдХреЙрд▓рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдпреВрдЯрд┐рд▓рд┐рдЯреАрдЬ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдмрд╕ рдмрд┐рдирд╛ рд╕реНрдкреЗрд╕, рдХрдорд╛рдВрдб, .ps axu
, рдпрд╛ .ps axu
рдХреЗ рдХрдорд╛рдВрдб рдирд╛рдо рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдбреЙрдЯ рдЬреЛрдбрд╝реЗрдВ)ред
рдкреНрд▓рдЧ-рдЗрди
рдиреАрдЪреЗ рдкреНрд▓рдЧрдЗрди рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдХрд┐рд╕реА рдХреЛ рдлреВрд▓рд╛ рд╣реБрдЖ рд╡рд┐рдиреНрдпрд╛рд╕ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкреЙрд▓рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдорд╢реАрдиреЛрдВ рдХреЗ рд╕рд╛рде рджрд╢рдХреЛрдВ рддрдХ рдЙрдиреНрд╣реЗрдВ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдирд┐рдкреЗрдЯ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ ( awesome
рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП)ред рдХреЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдЦреБрдж рдХреЗ рд▓рд┐рдП рдмреЛрд▓рддреЗ рд╣реИрдВред
рдХрд╕реНрдЯрдо рдЯреАрдо
рдХреНрдпрд╛ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ pry
рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд REPL рд╣реИ? рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ pry
рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХрдВрд╕реЛрд▓ рд╕реЗ рд╢реБрджреНрдз рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ sql
рдХрдорд╛рдВрдб рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП (рдмрд╢рд░реНрддреЗ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдЖрд░ рдХрдиреЗрдХреНрд╢рди рд╣реИ) - рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХреЗ рд╕рд╛рдеред
default_command_set = Pry::CommandSet.new do command "sql", "Send sql over AR." do |query| if ENV['RAILS_ENV'] || defined?(Rails) pp ActiveRecord::Base.connection.select_all(query) else pp "No rails env defined" end end end Pry.config.commands.import default_command_set
рдордВрдХреАрдкреИрдЪ рдФрд░ рдЧреНрд▓реЛрдмрд▓реНрд╕
рд╣рд╛рдВ, рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмрдВрджрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рд░реВрдмреА рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХреЗрд╡рд▓ pry
рд╕рддреНрд░реЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдпрд╣ рдХреЛрдб рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
class Array def self.sample(count = 10, &block) Array.new(count, &(block || :succ)) end end Hash.singleton_class.prepend(Module.new def sample(count = 10) (?a...count.times.reduce(?a) { |o| o.succ }). map(&:to_sym).zip(0...count).to_h end end)
рдиреЛрдЯ: рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕реНрдирд┐рдкреЗрдЯ рдЗрд╕ Integer#succ
рджреНрд╡рд╛рд░рд╛ Integer#succ
, рддреЛ рд╕рдВрднрд╡рдд: рдЖрдкрдиреЗ 26 рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд▓рдВрдмреЗ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдирд┐рдкрдЯрд╛ рдирд╣реАрдВ рд╣реИ :)
рд░рдВрдЧ рд╕рдорд╛рдпреЛрдЬрди
рдиреАрдЪреЗ рд╕рдм рдХреБрдЫ coderay
рд░рддреНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рдВрдЧреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдкрд░рд┐рдгрд╛рдо рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдкреНрд░рддреАрдХ рд▓рд╛рд▓ рд╣реИрдВ, рдФрд░ рд╕рдВрдЦреНрдпрд╛рдПрдВ рдиреАрд▓реЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдм рдЬреИрдЬ рд╣реИред
CodeRay.scan("example", :ruby).term
рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдкреЛрд╕реНрдЯ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдкрд╣рд▓рд╛ рдЖрднрд╛рд╕ рджреЗрддреА рд╣реИ рдХрд┐ pry
рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ irb
рд╕реЗ рдмреЗрд╣рддрд░ рдХреНрдпреЛрдВ рд╣реИред рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рдореБрдЦреНрдпрддрдГ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд╕рд╣реА рдХреЛрдб рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд▓реЗ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдкрд╣рд▓реА рдмрд╛рд░ - рдкрддреНрд░реЛрдВ рдХреЗ рдЗрд╕ рд╕рдВрдпреЛрдЬрди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред
рдЕрдЪреНрдЫрд╛ рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ!