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
0
46
Internal Gem Infrastructure: A Crash Course
A quick talk about building, releasing, and hosting your own gems.
ubermajestix
April 24, 2014
Tweet
Share
More Decks by ubermajestix
See All by ubermajestix
The State of Auth - Boulder Ruby Oct. 2011
ubermajestix
1
75
Other Decks in Programming
See All in Programming
AIエージェントの設計で注意するべきポイント6選
har1101
7
3.3k
組織で育むオブザーバビリティ
ryota_hnk
0
160
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
140
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
180
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
630
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.8k
Data-Centric Kaggle
isax1015
2
740
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
670
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
1
110
Grafana:建立系統全知視角的捷徑
blueswen
0
320
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.6k
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.7k
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
720
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.5k
Fireside Chat
paigeccino
41
3.8k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
280
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
260
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
The SEO Collaboration Effect
kristinabergwall1
0
350
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
53
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