shim je malá knihovna, která zachycuje a mění volání do jiné knihovny, hlavně pro podporu kompatibility.
udržování více verzí knihovny je nezbytné pro podporu vašich klientů. Shim knihovny přeložit staré do nové knihovny volání před předáním na novou knihovnu.
Příklad 1:
Instalace Linuxu obvykle přicházejí s jedinou verzí Ruby. Ruby vývojáři musí mít různé verze Ruby na svých mnoha aktivních projektech. Rbenv používá podložky k vyřešení tohoto problému.
spuštění příkazu Ruby v Linuxu znamená kontrolu spustitelného souboru v cestě-kterou vyhledává zleva doprava. Takže spuštění příkazu Ruby rails server
znamená, že Linux najde a spustí Rails, spustitelný soubor Ruby, v prvním adresáři.
Rbenv přidá shims
adresář a načte to s shim skripty před prepending Cestu. Pro každou aplikaci Ruby existuje skript shim a spuštění aplikace Ruby nyní znamená spuštění odpovídajícího skriptu shim. Takže běh rails znamená spuštění skriptu Rails v adresáři shims
a ne aplikace Rails v usr/local/bin
. Skript vypracuje požadovanou verzi Ruby a poté spustí odpovídající aplikaci, v tomto případě Rails, pod touto očekávanou verzí Ruby.
Příklad 2:
Microsoft používá podložky k falešným voláním systému Windows aplikace. Když aplikace provede systémové volání, prochází „importní adresní tabulkou“.
Můžete změnit tabulky a vyměnit Okna volání s volání na podložku. Vložka v příkladu je vložka „verze-lež“. Aplikace si myslí, že je na počítači se systémem Windows 7.