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
ubermajestix
April 24, 2014
Programming
48
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
82
Other Decks in Programming
See All in Programming
Cloudflare is Agents
chimame
0
180
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
120
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
570
VibeCodingからAgenticWorkflowへ
starfish719
0
830
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
350
React本体のコードリーディング
high_g_engineer
1
150
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
3
1.8k
「人を評価する AI」の設計と実装
ryoyanara
0
240
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
2
170
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
720
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
470
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
120
Featured
See All Featured
Believing is Seeing
oripsolob
1
200
How to train your dragon (web standard)
notwaldorf
97
6.8k
The Invisible Side of Design
smashingmag
301
52k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
250
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Claude Code のすすめ
schroneko
67
230k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Design in an AI World
tapps
1
290
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