O que é uma jóia? – Guias RubyGems
On Outubro 24, 2021 by adminDescompacte o mistério por detrás do que está num RubyGem.
Estrutura de uma gema
Cada gema tem um nome, versão, e plataforma. Por exemplo, therake gem tem uma versão 0.8.7
(a partir de Maio,2009). A plataforma do Rake é ruby
, o que significa que funciona em qualquer plataforma Rubyruns em.
Plataformas são baseadas na arquitetura da CPU, tipo de sistema operacional e algumas vezes na versão do sistema operacional. Exemplos incluem “x86-mingw32” ou “java”. A plataforma indica que a gem só funciona com um rubi construído para a mesma plataforma. RubyGems irá baixar automaticamente a versão correta para a sua plataforma. Veja gem help platform
para detalhes completos.
Inside gems are the following components:
- Code (including tests and supporting utilities)
- Documentation
- >gemspec
Cada gem segue a mesma estrutura padrão de organização de código:
% tree freewillfreewill/├── bin/│ └── freewill├── lib/│ └── freewill.rb├── test/│ └── test_freewill.rb├── README├── Rakefile└── freewill.gemspec
Aqui, você pode ver os principais componentes de uma gem:
- O diretório
lib
contém o código da gema - O diretório
test
ouspec
contém testes, dependendo de qual quadro de testes o desenvolvedor usa - Uma gema geralmente tem um
Rakefile
, que o programa usa para automatizar testes, gerar código e executar outras tarefas. - Esta gema também inclui um arquivo executável no diretório
bin
, que será carregado no diretório do usuárioPATH
quando a gema for instalada.- A peça final é a gemspec, que contém informações sobre a gem.Os arquivos da gema, informações de teste, plataforma, número da versão e muito mais estão aqui, juntamente com o e-mail e nome do autor.
Mais informações sobre o ficheiro gemspec
Construindo a sua própria gema
A Gemspec
A gemspec especifica as informações sobre uma gema como o seu nome, versão, descrição, autores e homepage.
Aqui está um exemplo de um ficheiro gemspec. Você pode aprender mais em como fazer agem.
% cat freewill.gemspecGem::Specification.new do |s| s.name = 'freewill' s.version = '1.0.0' s.summary = "Freewill!" s.description = "I will choose Freewill!" s.authors = s.email = '[email protected]' s.homepage = 'http://example.com/freewill' s.files = end
Deixe uma resposta