Struktura gema
Pliki i gemspec
Struktura gema to bezpłatna lekcja Ruby Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ruby Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Czym jest gem
Gem to spakowana biblioteka lub aplikacja Ruby, którą można zainstalować, wersjonować i udostępniać za pośrednictwem RubyGems. Niemal każde używane narzędzie Ruby jest gemem.
- Gem zawiera kod, metadane i zależności.
- Metadane znajdują się w pliku gemspec.
- Narzędzia takie jak
bundlerigemzarządzają gemami.
Generowanie szkieletu
Najszybciej zacząć od polecenia bundle gem mygem. Tworzy ono standardowy układ katalogów, plik gemspec, folder testów, README i licencję. Następnie należy uzupełnić kod.
Standardowy układ
Typowy gem o nazwie mygem wygląda tak:
lib/mygem.rb— plik wejściowy.lib/mygem/— dodatkowe pliki źródłowe.lib/mygem/version.rb— stała wersji.mygem.gemspec— metadane.test/lubspec/— testy.README.mdi plik licencji.
Plik wejściowy
lib/mygem.rb jest ładowany, gdy ktoś wykona require 'mygem'. Zwykle wczytuje plik wersji i pozostałą część biblioteki oraz definiuje moduł najwyższego poziomu.
module Mygem
def self.greet(name)
"Hello, " + name
end
end
puts Mygem.greet("world")Plik wersji
Umieszczenie wersji w osobnym pliku pozwala zarówno gemspecowi, jak i kodowi ją odczytywać. Konwencja zakłada stałą VERSION wewnątrz modułu gema.
module Mygem
VERSION = "0.1.0"
end
puts "Current version: " + Mygem::VERSIONCzym jest gemspec
Gemspec to plik Ruby opisujący gema: jego nazwę, wersję, autora, podsumowanie, pliki i zależności. RubyGems odczytuje go, aby zbudować i opublikować pakiet.
To zwykły kod Ruby, więc można w nim obliczać wartości, ale należy zachować prostotę i deklaratywny charakter.
Minimalny plik gemspec
Najważniejsze pola to nazwa, wersja, autorzy, podsumowanie i pliki. Oto szkielet zapisany jako zwykły kod Ruby, który można umieścić w pliku mygem.gemspec.
require "ostruct"
spec = OpenStruct.new
spec.name = "mygem"
spec.version = "0.1.0"
spec.authors = ["Your Name"]
spec.summary = "A tiny example gem"
puts spec.name + " " + spec.versionWymienianie plików
Gemspec musi określać, które pliki zostaną dołączone do gema. Wiele plików gemspec pobiera z gita listę śledzonych plików, aby niczego nie pominąć:
spec.files = Dir['lib/**/*.rb'] + ['README.md']
Pakowane są tylko wymienione pliki, więc pominięcie jednego z nich oznacza niedziałającą instalację.
Deklarowanie zależności
W pliku gemspec umieszcza się dwa rodzaje zależności:
add_dependency— zależności wymagane w czasie działania, które użytkownicy muszą zainstalować.add_development_dependency— zależności używane tylko podczas programowania, na przykład frameworki testowe.
Należy używać ograniczeń wersji, takich jak '~> 1.2', aby zachować zgodność.
Wymagana wersja Ruby
Ustaw spec.required_ruby_version, aby użytkownicy korzystający ze zbyt starej wersji Ruby otrzymali jasny komunikat o błędzie zamiast niezrozumiałego awaryjnego zakończenia programu. Należy także uzupełnić pola homepage, license i metadata, aby gem był dopracowany.
required = ">= 3.0.0"
current = RUBY_VERSION
puts "Requires Ruby " + required
puts "Running Ruby " + currentBudowanie gema
Gdy gemspec jest gotowy, polecenie gem build mygem.gemspec tworzy plik .gem. Można zainstalować go lokalnie za pomocą gem install ./mygem-0.1.0.gem, aby przetestować go przed publikacją.
Szybkie sprawdzenie
Proszę sprawdzić swoją wiedzę o strukturze gemów.
Podsumowanie: struktura gema
W tej części poznano organizację gema:
bundle gemtworzy szkielet układu.lib/mygem.rbjest punktem wejścia.- Wersja znajduje się w osobnym pliku.
- Gemspec zawiera metadane, pliki i zależności.
gem buildpakuje gema.
W następnej części uporządkujemy właściwy kod wewnątrz gema.
Często zadawane pytania
Czy lekcja „Struktura gema” jest bezpłatna?
Tak — pełny tekst „Struktura gema” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ruby Academy, przejdź na CoddyKit PRO. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Struktura gema”?
Pliki i gemspec Ćwiczysz Ruby Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Ruby Academy?
Nie wymagamy żadnego doświadczenia. Ruby Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Struktura gema”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Ruby Academy?
Tak. Każda lekcja Ruby Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.