15
12

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をダウンロード数が多い順に紹介

Posted at
1 / 16

自己紹介

  • sue445
  • ドリコム 所属
    • サーバサイドをアプリからインフラまで浅く広く
    • 最近 http://dabimas.jp/ (ダビスタスマホゲームの公式サイト兼事前予約サイト)作りました
      • Ruby 2.3.1 + Rails 5.0.0.1
  • 好きなエディタは Vimと RubyMine
  • 好きなプリキュアは キュアピース

My profile

image


  • 最近はペース落ちたけど社内外合わせるとだいたい月1個ペースでgemを新しく作ってる :gem:
    • ググって見つからなければとりあえず作ってる
  • 今回はrubygems.orgのダウンロード数が多い順に上からいくつか適当に紹介

rubicure


よく分かるサンプル

maho_girls.gif


よく分かる解説

プリキュアのタイトルを出力

puts Precure.maho_girls.title
#=> 魔法つかいプリキュア

Cure.xxxx でインスタンスを取得

@mirai = Cure.miracle
puts @mirai.name
#=> 朝日奈みらい

キュアップ・ラパパ!で変身 2
自分自身が変化する破壊的メソッドなのでRubyの慣習に則ってメソッド名の末尾に ! がついています

@mirai.cure_up_rapapa! :diamond
# キュアップ・ラパパ! ダイヤ!
# ミラクル・マジカル・ジュエリーレ!
# ふたりの奇跡!キュアミラクル!
# 魔法つかいプリキュア!!

変身すると名前が変わります

puts @mirai.name
#=> キュアミラクル(ダイヤスタイル)

attack! で必殺技を出します
敵を攻撃する破壊的メソッドなのでRubyの慣習に則ってメソッド名の末尾に ! がついています

@mirai.attack!
# リンクルステッキ!
# ダイヤ!永遠の輝きを私達の手に!
# フルフルリンクル!
# プリキュア・ダイヤモンド・エターナル!

humanize! で人間に戻ります
自分自身が変化する破壊的メソッドなので(ry

@mirai.humanize!
puts @mirai.name
#=> 朝日奈みらい

魔法つかいプリキュアでは変身の時に使うリンクルストーンの種類によって別の形態に変身することができます

@mirai.cure_up_rapapa! :ruby
# キュアップ・ラパパ! ルビー!
# ミラクル・マジカル・ジュエリーレ!
# ふたりの奇跡!キュアミラクル!
# 魔法つかいプリキュア!!

puts @mirai.name
#=> キュアミラクル(ルビースタイル)

@mirai.attack!
# リンクルステッキ!
# ルビー!紅の情熱よ私達の手に!
# フルフルリンクル!
# プリキュア・ルビー・パッショナーレ!

paraduct


20160811002700.png


heart_seed


rspec-temp_dir

  • テストコード中で一時ディレクトリを手軽に作るためのgem
  • プロダクトコードでファイルを作ってるような場合に、出力先を temp_dir にしていればわざわざ after(:each) でファイルを消す必要がなくなって便利
  • 詳しいこと:rspec-temp_dir をリリースしました - くりにっき

fluent-plugin-out_chatwork


activerecord-simple_index_name


Example

db/migration/create_user_stoks.rb
create_table :user_stocks do |t|
  t.integer :user_id,    null: false
  t.integer :article_id, null: false
  t.timestamps null: false
end

add_index :user_stocks, [:user_id, :article_id]
  • activerecord-simple_index_name無し: index_user_stocks_on_user_id_and_article_id(43文字)
  • activerecord-simple_index_name有り: user_id_and_article_id(22文字)

index_shotgun :fire: :gun: :cop:

  • 不要なインデックスを検出するためのgem
  • 名前の由来は SQLアンチパターン
  • pt-duplicate-key-checkerとだいたい一緒だけどactive_recordベースなのでMySQL以外でも使える
    • MySQL, PostgreSQL, SQLite, Oracle対応
  • 詳しいこと:index_shotgunを作った #omotesandorb - Qiita
  • 最近だとビルドスクリプトに組み込んで、不要インデックスがあったらPullRequestの時点でビルドが失敗するようにしてる
  • 面白い試みとして、Travis CIとWerckerを両方使ってる
    • Travis CIだとOracleが使えない
    • Oracleのインストールが超絶面倒くさいので、Oracleインストール済のDockerfileをWerckerで使ってる

One more thing

gem開発の知見はだいたいここに全部書いた

  1. メンテナなので自分のプロフィールページにも載ってる

  2. 全シリーズ共通なのは transform! ですが、シリーズ固有の変身名乗り(例:Go!プリンセスプリキュアだと princess_engage!)も全てサポートしています

15
12
1

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
15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?