18
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-05-15

kiriya-honey

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

おしゃもじをgemに持ち替える

私の熱いbundleカツドウ bunカツ!始まります フフッヒ

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

とりあえずgit

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

準備がととのったなら

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

形ができたのでコミット

git commit -m "v0.0.1"

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

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

そしてテストへ…

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

ので、spec_helperをつくります

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

テストをしましょう

rspec -c spec/extention/object_spec.rb

全部オッケーならオケオケオッケー

霧矢ハニーとご対面

まずはビルドしましょう

gem build kiriya_honey.gemspec

homepageないよってwarningされたけどないものはしょうがない

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

rake install

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

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

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

霧矢ハニー、世界へ…

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

準備がととのったなら

gem push pkg/kiriya_honey-0.0.1.gem

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

うれしい

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

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

git push origin master

アイカツ!駆動開発

=> 穏やかじゃないわね

18
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?