astux7/ruby_method.md
– gör modulens metoder tillgängliga för instansen av en klass.Den tar alla metoder från en annan modul och inkluderar dem i den aktuella modulen. Detta är en sak på språknivå. Inkluderingsmetoden är det primära sättet att ”utöka” klasser med andra moduler (vanligtvis kallat mix-ins).
module Afterendclass Example include AfterendExample.ancestors# =>
– kör en annan fil. Spårar också vad du har krävt tidigare och kräver inte samma fil två gånger.För importbibliotek mestadels.
– gör det möjligt att ladda en fil som är relativ till den fil som innehåller require_relative-angivelsen.Om du till exempel har rspec-klasser i katalogen /spec och data för dem i katalogen thpec/data kan du använda följande rad i testfallet:
require_relative "data/test"
– för att utföra kod.
– lägger till den utökade klassen till förfäderna till den utökande klassens singletonklass. Med andra ord, extend blandar modulens funktionalitet i klassen och gör dessa metoder tillgängliga för klassen själv.
module After def module_method puts "Module Method invoked" endendclass Exampleendex = Example.newex.extend Afterex.module_method# => Module Method invoked
– används för att överordna metodanrop av den överordnade metoden.Användning av super kommer att anropa samma metod, men som den är definierad i superklassen, och ge dig resultatet.
class Animal def move "I can move" endendclass Bird def move super + "by flying" endendputs Animal.new.move# => I can moveputs Bird.new.move# => I can move by flying
– anropar Module.prepend_features på varje parameter i omvänd ordning.
module Beforeendclass Example prepend BeforeendExample.ancestors# =>