はじめてのgem作成 -アイカツ！駆動開発-


## kiriya-honey

値が入っていると穏やかじゃなくなるgemをつくりました。
それ以外はその穏やかさが穏やかじゃなくなります。
to_gunmaを参考にさせていただきました。
=> http://soplana.hateblo.jp/entry/2012/06/01/234259

## おしゃもじをgemに持ち替える
私の熱いbundleカツドウ bunカツ！始まります フフッヒ

```console
bundle gem kiriya_honey # => gemの雛形作成
```


## とりあえずgit
githubに登録していなければ、あらかじめこのあたりを参照して登録しましょう
http://morizyun.github.io/blog/ssh-key-bitbucket-github/
http://wp.yat-net.com/?p=3874

準備がととのったなら

``` console
git init # リポジトリ作成
git add . # 追加
git commit -m "init" # はじまりのコミット
git remote add origin git@github.com:yadoya/kiriya_honey.git # githubをリモートリポジトリに設定
git push -u origin master # githubに反映
```

はじめてgithubにpushできたのですごくうれしい

## .gemspec編集
.gemspecにTODOが残っているとビルドできないので、TODOの部分を適当にいじっちゃいましょう

```kiriya_honey.gemspec
# coding: utf-8
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'kiriya/honey/version'

Gem::Specification.new do |spec|
  spec.name          = "kiriya_honey"
  spec.version       = Kiriya::Honey::VERSION
  spec.authors       = ["yadoya"] # here!
  spec.email         = ["yadoya@email.com"] # here!
  spec.summary       = %q{kiriya_honey} # here!
  spec.description   = %q{kiriya_honey} # here!
  spec.homepage      = "https://github.com/yadoya/kiriya_honey" # here!
  spec.license       = "MIT"

  spec.files         = `git ls-files -z`.split("\x0")
  spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
  spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
  spec.require_paths = ["lib"]

  spec.add_development_dependency "bundler", "~> 1.6"
  spec.add_development_dependency "rake"
end
```


## 穏やかじゃないメインの実装
kiriya_honeyはすべてのオブジェクトに対して穏やかじゃないわねすることを目的としたgemなのでObjectクラスを拡張します

```lib/extention/object.rb
# -*- coding: utf-8 -*-
class Object
  def odayaka?
    return "穏やかじゃないわね" unless self.nil?
   	 return "この穏やかさ 穏やかじゃないわね。"
  end
end
```

形ができたのでコミット

```console
git commit -m "v0.0.1"
```

よーし、おじさんビルドしちゃうぞー

```console
gem build kiriya_honey.gemspec
rake install # 権限がないかもしれないので思い思いにsudoを
```

# そしてテストへ…

gem開発はreqire=>test=>require=>…ということになるという噂を聞いたのでrspecつかって楽しましょう

ので、spec_helperをつくります

```console
mkdir spec
touch spec/spec_helper.rb
```

```spec/spec_helper.rb
# -*- encoding: UTF-8 -*-
require File.expand_path(File.join('../', 'spec_helper'), File.dirname(__FILE__))

describe Object do
 it "Ichigo should odayakajanai"    do "Ichigo".odayaka?.should == "穏やかじゃないわね"; end
 it "nil should yappari odayakajanai"  do nil.odayaka?.should == "この穏やかさ 穏やかじゃないわね。" end
end

```

## 穏やかじゃない実装
何はともあれversionを


``` lib/kiriya_honey/version.rb
module KiriyaHoney
  VERSION = "0.0.1"
end
```

テストをしましょう

```console
rspec -c spec/extention/object_spec.rb
```
全部オッケーならオケオケオッケー

## 霧矢ハニーとご対面

まずはビルドしましょう

```console
gem build kiriya_honey.gemspec
```
homepageないよってwarningされたけどないものはしょうがない


そして、霧矢ハニーをインストール
権限が無かったりすると怒られちゃうので、思い思いにsudoしたり

```console
rake install
```

霧矢ハニーgemを試すためのrubyファイルをつくります

```welcome_kiriya_honey.rb
require 'kiriya_honey'
puts "Ichigo".odayaka? #=> 穏やかじゃないわね
puts nil.odayaka? #=> この穏やかさ 穏やかじゃないわね。
```

成功したー！！やったー！！！穏やかじゃないーーーー！！！

## 霧矢ハニー、世界へ…
世界に羽ばたく霧矢ハニーのためにrubygemsにアカウントを登録しておきましょう
=> http://rubygems.org/sign_up

準備がととのったなら

```console、そして世界へ…
gem push pkg/kiriya_honey-0.0.1.gem
```

霧矢ハニーが世界に羽ばたいた姿をみてみましょう
=> https://rubygems.org/gems/kiriya_honey

うれしい

# 霧矢ハニー、そしてgithubへ…

霧矢ハニーはさらなるステージへ

```console
git push origin master

```

# アイカツ！駆動開発

=> 穏やかじゃないわね