рд░реВрдмреА рдореЗрдВ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп 7 рдЪрд╛рд▓реЗрдВ

рдорд╛рдгрд┐рдХ рд╕рд░рдг

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


1. рдЪреЗрдХ рдпрд╛ рдПрд░реЗ рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдРрд░реЗ рдХреЗ рд╕рднреА рддрддреНрд╡ рдХреИрд╕реЗ рд╣реЛрддреЗ рд╣реИрдВ


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рд╕рднреА рдЖрдпрд╛рддрд┐рдд рдИрдореЗрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдкрд░реНрдХ рд╕реВрдЪреА рдореЗрдВ рд╣реИрдВ:
imported_emails = [ 'john@doe.com', 'janet@doe.com' ] existing_emails = [ 'john@doe.com', 'janet@doe.com' , 'fred@mercury.com' ] puts 'already imported' if (imported_emails - existing_emails).empty? 

IRB рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ :
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдпрд╛рддрд┐рдд рд╣реИ
=> рдиреАрд▓

2. рджреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрдо рддрддреНрд╡реЛрдВ рдХреЛ рдХреИрд╕реЗ рдЦреЛрдЬрдирд╛ рд╣реИ


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдЯреИрдЧ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 tags_post1 = [ 'ruby', 'rails', 'test' ] tags_post2 = [ 'test', 'rspec' ] common_tags = tags_post1 & tags_post2 

IRB рдореЗрдВ рд▓реЙрдиреНрдЪ :
=> ["рдЯреЗрд╕реНрдЯ"]

3. рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛рдП рдмрд┐рдирд╛ рджреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП


 followeds1 = [ 1, 2, 3 ] followeds2 = [ 2, 4, 5 ] all_followeds = followeds1 | followeds2 

IRB рдореЗрдВ рд▓реЙрдиреНрдЪ :
=> [1, 2, 3, 4, 5]

4. рд╣реИрд╢ рд╕рд░рдгреА рдХреИрд╕реЗ рд╕реЙрд░реНрдЯ рдХрд░реЗрдВ


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ API рд╕реЗ, рд╣реИрд╢ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдорд┐рд▓рддрд╛ рд╣реИ:
 data = [ { name: 'Christophe', location: 'Belgium' }, { name: 'John', location: 'United States of America' }, { name: 'Piet', location: 'Belgium' }, { name: 'Fran├зois', location: 'France' } ] 

рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдкрд░, рдЖрдк рд╕реНрдерд╛рди рдлрд╝реАрд▓реНрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдпрд╣ рдХрд░реЗрдВ:
 data.sort_by { |hsh| hsh[:location] } 

IRB рдореЗрдВ рд▓реЙрдиреНрдЪ :
=> [
{= рдирд╛рдо => "рдХреНрд░рд┐рд╕реНрдЯреЛрдлрд╝",: рд╕реНрдерд╛рди => "рдмреЗрд▓реНрдЬрд┐рдпрдо"},
{= рдирд╛рдо => "рдкреАрдЯ",: рд╕реНрдерд╛рди => "рдмреЗрд▓реНрдЬрд┐рдпрдо"},
{= рдирд╛рдо => "рдлреНрд░рд╛рдВрд╕реНрд╡рд╛",: рд╕реНрдерд╛рди => "рдлреНрд░рд╛рдВрд╕"},
{= рдирд╛рдо => "рдЬреЙрди",: рд╕реНрдерд╛рди => "рд╕рдВрдпреБрдХреНрдд рд░рд╛рдЬреНрдп рдЕрдореЗрд░рд┐рдХрд╛"}
]

5. рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЗ рдЕрджреНрд╡рд┐рддреАрдп рддрддреНрд╡реЛрдВ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЙрддреНрдкрд╛рдж рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЙрддреНрдкрд╛рдж рдХреЗрд╡рд▓ рдПрдХ рд╢реНрд░реЗрдгреА рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 Product = Struct.new(:id, :category_id) products = [ Product.new(1, 1), Product.new(2, 2), Product.new(3, 3), Product.new(4, 1), Product.new(5, 3), Product.new(6, 5), ] products = products.uniq &:category_id 

IRB рдореЗрдВ рд▓реЙрдиреНрдЪ :
=> [
# <рд╕рдВрд░рдЪрдирд╛ рдЙрддреНрдкрд╛рдж рдЖрдИрдбреА = 1, рд╢реНрд░реЗрдгреА_рдЖрдИрдбреА = 1>,
# <рд╕рдВрд░рдЪрдирд╛ рдЙрддреНрдкрд╛рдж рдЖрдИрдбреА = 2, рд╢реНрд░реЗрдгреА_рдЖрдИрдбреА = 2>,
# <рд╕рдВрд░рдЪрдирд╛ рдЙрддреНрдкрд╛рдж рдЖрдИрдбреА = 3, рд╢реНрд░реЗрдгреА_рдЖрдИрдбреА = 3>,
# <рд╕рдВрд░рдЪрдирд╛ рдЙрддреНрдкрд╛рдж рдЖрдИрдбреА = 6, рд╢реНрд░реЗрдгреА_рдЖрдИрдбреА = 5>
]


6. рд╕рд░рдгреА рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрддреНрд╡реЛрдВ рдХреЛ рдХреИрд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрди рдкреБрд╕реНрддрдХреЛрдВ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдХрд┐рд╕реА рдХреАрд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
 books = [ 'The Ruby Programming Language', 'Programming Ruby 1.9 & 2.0: The Pragmatic Programmers\' Guide (The Facets of Ruby)', 'Practical Object-Oriented Design in Ruby: An Agile Primer', 'Eloquent Ruby', 'Ruby on Rails Tutorial: Learn Web Development with Rails' ] books = books.grep(/[Rr]ails/) 

IRB рдореЗрдВ рд▓реЙрдиреНрдЪ :
=> ["рдкрдЯрд░рд┐рдпреЛрдВ рдкрд░ рд░реВрдмреА рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓: рд░реЗрд▓ рдХреЗ рд╕рд╛рде рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рд╕реАрдЦреЗрдВ"]

7. рдХреИрд╕реЗ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рд░рдгреА рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдЙрддреНрдкрд╛рджреЛрдВ рдпрд╛ рдПрдХрд▓ рдЙрддреНрдкрд╛рдж рдХреА рд╕реВрдЪреА рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреА рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рд░рдгреА рд╣реИ, рдЖрдк рдРрд░реЗ () рдпрд╛ [*] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 def method # тАж [*products] end 

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


All Articles