pebbles : A namespace for joke gems

Preview:

DESCRIPTION

2011-07-18 RubyKaigi2011 18M09 Lightning Talks 2 pebbles : A namespace for joke gems pebbles: rubygemsにおけるジョークモジュールの名前空間について

Citation preview

pebbles2011-07-18 Lightning Talks 2kwappa (SHIOYA, Hiromu)

A namespace for joke gems

こんばんは!

Good Evening!

kwappa

SHIOYA, Hiromu塩谷 啓 http://www.kwappa.net/

a programmer

a drunk a fond parent

Presented byBorn in the NET,

Connected by the NET

エンジニア募集!

http://info.dwango.co.jp/recruit/

話したいことWhat I want to say

I propose that we use the namespace "pebbles"

for joke gems

ジョークモジュール用名前空間として

"pebbles"を提案します

ある日One day

「全裸」なrubygemを作った

http://twitter.com/zenra_bot

I created a gem called “zenra”

What is “zenra” ?

What is “zenra” ?require 'zenra'

What is “zenra” ?require 'zenra'message = '私はRubyを書きます。'

I write Ruby.

What is “zenra” ?require 'zenra'message = '私はRubyを書きます。'

puts Zenra.new.zenrize message

I write Ruby.

What is “zenra” ?require 'zenra'message = '私はRubyを書きます。'

puts Zenra.new.zenrize message# => "私はRubyを全裸で書きます。"

I write Ruby.

I write Ruby stark-naked.

How to install

% gem install zenra

How to install

% gem install zenra

How to install

deprecated

Why deprecated?

% gem search -r zen

Why deprecated?

% gem search -r zen (snip)zenprofile (1.3.1)zenra (0.1.0)zenslap (0.3.1)

(snip)

Why deprecated?

% gem search -r zen (snip)zenprofile (1.3.1)zenra (0.1.0)zenslap (0.3.1)

(snip)

Why deprecated?

seriousjokeserious

% gem search -r zen (snip)zenprofile (1.3.1)zenra (0.1.0)zenslap (0.3.1)

(snip)

Why deprecated?

how embarassing...

seriousjokeserious

別のある日Another day

http://blog.segment7.net/2010/11/15/how-to-name-gems

“How to Name Gems”

Use underscores•fancy_require•newrelic_rpm•ruby_parser

% gem install my_gem

require 'my_gem'

Use dashes for extensions•net-http-persistent•rdoc-chm•autotest-growl

% gem install net-http-persistent

Use dashes for extensions•net-http-persistent•rdoc-chm•autotest-growl

% gem install net-http-persistent

require 'net/http/persistent'

+ひらめいた

A flash of inspiration

Create a namespace for joke gems

http://mrg.bz/uLdp5w

ジョークモジュール用名前空間を作ろう

for example

for example

fizzbuzz

% gem install pebbles-fizzbuzz

for example

fizzbuzz

require 'pebbles/fizzbuzz'

require 'pebbles/fizzbuzz'

(1 .. 15).each do |num| puts fizzbuzz numend

require 'pebbles/fizzbuzz'

(1 .. 15).each do |num| puts fizzbuzz numend

12fizz4buzzfizz78fizzbuzz11fizz1314fizzbuzz

http://gungelads.com/gunging/?p=1683

fizzbuzz/└── lib/ └── pebbles/ └── fizzbuzz.rb

Directory structure

require 'pebbles'

class Pebbles::Fizzbuzz # snipend

Class definition

move “zenra” to ...

% gem install pebbles-zenra

move “zenra” to ...

% gem install pebbles-zenra

move “zenra” to ...

require 'pebbles/zenra’

% gem install pebbles-zenra

move “zenra” to ...

Less embarrassing!require 'pebbles/zenra’

https://rubygems.org/gems/pebbles-fizzbuzz

まとめConclusion

Use namespace "pebbles" when you make joke gems

ジョークモジュールを作るときは

"pebbles"を使ってね!

おまけBonus

I made a mistake

% gem search -r pebbles

I made a mistake

% gem search -r pebbles

pebbles (0.1.0)pebbles-fizzbuzz (0.1.1)pebbles-zenra (0.1.1)pebbles_audio_files (1.0.5)

I made a mistake

% gem search -r pebbles

pebbles (0.1.0)pebbles-fizzbuzz (0.1.1)pebbles-zenra (0.1.1)pebbles_audio_files (1.0.5)

I made a mistake

!

Apologies toRyan Smith andBobby Wilson.

pebblesNot Gems, just Pebbles

pebbles2011-07-18 RubyKaigi2011kwappa (SHIOYA, Hiromu)

Thank you for listening.

Not Gems, just Pebbles