рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рд░рддреНрди рд▓рд┐рдЦрдирд╛

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

рдПрдХ рдЬрдирд░реЗрдЯрд░ рдЪреБрдиреЗрдВ

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

рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ

рдЗрд╕рд▓рд┐рдП, рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

bundle gem foogem

рдпрд╣ рдХрдорд╛рдВрдб рд▓рд┐рдм рдлреЛрд▓реНрдбрд░ рдФрд░ рдЬреЗрдордлрд╛рдЗрд▓ рдлреЛрд▓реНрдбрд░ рдФрд░ рд░реЗрдХрдлрд╛рдЗрд▓ рдФрд░ рдлреЛрдЧреЗрдо.рдЧреНрдореЗрд╕рд╕реЗрдХ рдлрд╛рдЗрд▓ рдпреБрдХреНрдд рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрдирд╛рдПрдЧрд╛ред рдЖрдЗрдП рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рдЕрд▓рдЧ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдХрд┐рд╕реА рднреА рдмрдВрдбрд▓ рдХреЗ рд╕рдВрдЧрдд рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд░рддреНрди, рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд░рддреНрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд░рддреНрдиреЛрдВ рдХреА рд░реЗрдЦрд╛ рднреА рд╣реИ, рдЬреЛ рдХрд┐ phofem.gemspec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд▓реЛрдб рдХрд░рддреА рд╣реИред рдХрдИ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реА, рдЗрд╕реЗ рдордгрд┐рдн рдореЗрдВ рднрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ, рдФрд░ .gemscec рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд░рддреНрдиреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣рд╛рдВ, рдбреЗрд╡рд▓рдкрд░ рди рдХреЗрд╡рд▓ рдХреЛрдб рдХреЗ рдХрд╛рдордХрд╛рдЬ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЪрд░рдг рдореЗрдВ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред Add_d рдирд┐рд░реНрднрд░рддрд╛ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реИрд╢реНрд╡рд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; add_development_d dependency рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╝рд╛рдЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред Rakefile рдореЗрдВ, рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд░реЗрдХ рдХрд╛рд░реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Lib рдлрд╝реЛрд▓реНрдбрд░ рдЖрдкрдХреЗ рдШрдЯрдХ рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рд╣реИред рдЗрд╕рдореЗрдВ foogem.rb рдлрд╝рд╛рдЗрд▓ рдФрд░ рд╕рдорд╛рди рдирд╛рдо рдХрд╛ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИред рдЗрд╕рдореЗрдВ vesion.rb рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рд╣реИред Foogem.rb рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдмрдВрдбрд▓рд░ рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдбрд╛рд▓реЗрдВ:

require 'foogem/version'
module Foogem
#code place here
end


рдлрд┐рд░ рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЬреАрд╡рди рдореЗрдВ рд▓рд╛рдПрдВред

рд▓рд┐рдЦрд┐рдд рдХрд╛ рд╕рддреНрдпрд╛рдкрди

рдордгрд┐ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП Rspec рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, foogem.spec рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝реЗрдВ

gem.add_development_dependency 'rspec'

рдЕрдЧрд▓рд╛, рдПрдХ рдпреБрдХреНрддрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред рдЪреВрдВрдХрд┐ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдХрдИ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрд▓рдЧ spec_helper.rb рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЪреБрдирддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЗрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВрдЧреЗред рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдбрд╛рд▓реЗ рдЧрдП рд╣реИрдВред рдЕрдзрд┐рдХ рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рд░реЗрдХ рдХрд╛рд░реНрдп рдЬреЛрдбрд╝реЗрдВ:

desc 'Spec all functionality of gem'
task :spec_all do
system("rspec spec/*/")
end


рдЕрдм rake spec_all рд╣рдо рд╕рднреА рд╕реНрдкреЗрдХреНрд╕ рдЪрд▓рд╛рддреЗ рд╣реИрдВред

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

rake build # gem
rake release # github & rubygems


рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

gem install foogem #
rake install #


рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╡рд┐рдХрд╛рд╕ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ рдХрд┐ рдЬреЗрдо рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд┐рдм / рдлреЛрдЧреЗрдо / рд╡рд░реНрдЬрди.рдЖрд░рдмреА рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдкреНрд░рдХрд╛рд╢рди рдЪрд░рдг рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдПред

Source: https://habr.com/ru/post/In128378/


All Articles