Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Internal Gem Infrastructure: A Crash Course
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ubermajestix
April 24, 2014
Programming
48
0
Share
Internal Gem Infrastructure: A Crash Course
A quick talk about building, releasing, and hosting your own gems.
ubermajestix
April 24, 2014
More Decks by ubermajestix
See All by ubermajestix
The State of Auth - Boulder Ruby Oct. 2011
ubermajestix
1
78
Other Decks in Programming
See All in Programming
Agentic Elixir
whatyouhide
0
370
アーキテクチャモダナイゼーションとは何か
nwiizo
19
5.3k
GitHubCopilotCLIをはじめよう.pdf
htkym
0
210
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
260
TiDBのアーキテクチャから学ぶ分散システム入門 〜MySQL互換のNewSQLは何を解決するのか〜 / tidb-architecture-study
dznbk
1
180
Back to the roots of date
jinroq
0
280
AIエージェントで業務改善してみた
taku271
0
540
ソフトウェア設計の結合バランス #phperkaigi
kajitack
0
140
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
380
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
280
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
3k
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
260
Building AI with AI
inesmontani
PRO
1
910
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
190
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.2k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
220
エンジニアに許された特別な時間の終わり
watany
106
240k
[SF Ruby Conf 2025] Rails X
palkan
2
970
Fireside Chat
paigeccino
42
3.9k
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
680
Transcript
! internal gem infrastructure a crash course
sharing is caring
internal open source
separate concerns
isolation
an example
“Gets the job done right?”
“What does this even do?”
“I’ll make a gem!”
building releasing hosting
building a gem a crash course inside a crash course
how meta. har har.
build a new gem bundle gem ls-super_awesomeness
a fresh gem
namespacing # LivingSocial => LS # GitHub => GH #
YourCompany => YC module LS class GeminaboxClient end end LS::GeminaboxClient require “ls/geminabox_client”
a basic example
! semantic versioning see SemVer.org for the full spec 3.1.42
3.1.42 ! bug fix ! semantic versioning
3.1.42 new feature! ! semantic versioning
3.1.42 breaking change ! semantic versioning
if its stable it should be 1.0.0
let the world behold your awesomeness
releasing should be EASY
git tag -v 3.1.42 rake build gem inabox \ pkg/ls-super_awesomeness-3.1.42.gem
rake release
don’t accidentally open source your code
git tag -v 3.1.42 rake build gem inabox \ pkg/ls-super_awesomeness-3.1.42.gem
rake release
monkeypatch subclass bundler
None
the magic
in your Rakefile delete bundler/gem_tasks
gem servers
geminabox stickler gemfury
host your own server (behind the firewall)
geminabox provides: - authentication[1] - pull through mirroring - `gem
inabox` command [1] via custom middleware
stickler provides: - authentication[1] - selective mirroring - command line
client - bundler api[2] [1] via custom middleware [2] coming soon
hosted server (not behind the firewall)
gemfury.com provides: - authentication - mirroring - command line client
- nodejs and python support
tyler montgomery @ubermajestix
photo credits https://www.flickr.com/photos/keitaro/39838227 https://www.flickr.com/photos/arthur-caranta/4048968087 https://www.flickr.com/photos/kalavinka/4617897952 https://www.flickr.com/photos/mellertime/1425023577 http://www.otj.com/Portfolio/Project-details/id/36.aspx