0Pricing
Ruby Academy · Lekcja

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 bundler i gem zarzą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/ lub spec/ — testy.
  • README.md i 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::VERSION

Czym 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.version

Wymienianie 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 " + current

Budowanie 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 gem tworzy szkielet układu.
  • lib/mygem.rb jest punktem wejścia.
  • Wersja znajduje się w osobnym pliku.
  • Gemspec zawiera metadane, pliki i zależności.
  • gem build pakuje 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.

Wszystkie lekcje w tym kursie

  1. Struktura gema
  2. Pisanie kodu
  3. Testowanie i wersjonowanie
  4. Publikowanie w RubyGems
← Powrót do Ruby Academy