Создание собственного Gem — это отличный способ упаковать и распространять Ruby-код. Вот пошаговое руководство:
gem install bundler
Bundler предоставляет утилиту bundle gem
, которая генерирует структуру проекта.
bundle gem my_gem
cd my_gem
Эта команда создаст следующую структуру:
my_gem/
├── Gemfile
├── LICENSE.txt
├── README.md
├── Rakefile
├── lib/
│ ├── my_gem.rb
│ └── my_gem/
│ └── version.rb
└── my_gem.gemspec
Файл .gemspec
— это сердце вашего Gem. Откройте my_gem.gemspec
и заполните метаданные:
Gem::Specification.new do |spec|
spec.name = "my_gem"
spec.version = MyGem::VERSION
spec.authors = ["Ваше Имя"]
spec.email = ["ваш@email.com"]
spec.summary = "Краткое описание Gem"
spec.description = "Подробное описание функциональности"
spec.homepage = "https://github.com/ваш-аккаунт/my_gem"
spec.license = "MIT"
spec.files = Dir["lib/**/*.rb"]
spec.require_paths = ["lib"]
spec.add_development_dependency "bundler", "```> 2.0"
spec.add_development_dependency "rake", "```> 13.0"
spec.add_development_dependency "rspec", "```> 3.0"
end
Основной код размещается в lib/my_gem.rb
. Например:
module MyGem
class Error < StandardError; end
def self.hello
puts "Hello from MyGem!"
end
end
Если ваш Gem зависит от других Gems, укажите их в .gemspec
:
spec.add_dependency "nokogiri", "```> 1.10"
gem build my_gem.gemspec
gem install ./my_gem-0.1.0.gem
gem push my_gem-0.1.0.gem
Добавьте тесты в директорию spec/
с использованием RSpec или другого фреймворка.
Резюмируем: создание Gem включает генерацию структуры, настройку .gemspec
, написание кода, управление зависимостями, сборку и публикацию. Это мощный инструмент для распространения Ruby-кода.