Durante um momento de relaxamento em uma conferência, ouvi alguém falando sobre servidores particulares de joias. Já fazia algum tempo que vinha me perguntando como fazer isso. Boas práticas requerem que dividamos o código o máximo que pudermos e que as gemas sejam perfeitas. Mas nem sempre é possível publicar todas as joias que fazemos com alguns clientes e empresas.
Um servidor privado de gemas permite que você mantenha suas joias preciosas de outras pessoas, mas tornando-as fáceis de alcançar de seus anfitriões.
Eu não conseguia lembrar quem estava falando sobre isso, então perguntei ao google. Bem, eu encontrei algumas soluções: um provedor de SaaS, uma gema e um ruby vazio.
Fúrias, fúrias por toda parte
http://www.gemfury.com apareceu várias vezes em minha pesquisa, ele suporta Gems, mas também pacotes Python e Npm. Sempre uma vantagem em nossos tempos. Provavelmente seria bom experimentá-lo e ver do que se trata e como funciona, mas os preços me fazem pensar … Afinal, uma configuração de servidor duplo está a apenas 10 $ / mês ultimamente …
A caixa de gemas
http://tomlea.co.uk/posts/gem-in-a-box/ é um projeto de código aberto que visa fornecer uma maneira fácil de configurar um servidor gem. Parece um pouco mais complicado e complexo, é claro.
O rubi nu
Parece que também é muito fácil executar um servidor gem privado de … quase nada na verdade. Jeff Dean nos conta sobre isso http://www.jeffmdean.com/2012/3/13/setting-up-a-simple-private-gem-server .
nível de bônus
Se você viu Benjamin Smith (Pivotal Labs) falando em conferências sobre a segurança de gemas, você também pode entender o ponto de usar esses servidores privados de gemas como repositórios principais de gemas. Nesses servidores privados, você pode armazenar versões certificadas e verificadas das joias que seus produtos usam.
relacionado
- http://lancecarlson.github.io/2012/05/14/private-gem-server-using-geminabox.html
- http://dagi3d.net/posts/4-simple-private-gem-server-with-a-rack-middleware
EDIT: super bônus
Outra maneira de armazenar e lidar com seus gems privados é usar repositórios privados do Github, BitBucket, … Bundler será capaz de obtê-los e enquanto você passa a url do repositório git no Gemfile, você também pode especificar um branch, permitindo-lhe para passar códigos específicos para branches específicos do seu aplicativo também.