
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
RubyGems рд░реВрдмреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рд╣реИред
рдордгрд┐ - рдПрдХ рдкреИрдХреЗрдЬ (рдлрд╝рд╛рдЗрд▓) рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдпрд╛ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рдеред рдЗрд╕рдХрд╛ рдорд╛рдирдХреАрдХреГрдд рд░реВрдк рд╣реИ рдФрд░ рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред
рдордгрд┐ рдХрдорд╛рдВрдб рдЯреВрд▓ - рд░реВрдмреАрдЧреИрдо рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд░рддреНрди рд╕рдВрдХреБрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдордгрд┐ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд░реВрдмреА рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд░рддреНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
RubyGems рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреНрдпрд╛ рд╣реИ?
рд░реВрдмреАрдЬреАрдореНрд╕ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдирдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдвреВрдВрдврдирд╛ рдерд╛, рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЕрдХреНрд╕рд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рдереАред рдпрджрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ RubyGems рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдмрд╕ RubyGems рдХреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ рдФрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд, рдПрдХреАрдХреГрдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд╕рдм рдХреБрдЫ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдордгрд┐ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдордВрдЪ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдУрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╣рд░ рдЬрдЧрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рддрдВрддреНрд░ рд╕рдорд╛рди рд╣реЛрдЧрд╛ред рдорд╣рд╛рди, рд╕рд╣реА?
рдХрдЯ рдХреЗ рддрд╣рдд рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
1) рдЦреЛрдЬ, рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдордгрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
2) рд╕реНрдерд╛рдкрд┐рдд рдордгрд┐ рдкрд░ рдкрд╣реБрдВрдЪ рдкреНрд░рд▓реЗрдЦрди
3) рд╕реНрдерд╛рдкрд┐рдд рдордгрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
4) рдордгрд┐ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
5) рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд░рддреНрди рдмрдирд╛рдПрдБ
1. рдЦреЛрдЬ, рднрд╛рдЧреЛрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдордгрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ XML рдЙрддреНрдкрдиреНрди рд╣реБрдП рд╣реИрдВред рдФрд░ рдХрд╣реАрдВ рдЖрдкрдиреЗ рд╕реБрдирд╛ рд╣реИ рдХрд┐ рдПрдХ рдЕрджреНрднреБрдд рдЬрд┐рдо рд╡реЗрдЗрд░рд┐рдЪ рдХрд╛ рдмрд┐рд▓реНрдбрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд░реВрдмреА рдХреЛрдб рдореЗрдВ рд╕реАрдзреЗ рдПрдХреНрд╕рдПрдордПрд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд░рддреНрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ:
% gem query --details --remote --name-matches build
*** REMOTE GEMS ***
AntBuilder (0.4.3)
Author: JRuby-extras
Homepage: jruby-extras.rubyforge.org
AntBuilder: Use ant from JRuby. Only usable within JRuby
builder (2.1.2)
Author: Jim Weirich
Homepage: onestepback.org
Builders for MarkUp.
...
--details - рдордгрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
--remote - рджреВрд░рд╕реНрде рд╕рдВрдЧреНрд░рд╣рдг рдкрд░ рдЦреЛрдЬреЗрдВ (- рд╕реНрдерд╛рдиреАрдп - рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдЦреЛрдЬ)
--name-рдореИрдЪреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг - рдирд╛рдо рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ 'рдмрд┐рд▓реНрдб' рдХреА рд╕рд╛рдордЧреНрд░реА рджреНрд╡рд╛рд░рд╛ рдордгрд┐ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ
рдкреНрд░рддреНрдпреЗрдХ рд░рддреНрди рдХреЗ рдирд╛рдо рдХреЗ рдкрд╛рд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рджрд┐рдЦрд╛рддреА рд╣реИред
рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд░рддреНрди рдХреЗ рд▓рд┐рдП рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдПрдХ
рд╕реВрдЪреА ,
--all рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде
рд╕реВрдЪреА рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:
% gem list --details --remote --all builder
*** REMOTE GEMS ***
builder (2.1.2, 2.1.1, 2.0.0, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.0,
1.0.0, 0.1.1, 0.1.0)
Author: Jim Weirich
Homepage: onestepback.org
Builders for MarkUp.
рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
% gem install builder #RubyGems
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ (рдпрджрд┐ рдЖрдк
рдЖрд░рд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ), рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдордгрд┐ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпреВрдирд┐рдХреНрд╕ рдХреЗ рддрд╣рдд рдЖрдкрдХреЛ рдордгрд┐ рдХрдорд╛рдВрдб рд╕реЗ рдкрд╣рд▓реЗ
рд╕реВрдбреЛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд░рддреНрди рдХреА рд╕реВрдЪреА:
gem list
*** LOCAL GEMS ***
builder (2.1.2)
2. рд╕реНрдерд╛рдкрд┐рдд рд░рддреНрди рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдкрдврд╝рдирд╛
рд╣рдордиреЗ рд░рддреНрди рдмрд┐рд▓реНрдбрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдП?
рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдордгрд┐ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ / doc рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
# gem's
% gem environment gemdir
/usr/local/lib/ruby/gems/1.9.0
/usr/local/lib/ruby/gems/1.9.0/doc - рдпрд╣рд╛рдВ рд╕реНрдерд╛рдкрд┐рдд рдордгрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рд╣реИ
/usr/local/lib/ruby/gems/1.9.0/doc/builder-2.1.2/rdoc/index.html - рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдордгрд┐ рдмрд┐рд▓реНрдбрд░ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдкреВрд░реНрдг рдкрде
рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝рдиреЗ рдХреЗ 2 рддрд░реАрдХреЗ рд╣реИрдВ:
1. рдордгрд┐ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ index.html рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдПрдВ
2. рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛
% gem server
рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╣реИ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдкреЛрд░реНрдЯ 8808 рдкрд░ рд╢реБрд░реВ рд╣реЛрдЧрд╛ рдФрд░ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ: 8808 рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЖрдк рд╕рднреА рд╕реНрдерд╛рдкрд┐рдд рдордгрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВрдЧреЗред
рдЬреЗрдкреА рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрде рдФрд░ рдкреЛрд░реНрдЯ рдХреЛ
-p рдФрд░
-d рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
3. рд╕реНрдерд╛рдкрд┐рдд рдордгрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдордгрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдХрдорд╛рдВрдб рдХреА
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ <рдордгрд┐ рдирд╛рдо> ред рдпрд╛рдиреА рд░рддреНрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдирд┐рдпрдорд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред
# XML require 'builder' xml = Builder::XmlMarkup.new(target: STDOUT, indent: 2) xml.person(type: "programmer") do xml.name do xml.first "Dave" xml.last "Thomas" end xml.location "Texas" xml.preference("ruby") end
4. рдордгрд┐ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдордгрд┐ рдХрд╛ рдирд╡реАрдирддрдо рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрднреА рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ?
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд░реВрдмреАрдЧреИрдо рд╣рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдордгрд┐ рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдирд┐рдореНрди рдХрдорд╛рдВрдб рдмрд┐рд▓реНрдбрд░ рдХреЗ рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред
% gem install builder -v 2.1.2
% gem install builder -v 1.1.0
% gem list builder
*** LOCAL GEMS ***
builder (2.1.2, 1.1.0)
# builder v.1.1.0 gem 'builder', '= 1.1.0' require 'builder' xml = Builder::XmlMarkup.new(STDOUT, 2) xml.person do name("Dave Thomas") location("Texas") end
рдпрд╣рд╛рдБ рдХреБрдЫ рдФрд░ рдЯреНрд░рд┐рдХреНрд╕ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
gem 'builder' , '> 1'
- рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрдбрд╝реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
gem 'builder' , ''>= 2.2.0', '< 3.0''
- 2.2.0 рд╕реЗ рдЕрдзрд┐рдХ рдФрд░ 3.0 рд╕реЗ рдХрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА:
=
!=
>
<
>=
<=
~> ( RubyGems docs)
5. рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рд░рддреНрди рдмрдирд╛рдПрдБ
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдореИрдВ рдмреБрдирд┐рдпрд╛рджреА рдЪрд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛, рд╡рд┐рд╡рд░рдг
рдпрд╣рд╛рдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ- рдордгрд┐ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд▓реЗрдЦрди рдХреЛрдб
- рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ (ourgem.gemspec)
- рдордгрд┐ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ
% gem build mygem.gemspec
- rubygems.org рд╕рд░реНрд╡рд░ рдкрд░ рдирд┐рд░реНрдорд┐рдд рдордгрд┐ рдХреЛ рд░рдЦрдирд╛
%gem push mygem.gemspec
рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ:
http://docs.rubygems.org/рд░реВрдмреА 1.9 рддреАрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ