話をしよう
つい先日の話ですが、うんこを漏らしました。まさか、自分がうんこを漏らすことになるとは思ってもみなかった。とても辛い。やはり気温が低くなってくるとぽんぽんがあれでうんこが……。
えー、汚い話はこのくらいにして今日はこの辛みをバネにしてうんこな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のライブラリです。これらの関係は、僕の中ではjQueryとjQueryプラグインの関係みたいな浅い認識です。多分これでなんとなく通じると思ってるので細かいことはいいんだよ。
じゃあインスコも終えたのでつくっていきます。
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作ってるからうんこなんて漏らすんだよばーかばーか。
おしまい。