コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

僕は今からうんこなgemをつくるから邪魔しないでね

話をしよう

つい先日の話ですが、うんこを漏らしました。まさか、自分がうんこを漏らすことになるとは思ってもみなかった。とても辛い。やはり気温が低くなってくるとぽんぽんがあれでうんこが……。


えー、汚い話はこのくらいにして今日はこの辛みをバネにしてうんこなGemをつくろうかと思います。


gem作ります

このブログを読んでいる読者層は息を吐くようにRubyプログラミングをしている人たちばかりなのでgemが何かとか余裕でわかる人しかいないと思いますが説明します。

RubyGems.org | your community gem host
gemはRubyのライブラリです。


んで、gem作るのってめんどくさいのかなってずっと思ってたんですけど、bunderインスコすれば簡単に作成できるようです。
gem install bundler

Bundler公式
Bundler: The best way to manage a Ruby application's gems
こいつが何者なのかと言うとgem管理してくれるやつです。gemとは先ほど書いた通りRubyのライブラリです。これらの関係は、僕の中ではjQueryjQueryプラグインの関係みたいな浅い認識です。多分これでなんとなく通じると思ってるので細かいことはいいんだよ。


じゃあインスコも終えたのでつくっていきます。
bundle gem 【Gem名前】
これで、作りたいGemが生成されるそうです。

【gem】
 ├bin
 ├lib <=本体
 ├gemspec <= 作成したGemの情報を記載
その他色々

こんな感じの構成ファイルが生成されます。なので早速本体をいじります。

require "【Gem名】/version"

module 【モジュール名】
  class Error < StandardError; end
  # Your code goes here...
  # ここになんか書く
end

本体ファイルを開くとここになんか書けって言われているので、そこになんか書いていきます。

ここで作ったやつがBundleの方で管理してくれれるはずなんで、景気づけの更新を兼ねてbundle installで作ったやつもまとめます。

Please fix this gemspec.
The validation error was 'metadata['homepage_uri'] has invalid link: "TODO: Put
your gem's website or public repo URL here."'

そのままインスコしたらgemspecになんか書けって怒られたので修正します。このほかにもTODO関連とか何も書いてないとことか書けって怒られたので都度修正します。



んでbundle installインスコします。Gemfile.lockファイルが生成されるのでそれを確認してbundle exec irbで対話モード開きます。

これでrequire "【gem名】"でつくった処理を呼びだしてやることができます。

C:*** >bundle exec irb
irb(main):001:0> require "unko"
=> true
irb(main):002:0> Unko.buriburi
うんちぶりぶり
=> nil

作ったやつ

require "unko/version"

module Unko
  class Error < StandardError; end
  # Your code goes here...
  def self.buriburi
    puts "うんちぶりぶり"
  end
end

はい、動きました。うんこみたいなGem完成です。こんなうんこみたいなGem作ってるからうんこなんて漏らすんだよばーかばーか。



おしまい。