Rake (software) - Rake (software)
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Vývojáři | Jim Weirich |
---|---|
Stabilní uvolnění | 12.3.0 / 15. listopadu 2017 |
Úložiště | ![]() |
Napsáno | Rubín |
Operační systém | Cross-platform |
Typ | Nástroje pro vývoj softwaru |
Licence | Licence MIT |
webová stránka | rubín |
Hrábě je softwarová správa úkolů a stavět automatizaci nářadí. Umožňuje uživateli zadat úkoly a popsat závislosti, stejně jako seskupit úkoly v oboru názvů.
Je to podobné jako SCons a Udělat, ale má řadu rozdílů. Tento nástroj je napsán v Programovací jazyk Ruby a Rakefiles (ekvivalent Makefiles v Make) používají syntaxi Ruby. Vytvořil Jim Weirich.
Rake používá Ruby's anonymní funkce bloky k definování různých úkolů, což umožňuje použití syntaxe Ruby. Má knihovnu běžných úkolů: například funkce pro provádění běžných úloh manipulace se soubory a knihovnu pro odstraňování kompilovaných souborů („čistá“ úloha). Stejně jako Make, Rake může také syntetizovat úkoly na základě vzorů: například automatické vytváření úlohy kompilace souborů na základě vzorů souborů. Rake je nyní součástí standardní knihovny od Ruby verze 1.9 a dále.
Příklad
Níže je uveden příklad jednoduchého Rake skriptu k sestavení C Program Hello World.
soubor 'ahoj.o' => 'Ahoj C' dělat sh 'cc -c -o ahoj.o ahoj.c'konecsoubor 'Ahoj' => 'ahoj.o' dělat sh 'cc -o ahoj ahoj.o'konec
Další příklady viz Rakefile formát dokumentace.
Pravidla
Pokud je soubor pojmenován jako nezbytná podmínka, ale nemá pro něj definovanou úlohu se souborem, pokusí se Rake syntetizovat úkol hledáním seznamu pravidel dodaných v Rakefile. Předpokládejme například, že jsme se pokoušeli vyvolat úkol „mycode.o“ bez definovaných úkolů. Pokud má Rakefile pravidlo, které vypadá takto:
pravidlo '.Ó' => '.C' dělat |t| sh "cc #{t.zdroj} -c -o #{t.název}"konec
Toto pravidlo bude syntetizovat jakýkoli úkol, který končí na „.o“. Předpokladem je, že musí existovat zdrojový soubor s příponou „.c“. Pokud Rake dokáže najít soubor s názvem „mycode.c“, automaticky vytvoří úlohu, která vytvoří „mycode.o“ z „mycode.c“. Pokud soubor "mycode.c" neexistuje, pokusí se Rake rekurzivně syntetizovat pro něj pravidlo.
Když je úkol syntetizován z pravidla, atribut zdroje úkolu je nastaven na odpovídající zdrojový soubor. To umožňuje uživatelům psát pravidla s akcemi, které odkazují na zdrojový soubor.
Pokročilá pravidla
Jako vzor pravidla lze použít jakýkoli regulární výraz. Navíc lze použít proc k výpočtu názvu zdrojového souboru. To umožňuje složité vzory a zdroje.
Následující pravidlo je ekvivalentní výše uvedenému příkladu:
pravidlo(/.o$/ => ->(t_name){ t_name.sub /.o$/, '.C' }) dělat |t| sh "cc #{t.zdroj} -c -o #{t.název}"konec
POZNÁMKA: Z důvodu zvláštnosti v syntaxi Ruby jsou kolem pravidla vyžadovány závorky, když je prvním argumentem regulární výraz.
Pro soubory Java lze použít následující pravidlo:
pravidlo '.třída' => ->(t_name){ t_name .sub(/.class$/, '.Jáva') .sub(/ ^ třídy //, 'src /') } dělat |t| java_compile(t.zdroj, t.název)konec
Níže je uveden příklad jednoduchého receptu na hrábě:
jmenný prostor :dort dělat popis ‚dělat palačinky ' úkol :lívanec => [:mouka,:mléko,:vejce,:prášek na pečení] dělat uvádí "prskání" konec úkol :máslo dělat uvádí "nakrájíme 3 lžíce másla na malé čtverečky" konec úkol :mouka => :máslo dělat uvádí "rukama hněteme čtverce másla do 1 {{frac | 1 | 2}} šálku mouky" konec úkol :mléko dělat uvádí "přidat 1 {{frac | 1 | 4}} šálek mléka" konec úkol :vejce dělat uvádí „přidat 1 vejce“ konec úkol :prášek na pečení dělat uvádí "přidat 3 {{frac | 1 | 2}} čajové lžičky prášku do pečiva" koneckonec
Viz také
externí odkazy
- Rake dokumentace
- hrábě na GitHub
- Používání sestavovacího jazyka Rake podle Martin Fowler
- Výukový program Ruby on Rails Rake na railsenvy.com
- Vlastní úlohy Rake na railscasts.com
- Rake Tutorial na lukaszwrobel.pl