Sinatra: рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд▓реЙрдЧрд┐рдВрдЧ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдЬрдире░ 2017  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sinatra/sinatra

рдкрд╣рд▓реЗ рдХреНрд▓рд╛рд╕рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛, рдФрд░ рдореЙрдбрд▓/рд▓рд┐рдмрд╛рд╕ рдХреЛ рд╢рд╛рдорд┐рд▓/рд▓реЛрдб рдХрд┐рдП рдЧрдП рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ред

рдореБрдЦреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реЙрдЧрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп:

configure do
  logfile = File.new("#{settings.root}/log/#{settings.environment}.log", 'a+')
  logfile.sync = true
  use Rack::CommonLogger, logfile
  set :logger, Logger.new(logfile)
end

рдХреЙрд▓рд┐рдВрдЧ logger.debug рдПрдХ рдореЙрдбреНрдпреВрд▓ рдпрд╛ рд╡рд░реНрдЧ рд░рд┐рдЯрд░реНрди рд╕реЗ NameError: undefined local variable or method `logger' for <Object or Module>

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд░реИрдХ рд▓реЙрдЧрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдЖрд╡реЗрджрди рдХреЗ рдЕрдиреБрд░реЛрдз рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдФрд░ рд╕рд┐рдирд╛рддреНрд░рд╛ рдХреА logger рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рд╕рд┐рдирд╛рддреНрд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд░реНрдЧ рдХреЗ рднреАрддрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬрд╣рд╛рдВ рд▓реЙрдЧрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╕рд┐рдирд╛рддреНрд░рд╛ рдХрд╛ рдбреАрдПрд╕рдПрд▓ рдФрд░ рд╡рд┐рдзрд┐ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдЗрд╕реЗ рдЬрд╛рджреВ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд░реНрдЧ рд╣реЛрддрд╛ рд╣реИ (рд╕рд┐рдирд╛рддреНрд░рд╛ :: рдЖрд╡реЗрджрди, рдпрд╛ рд╕рд┐рдирд╛рддреНрд░рд╛ рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ :: рдЖрд╡реЗрджрди рдпрд╛ рд╕рд┐рдирд╛рддреНрд░рд╛ :: рдмреЗрд╕) рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдзрд╛рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджреГрд╢реНрдпреЛрдВ рдХреЗ рдкреАрдЫреЗ рдЬреЛ рдПрдХ рд╕рд┐рдирд╛рддреНрд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

class Foo
  def one; 1 end
end

class Bar
  def two
    one + one
  end
end

Bar.new.two

рдХреНрдпрд╛ рдЖрдк рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛? рдирд╣реАрдВ, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдмрд╛рд░ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рд╣реИ рдХрд┐ Foo#one рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗрдВред рджреЛ рд╡рд░реНрдЧ рдФрд░ рдЙрдирдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рддрд░реАрдХреЗ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВред рдпрд╣ рд░реВрдмреА рдФрд░ рдХрдИ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдореБрдЦреНрдп рдХрд┐рд░рд╛рдпреЗрджрд╛рд░ рд╣реИред рддреЛ рдЖрдкрдХреЛ Artefact#return_error_via_log рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП Sinatra::Application#logger , рдпрд╛ рддреЛ!

рдпрд╣рд╛рдВ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рд╕рдВрднрд╡рдд: рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рд╕рдмрд╕реЗ рдЖрдо рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдореЙрдбрд▓реЛрдВ рдореЗрдВ рдФрд░ рдХрд╣реАрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдмрдирд╛рдПрдВред рдЖрдк рд▓реЙрдЧрд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдпрд╛ рд╕реНрдерд┐рд░ рдореЗрдВ рд╣реИрдВрдбрд▓ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдиреБрд░реЛрдз рдФрд░/рдпрд╛ рдЕрдиреНрдп рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рд┐рдирд╛рддреНрд░рд╛ рдЖрд╡реЗрджрди рдореЗрдВ рдЙрд╕ рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпрд╛ рд╕рд┐рдирд╛рддреНрд░рд╛ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред

рд╕рднреА 8 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдк рдЕрдзрд┐рдХ рдХреЛрдб рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреИрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдкрдХреНрдХрд╛ рд╢реБрдХреНрд░рд┐рдпрд╛:

https://github.com/Joshfindit/Sinatra-unexpected-logging-example

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдмреА рдХреЛрдб рдХрд╛ рд╢реЙрд░реНрдЯрдХрдЯ:

рдпрд╣рд╛рдБ рд╡рд╣ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдЪрд▓рддреА рд╣реИ: https://github.com/Joshfindit/Sinatra-unexpected-logging-example/blob/master/SinatraApp/notesapp_sinatra.rb
рдФрд░ рдЬрд┐рд╕ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдпрд╣ рдЪрд▓рддрд╛ рд╣реИ: https://github.com/Joshfindit/Sinatra-unexpected-logging-example/tree/master/SinatraApp

рдпрд╣рд╛рдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рд╣реИрдВ, рдХреНрдпрд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рдЫреЛрдЯреЗ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдореЗрдВ рдбрд┐рд╕реНрдЯрд┐рд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛?

рд╕рд╛рд░ рдпрд╣ рд╣реИ:

  • notesapp_sinatra.rb require_relative рдпрд╛ load рд╕рд╛рде рдореЙрдбрд▓ рд▓рд╛рддрд╛ рд╣реИ (рджреЛрдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реВрдВ)
  • рдореЙрдбрд▓ рдЙрдкрд╡рд░реНрдЧрд┐рдд рдирд╣реАрдВ рд╣реИрдВ
  • notesapp_sinatra.rb рд╕реЗ рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
  • рдХрд┐рд╕реА рднреА рдореЙрдбрд▓ рд╕реЗ рд▓реЙрдЧрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ( NameError рдКрдкрд░ рджреЗрддрд╛ рд╣реИ)

рд░реИрдХ рд▓реЙрдЧрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдЖрд╡реЗрджрди рдХреЗ рдЕрдиреБрд░реЛрдз рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдФрд░ рд╕рд┐рдирд╛рддреНрд░рд╛ рдХреА logger рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рд╕рд┐рдирд╛рддреНрд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд░реНрдЧ рдХреЗ рднреАрддрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬрд╣рд╛рдВ рд▓реЙрдЧрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╕рд┐рдирд╛рддреНрд░рд╛ рдХрд╛ рдбреАрдПрд╕рдПрд▓ рдФрд░ рд╡рд┐рдзрд┐ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдЗрд╕реЗ рдЬрд╛рджреВ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд░реНрдЧ рд╣реЛрддрд╛ рд╣реИ (рд╕рд┐рдирд╛рддреНрд░рд╛ :: рдЖрд╡реЗрджрди, рдпрд╛ рд╕рд┐рдирд╛рддреНрд░рд╛ рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ :: рдЖрд╡реЗрджрди рдпрд╛ рд╕рд┐рдирд╛рддреНрд░рд╛ :: рдмреЗрд╕) рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдзрд╛рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджреГрд╢реНрдпреЛрдВ рдХреЗ рдкреАрдЫреЗ рдЬреЛ рдПрдХ рд╕рд┐рдирд╛рддреНрд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

class Foo
  def one; 1 end
end

class Bar
  def two
    one + one
  end
end

Bar.new.two

рдХреНрдпрд╛ рдЖрдк рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛? рдирд╣реАрдВ, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдмрд╛рд░ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рд╣реИ рдХрд┐ Foo#one рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗрдВред рджреЛ рд╡рд░реНрдЧ рдФрд░ рдЙрдирдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рддрд░реАрдХреЗ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВред рдпрд╣ рд░реВрдмреА рдФрд░ рдХрдИ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдореБрдЦреНрдп рдХрд┐рд░рд╛рдпреЗрджрд╛рд░ рд╣реИред рддреЛ рдЖрдкрдХреЛ Artefact#return_error_via_log рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП Sinatra::Application#logger , рдпрд╛ рддреЛ!

рдпрд╣рд╛рдВ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рд╕рдВрднрд╡рдд: рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рд╕рдмрд╕реЗ рдЖрдо рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдореЙрдбрд▓реЛрдВ рдореЗрдВ рдФрд░ рдХрд╣реАрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдмрдирд╛рдПрдВред рдЖрдк рд▓реЙрдЧрд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдпрд╛ рд╕реНрдерд┐рд░ рдореЗрдВ рд╣реИрдВрдбрд▓ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдиреБрд░реЛрдз рдФрд░/рдпрд╛ рдЕрдиреНрдп рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рд┐рдирд╛рддреНрд░рд╛ рдЖрд╡реЗрджрди рдореЗрдВ рдЙрд╕ рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпрд╛ рд╕рд┐рдирд╛рддреНрд░рд╛ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред

рдЗрд╕ рд╡реНрдпрд╛рдкрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдЫреЛрдЯреЗ рдЕрдВрддрд░рд╛рд▓реЛрдВ рдХреЛ рднрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рдерд╛ рдХрд┐ рд╕рд┐рдирд╛рддреНрд░рд╛ рдХреНрд▓рд╛рд╕рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рднреАрддрд░ рд╕рдм рдХреБрдЫ рдХрд╛ рд╕реБрдкрд░рдХреНрд▓рд╛рд╕ рдерд╛ред

рдХреНрдпрд╛ рдХреЛрдИ рд╕реАрдзрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рд╕рд┐рдирд╛рддреНрд░рд╛ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ? рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╢реЛ-рд╕реНрдЯреЙрдкрд░реНрд╕ рдХреЗ рдХрдИ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡реНрд╣рд┐рдк рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдмрд╕ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдореЗрд░реЗ рд╕рд┐рд░ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреА рдмрд╛рдд рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдЕрдЪреНрдЫрд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреИрдХ рдХрд┐рдпрд╛ рд╣реБрдЖред

рдореЗрд░реА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдХреЛрдИ рднреА рдирд╣реАрдВред рдкреНрд░рд▓реЗрдЦрди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдВрд╕рд╛рдзрди рд╣реИред рд╣рд╛рдВ, рдпрд╣ рднрд░рд╛ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рднреА рдЖрдк рд╕рд┐рдирд╛рддреНрд░рд╛ рд╕реАрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рдкрдврд╝реЗрдВрдЧреЗ рддреЛ рдЖрдкрдХреА рд╕рдордЭ рдФрд░ рдЧрд╣рд░реА рд╣реЛ рдЬрд╛рдПрдЧреАред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

namusyaka picture namusyaka  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

aren55555 picture aren55555  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

singram picture singram  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lvonk picture lvonk  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mediafinger picture mediafinger  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ