рд░реВрдмреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ 2.7.0 рдХрд╛ рд╡рд┐рдореЛрдЪрди

рдПрдХ рд╕рд╛рд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рдж рдкреНрд░рдХрд╛рд╢рд┐рдд ╤А╨╡╨╗╨╕╨╖ рд░реВрдмреА 2.7.0, рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдкрд░реНрд▓, рдЬрд╛рд╡рд╛, рдкрд╛рдпрдерди, рд╕реНрдореЙрд▓рдЯреЙрдХ, рдПрдлрд┐рд▓, рдПрдбрд╛ рдФрд░ рд▓рд┐рд╕реНрдк рдХреА рд╕рд░реНрд╡реЛрддреНрддрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдмреАрдПрд╕рдбреА ("2-рдХреНрд▓реЙрдЬ рдмреАрдПрд╕рдбреАрдПрд▓") рдФрд░ "рд░реВрдмреА" рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЬреАрдкреАрдПрд▓ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬреАрдкреАрдПрд▓рд╡реА3 рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд рд╣реИред рд░реВрдмреА 2.7 рдПрдХ рдирд┐рдпреЛрдЬрд┐рдд рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рд╛рддрд╡реАрдВ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬрд╝ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлреАрдЪрд░ рд╕рдВрд╡рд░реНрджреНрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрд╖ рдЕрд▓рдЧ рд░рдЦрдирд╛ рдФрд░ 2-3 рдорд╣реАрдиреЗ рдХрд╛ рдкреИрдЪ рд░рд┐рд▓реАрдЬрд╝ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдореБрдЦреНрдп рд╕реБрдзрд╛рд░:

  • рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕рдорд░реНрдерди рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди (рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди) рджрд┐рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдпрджрд┐ рдХреЛрдИ рдкреИрдЯрд░реНрди рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рддреЛ рдПрдХ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред

    рдХреЗрд╕ [0, [1, 2, 3]] рдореЗрдВ [рдП, [рдмреА, *рд╕реА]] рдкрд╛ #=> 0
    рдкреАрдмреА #=> 1
    рдкреАрд╕реА #=> [2] рдЕрдВрдд

    рдХреЗрд╕ {рдП: 0, рдмреА: 1}
    рдЗрди{a:0,x:1}
    :рдкрд╣реБрдБрдЪрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ
    {a: 0, b: var} рдореЗрдВ
    рдкреА рд╡рд░ #=> 1
    рд╕рдорд╛рдкреНрдд

  • рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдЧрдгрдирд╛ рдЖрдИрдЖрд░рдмреА (рдЖрд░рдИрдкреАрдПрд▓, рд░реАрдб-рдПрд╡рд▓-рдкреНрд░рд┐рдВрдЯ-рд▓реВрдк) рдХреЗ рд╢реЗрд▓ рдореЗрдВ рдЕрдм рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рд╕рдВрдкрд╛рджрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд░реАрдбрд▓рд╛рдЗрди-рд╕рдВрдЧрдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдлрд┐рд░ рд╕реЗ рдЕрд╕реНрддрд░ рд▓рдЧрд╛рдирд╛рд░реВрдмреА рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ. rdoc рд╕рдорд░реНрдерди рдХреЛ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк irb рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрдХреНрд╖рд╛рдУрдВ, рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдкрд░ рд╕рдВрджрд░реНрдн рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╛рдЗрдВрдбрд┐рдВрдЧ#рдЖрдИрдЖрд░рдмреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд┐рдЦрд╛рдП рдЧрдП рдХреЛрдб рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд░рдВрдЧ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдФрд░ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдПред

    рд░реВрдмреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ 2.7.0 рдХрд╛ рд╡рд┐рдореЛрдЪрди

  • рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдЧрд╛рд░рдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░ (рдХреЙрдореНрдкреЗрдХреНрд╢рди рдЬреАрд╕реА) рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдЬреЛ рдореЗрдореЛрд░реА рдХреЗ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдбреАрдлрд╝реНрд░реИрдЧреНрдореЗрдиреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреБрдЫ рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рд░реВрдмреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдореЗрдореЛрд░реА рдлрд╝реНрд░реЗрдЧреНрдореЗрдВрдЯреЗрд╢рди рдХреЗ рдХрд╛рд░рдг рдзреАрдореА рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдмрдврд╝реА рд╣реБрдИ рдореЗрдореЛрд░реА рдЦрдкрдд рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдвреЗрд░ рдкрд░ рдкреИрдХ рдХрд░рдирд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдореЗрдореЛрд░реА рдкреЗрдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдвреЗрд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GC.compact рд╡рд┐рдзрд┐
    рдЧрд╛рдп (рд▓рд┐рдЦрдиреЗ рдкрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐)ред

  • рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реВрдЪреА рдореЗрдВ рд╕реНрдерд┐рддрд┐ ("def foo(a,b,c)") рдФрд░ рдХреАрд╡рд░реНрдб ("def foo(key: val)") рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддрд░реНрдХреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рддреИрдпрд╛рд░реАред рдХреАрд╡рд░реНрдб рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддрд░реНрдХ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд░реВрдмреА 3.0 рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЛ рдХреАрд╡рд░реНрдб рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ, рдХреАрд╡рд░реНрдб-рдЖрдзрд╛рд░рд┐рдд рддрд░реНрдХ рдХреЛ рдЕрдВрддрд┐рдо рд╣реИрд╢ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЛ рд╕реНрдерд┐рддреАрдп рдФрд░ рдХреАрд╡рд░реНрдб рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

    рдбреАрдИрдПрдлрд╝ рдлреВ (рдХреБрдВрдЬреА: 42); рдЕрдВрдд; foo({рдХреБрдВрдЬреА: 42}) #рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ
    рдбреАрдИрдПрдлрд╝ рдлреВ(**рдХрд┐рд▓реЛрд╡рд╛рдЯ); рдЕрдВрдд; foo({рдХреБрдВрдЬреА: 42}) #рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ
    рдбреАрдИрдПрдлрд╝ рдлреВ (рдХреБрдВрдЬреА: 42); рдЕрдВрдд; foo(**{рдХреБрдВрдЬреА: 42}) # рдареАрдХ рд╣реИ
    рдбреАрдИрдПрдлрд╝ рдлреВ(**рдХрд┐рд▓реЛрд╡рд╛рдЯ); рдЕрдВрдд; foo(**{рдХреБрдВрдЬреА: 42}) # рдареАрдХ рд╣реИ

    рдбреАрдИрдПрдлрд╝ рдлреВ(рдПрдЪ, **рдХрд┐рд▓реЛрд╡рд╛рдЯ); рдЕрдВрдд; foo(рдХреБрдВрдЬреА: 42) #рдЪреЗрддрд╛рд╡рдиреА рджреА
    рдбреАрдИрдПрдлрд╝ рдлреВ (рдПрдЪ, рдХреБрдВрдЬреА: 42); рдЕрдВрдд; foo(рдХреБрдВрдЬреА: 42) #рдЪреЗрддрд╛рд╡рдиреА рджреА
    рдбреАрдИрдПрдлрд╝ рдлреВ(рдПрдЪ, **рдХрд┐рд▓реЛрд╡рд╛рдЯ); рдЕрдВрдд; foo({рдХреБрдВрдЬреА: 42}) # рдареАрдХ рд╣реИ
    рдбреАрдИрдПрдлрд╝ рдлреВ (рдПрдЪ, рдХреБрдВрдЬреА: 42); рдЕрдВрдд; foo({рдХреБрдВрдЬреА: 42}) # рдареАрдХ рд╣реИ

    def foo(h={}, рдХреБрдВрдЬреА: 42); рдЕрдВрдд; foo('рдХреБрдВрдЬреА' => 43, рдХреБрдВрдЬреА: 42) #рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ
    def foo(h={}, рдХреБрдВрдЬреА: 42); рдЕрдВрдд; foo({"key" => 43, key: 42}) # рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ
    def foo(h={}, рдХреБрдВрдЬреА: 42); рдЕрдВрдд; foo({"рдХреБрдВрдЬреА" => 43}, рдХреБрдВрдЬреА: 42) # рдареАрдХ рд╣реИ

    def foo(opt={}); рдЕрдВрдд; foo(рдХреБрдВрдЬреА: 42) # рдареАрдХ рд╣реИ

    рдбреАрдИрдПрдлрд╝ рдлреВ(рдПрдЪ, **рд╢реВрдиреНрдп); рдЕрдВрдд; foo(рдХреБрдВрдЬреА: 1) #ArgumentError
    рдбреАрдИрдПрдлрд╝ рдлреВ(рдПрдЪ, **рд╢реВрдиреНрдп); рдЕрдВрдд; foo(**{key: 1}) # ArgumentError
    рдбреАрдИрдПрдлрд╝ рдлреВ(рдПрдЪ, **рд╢реВрдиреНрдп); рдЕрдВрдд; foo("str" тАЛтАЛтАЛтАЛ=> 1) # ArgumentError
    рдбреАрдИрдПрдлрд╝ рдлреВ(рдПрдЪ, **рд╢реВрдиреНрдп); рдЕрдВрдд; foo({рдХреБрдВрдЬреА: 1}) # рдареАрдХ рд╣реИ
    рдбреАрдИрдПрдлрд╝ рдлреВ(рдПрдЪ, **рд╢реВрдиреНрдп); рдЕрдВрдд; foo({"str" тАЛтАЛтАЛтАЛ=> 1}) # рдареАрдХ рд╣реИ

    рдПрдЪ = {}; def foo(*a) рдЕрдВрдд; foo(**h) # [] h = {}; def foo(рдП) рдЕрдВрдд; foo(**h) # {} рдФрд░ рдЪреЗрддрд╛рд╡рдиреА
    рдПрдЪ = {}; def foo(*a) рдЕрдВрдд; foo(h) # [{}] h = {}; def foo(рдП) рдЕрдВрдд; рдлреВ(рдПрдЪ) # {}

  • рдЕрд╡рд╕рд░ рдмреНрд▓реЙрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреНрд░рдорд╛рдВрдХрд┐рдд рдЪрд░ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

    [1, 2, 3].рдкреНрд░рддреНрдпреЗрдХ {@1 рдбрд╛рд▓рддрд╛ рд╣реИ } # рдЬреИрд╕реЗ [1].рдкреНрд░рддреНрдпреЗрдХ { |i| рдореИрдВ рдбрд╛рд▓рддрд╛ рд╣реВрдВ }

  • рдмрд┐рдирд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рди рд╡рд╛рд▓реА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕рдорд░реНрдердиред

    ary[..3] # ary[0..3] rel.where(рдмрд┐рдХреНрд░реА: ..100) рдХреЗ рд╕рдорд╛рди

  • Enumerable#tally рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реА рдЧрдИ, рдЬреЛ рдЧрд┐рдирддреА рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХрд┐рддрдиреА рдмрд╛рд░ рдЖрддрд╛ рд╣реИред

    ["рдП", "рдмреА", "рд╕реА", "рдмреА"].рдЯреИрд▓реА
    #=> {тАЬрдПтАЭ=>1, тАЬрдмреАтАЭ=>2, тАЬрд╕реАтАЭ=>1}

  • рд╢рд╛рдмреНрджрд┐рдХ "рд╕реНрд╡рдпрдВ" рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдЬреА рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐

    рдбрд┐рдлреВ
    рд╕рдорд╛рдкреНрдд
    рдирд┐рдЬреА :рдлреВ
    self.foo

  • рдЖрд▓рд╕реА (Enumerator::Lazy) рдЧрдгрдирд╛ рд╕реЗ рдирд┐рдпрдорд┐рдд рдЧрдгрдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Enumerator::Lazy#eager рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реА рдЧрдИред

    рдП = %w(рдлреВ рдмрд╛рд░ рдмрд╛рдЬрд╝)
    рдИ = a.lazy.map {|x| x.upcase }.map {|x| рдПрдХреНрд╕ + "!" }редрдЖрддреБрд░
    рдкреА рдИ.рд╡рд░реНрдЧ #=> рдкреНрд░рдЧрдгрдХ
    рдИ.рдореИрдк {|x| рдПрдХреНрд╕ + "?" } #=> ["рдлреВ!?", "рдмрд╛рд░!?", "рдмрд╛рдЬрд╝!?"]

  • рдПрдХ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЬрд╛рд░реА рд╣реИ, рдЬреЛ рд░реВрдмреА рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд░реВрдмреА рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд JIT рдХрдВрдкрд╛рдЗрд▓рд░ рдкрд╣рд▓реЗ рдбрд┐рд╕реНрдХ рдкрд░ C рдХреЛрдб рд▓рд┐рдЦрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдорд╢реАрди рдирд┐рд░реНрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд╣рд░реА C рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ (GCC, Clang рдФрд░ Microsoft VC++ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ)ред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЗрдирд▓рд╛рдЗрди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдЕрдиреБрдХреВрд▓рди рдореЛрдб рдХрд╛ рдЪрдпрдирд╛рддреНрдордХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ, "--рдЬрд┐рдд-рдорд┐рди-рдХреЙрд▓" рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 5 рд╕реЗ рдмрдврд╝рд╛рдХрд░ 10000 рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ "--рдЬреАрдд-рдореИрдХреНрд╕-рдХреИрд╢" 1000 рд╕реЗ 100 рддрдХ.
  • CGI.escapeHTML, рдореЙрдирд┐рдЯрд░ рдФрд░ рдореЙрдирд┐рдЯрд░рдорд┐рдХреНрд╕рд┐рди рдХрд╛ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рдиред
  • рдореЙрдбреНрдпреВрд▓#рдирд╛рдо, true.to_s, false.to_s, рдФрд░ nil.to_s рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛ рджреА рдЧрдИ рд╣реИ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИред
  • RubyVM::InstructionSequence#to_binary рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;
  • рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рдЕрджреНрдпрддрди рд╕рдВрд╕реНрдХрд░рдг, рдЬрд┐рдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
    рдмрдВрдбрд▓рд░ 2.1.2, рд░реВрдмреАрдЬреЗрдореНрд╕ 3.1.2,
    рдЖрд░рдПрд╕реА 1.4.15,
    рд╕реАрдПрд╕рд╡реА 3.1.2, рдЖрд░рдИрдПрдХреНрд╕рдПрдордПрд▓ 3.2.3,
    рдЖрд░рдПрд╕рдПрд╕ 0.2.8,
    рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдХреИрдирд░ 1.0.3;

  • рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдмреЗрд╕ рдкреИрдХреЗрдЬ рд╕реЗ рдмрд╛рд╣рд░реА рдЬреЗрдо рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
    рд╕реАрдПрдорде (рд╕реАрдореИрде рд░рддреНрди),
    рд╕реНрдХреИрдирдл (рд╕реНрдХреИрдирдл рд░рддреНрди),
    рд╢рдВрдЦ (рд╢реИрд▓ рд░рддреНрди),
    рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд░ (рд╕рд┐рдВрдХ рд░рддреНрди),
    рдереНрд░реЗрдбреНрд╕рд╡реЗрдЯ (рдерд╡реЗрдЯ рд░рддреНрди),
    E2MM (e2mmap рд░рддреНрди)ред

  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ stdlib рдореЙрдбреНрдпреВрд▓ Rubygems.org рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ:
    рддрд▓ рдЪрд┐рд╣реНрди,
    Cgi,
    рдкреНрд░рддрд┐рдирд┐рдзрд┐,
    getoptlong,
    рдиреЗрдЯ рдкреЙрдк,
    рдиреЗрдЯ-рдПрд╕рдПрдордЯреАрдкреА
    рдЦреБрд▓рд╛3,
    рдкреАрд╕реНрдЯреЛрд░,
    рд╕рд┐рдВрдЧрд▓рдЯрди. рдореЙрдирд┐рдЯрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ Rubygems.org рдкрд░ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛
    рджреЗрдЦрдиреЗ рд╡рд╛рд▓рд╛,
    рд╕рдордп рд╕рдорд╛рдкреНрдд,
    рдЯреНрд░реЗрд╕рд░,
    рдЙрд░реА,
    yaml, рдЬреЛ рдХреЗрд╡рд▓ рд░реВрдмреА-рдХреЛрд░ рдХреЗ рд╕рд╛рде рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред

  • рд░реВрдмреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЕрдм рдПрдХ C рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ C99 рдорд╛рдирдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реЛред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ