くりにっき

フルスタックキュアエンジニアです

rubicure v1.0.0リリースノート

rubicureのこれまでとこれから - くりにっき でも書きましたが、大幅に変更が入っています!

sue445.hatenablog.com

詳しいことはCHANGELOGを読んで下さい https://github.com/sue445/rubicure/blob/master/CHANGELOG.md#v100

破壊的変更

長らくdeprecatedにしていたhumanizeメソッドを削除

humanize! を使ってください

Ruby 2.2.2以上必須にした

activesupport 5系との兼ね合いで2.2.2以上必須にしています

Ruby 2.2.2未満の時はGemfile側でactivesupport 4系を使ってもらうという選択肢(ドキュメントで補完)というのもあったのですが、どうせドキュメントなんて読まないだろうし「Ruby 2.1系でbundle installに失敗する」というissueに対して質問返すのも不毛なのでこの機会にバッサリ古いRubyのサポートを切りました。

キュアプリンセスの人間の時の名前を変更

後述の Girl#full_name メソッドとの兼ね合いで変更しました

  • 変更前:白雪ひめ(ヒメルダ・ウインドウ・キュアクイーン・オブ・ザ・ブルースカイ)
  • 変更後:白雪ひめ

Precure.all_starsメソッドの振る舞いを変更

既存コードの改修が必要という点ではこれが一番大きい変更です

今まで Precure.all_stars は基本的に全てのプリキュアを返していましたが、v1.0.0以降は初代〜魔法つかいプリキュアまでしか返さないようになりました。*1

これは、プリキュアオールスターズ が終わって プリキュアドリームスターズ! が始まったためです。

全てのプリキュアを取得したい場合は後述の Precure.all_girlsPrecure.all を使ってください。

機能追加

Girl#full_nameを追加

白雪ひめやトワ様のように人間界の名前とは別に自国での名前が存在する場合があるので取得できるようにしました

Cure.princess.human_name
=> "白雪ひめ"

Cure.princess.full_name
=> "ヒメルダ・ウインドウ・キュアクイーン・オブ・ザ・ブルースカイ"

Cure.scarlet.human_name
=> "紅城トワ"

Cure.scarlet.full_name
=> "プリンセス・ホープ・ディライト・トワ"

別名がないキャラで full_name を使った場合は human_name (通常の人間時の名前)が返ります

Cure.miracle.human_name
=> "朝日奈みらい"

Cure.miracle.full_name
=> "朝日奈みらい"

Precure.all_girls を追加

Precure.all_stars が全てのプリキュアを返さなくなったため、代わりに all_girls が返ります。

all_girls と違ってデフォルトでキュアエコーが含まれます Precure.allエイリアスとして存在しているので好みに応じて使ってください

キラキラ☆プリキュアアラモードを追加

  • Precure.a_la_mode
  • Precure.alamode
  • Precure.kirakira_precure_a_la_mode
  • Precure.kirakira_precure_alamode

のいずれかで取得できます。

Precure.a_la_mode
#=> {:series_name=>"a_la_mode", :title=>"キラキラ☆プリキュアアラモード", :started_date=>Sun, 05 Feb 2017, :girls=>["cure_whip", "cure_custard", "cure_gelato", "cure_macaroon", "cure_chocolat"]}

Precure.a_la_mode.girls.map(&:precure_name)
#=> ["キュアホイップ", "キュアカスタード", "キュアジェラート", "キュアマカロン", "キュアショコラ"]

余談ですが今期の嫁はキュアカスタードです

Precure.dream_starsを追加

映画プリキュアドリームスターズ! に登場する Go!プリンセスプリキュア魔法つかいプリキュア! キラキラ☆プリキュアアラモードプリキュアが返ります

Precure.dream_stars.map(&:precure_name)
#=> ["キュアフローラ", "キュアマーメイド", "キュアトゥインクル", "キュアスカーレット", "キュアミラクル", "キュアマジカル", "キュアフェリーチェ", "キュアホイップ", "キュアカスタード", "キュアジェラート", "キュアマカロン", "キュアショコラ"]

余談

正式リリース前のバージョンのpreは、プレビュー(preview)の preプリキュア(precure)の pre の両方にかかっています

https://rubygems.org/gems/rubicure/versions

f:id:sue445:20170312133855p:plain

*1:厳密にはキュアフェリーチェプリキュアオールスターズには含まれません

勉強会のスライドにもマンガルーが使えそう

tl;dr

HTMLにマンガルーのタグを埋め込む形式であれば勉強会のスライドにも利用可能

マンガルーとは?

マンガのコマをwebサイトやSNSに貼り付けることができるサービスです

mangaloo.jp

このサイトのすごいところは「権利者より正式に許諾を受けた作品」を使えるということです

ある予感がしてFAQを読んでみた

http://mangaloo.jp/info/faq.html

コマをSNSにシェアするにはどうすればよいですか?

「コマをつくる」のコマの範囲確定後、または「コマをさがす」でコマをクリックした際に出るポップアップから、下図赤丸の「共有URL」をコピーしてSNSにはりつけてください。twitterfacebookなどのOGP(リンクからの画像表示機能)に対応しているSNSであれば、コマをタイムラインに表示することができます。


マンガ画像を保存して使いたいのですが

申し訳ありません。コマは埋め込みもしくは共有用URLでのご利用のみ可能です。 ダウンロードやスクリーンショットなどで保存、利用することは禁止させていただいております。

パワポやpdfへの画像埋め込みはアウツだけど、HTML形式のスライドならマンガルー使っても大丈夫ではという気づき

実際に問い合わせてみた

問い合わせたメール

こんにちは。FAQを読むとwebサイトやブログに貼り付けることを想定しているようですが、HTMLにマンガルーのタグを埋め込む方式であれば公開先は何でもいいのでしょうか? 私は勉強会で発表するためのプレゼンスライドをHTMLで書いてwebに公開しているのですが、そのような場合でもマンガルーが使えるかどうか気にしています。具体的には http://sue445.github.io/omotesandorb-10/ のような形式のスライドにマンガルーのタグをHTMLとして埋め込んで使うことを想定しています

返信メール *1

f:id:sue445:20170301234557p:plain

ご利用方法として問題なさそうなので

まとめ

勉強会のスライドにwebで拾ったマンガのコマを貼り付けるよりもこういうサービス使うのが健全ですね

*1:ブログでのメールのやり取りの公開は予め許可をもらってます

プリキュアの誕生日をGoogleカレンダーに登録する

あると便利そうだったのでキラッとひらめいて作りました。

概要

rubicureプリキュアの誕生日を取得できるので、RubicureAPIical形式で登録できるようにしてみました。

使い方

https://rubicure.herokuapp.com/ の一番下にあるicalのリンク( https://rubicure.herokuapp.com/girls/birthday.ics )をGoogleカレンダーに追加するだけです。

f:id:sue445:20170226232541p:plain

f:id:sue445:20170226232718p:plain

実際に登録してみた

こんな感じです。便利!

f:id:sue445:20170227002636p:plain

f:id:sue445:20170227002712p:plain

仕様

ChatWork API v2への追従について

下記でChatWork APIのバージョンアップがアナウンスされています

help.chatwork.com

既にv2はリリースされていてv1は5月上旬に停止予定とのことなので早めにアップデートしておくのがいいでしょう

とのことで、自分の視界に入っている限りでのv2対応状況について紹介します

既存のプログラムをv2対応する

既存プログラムの改修レベルでいえば

  • エンドポイントをv1からv2にする
  • 静的型付け言語であれば message_id の型をintegerからstringにする

だけで動きます。完全なv2 API対応にはコンタクト承認依頼APIにも対応する必要がありますが、「v1 API廃止後も既存のプログラムが問題なく動く」ということだけにターゲットを絞ればこの2つだけで十分かと。(以降「v2対応」はこの最低限の対応を指します)

他の人が作ったライブラリのv2対応状況

chatwork

github.com

Rubyで一番使われてそうなChatWorkクライアントのgem

https://github.com/asonas/chatwork-ruby/pull/14 でv2対応されているので、v0.4.0以降を使えばv2対応完了です

capistrano-chatwork, cha

github.com

github.com

capistrano-chatworkの中で使ってるクライアントgemがchaです。

chaとcapistrano-chatworkの両方でPR投げて取り込まれています。

cha v1.2.0以降とcapistrano-chatwork v1.4.0以降を使えばv2対応完了です。*1

go-chatwork

github.com

golang用のクライアント。本家 ではなくfork版の方です

https://github.com/griffin-stewie/go-chatwork/pull/8 でPRを投げて取り込まれているので go get -u github.com/griffin-stewie/go-chatwork すればv2対応完了です。

拙作のChatWork系ツールのv2対応状況

Jenkins ChatWork Plugin

github.com

v1.0.8 でv2対応完了しています。余談ですがこの時送られてきたPRで初めてChatWork API v2のことを知りましたw

https://github.com/jenkinsci/chatwork-plugin/pull/34

zatsu_monitor

github.com

v0.2.2でv2対応しています

capistrano-around_chatwork

github.com

v0.1.1以降にアップデートすれば自動的にchatwork gemのv0.4.0以降(v2対応版)が入るようになってるのでそれでv2対応完了です

ただし capistrano-around_chatwork v0.1.1 と capistrano-chatwork を同時にインストールしようとするとバージョンがコンフリクトして bundle install できないので capistrano-around_chatwork v0.2.0推奨

詳細: https://github.com/sue445/capistrano-around_chatwork/pull/2

fluent-plugin-chatwork

github.com

v1.0.1にアップデートすれば自動的にchatwork gemのv0.4.0以降(v2対応版)が入るようになってるのでそれでv2対応完了です

*1:capistrano-chatworkのPRを見てもらえれば分かりますが、chaだけだと依存の関係でbundle installできないのです

Travis CIでdepを使う

zatsu_monitordep対応をしたのでその時のメモ

depについて

depについては下記を参照

mattn.kaoriya.net

.travis.yml

必要最低限だとこんな感じ

language: go
go:
  - 1.7
  - tip
before_install:
  - go get github.com/golang/dep/...
install:
  - $GOPATH/bin/dep ensure
script:
  - go test

depのREADMEに書いてるのを.travis.ymlに書いただけです。

.travis.ymlの完全版はこちら https://github.com/sue445/zatsu_monitor/blob/c265f1b9301c056cbac5006952270812c9155266/.travis.yml

注意点としては、Travis CIだと go get しても $GOPATH/bin にPATHが通らない *1 こと。

goveralls でもフルパスで書いてるのでそんなもんかなぁ。。。

あと、golang 1.6系だとdepがビルドできずにエラーになったので1.7以降必須。

https://travis-ci.org/sue445/zatsu_monitor/jobs/196138494

depをいれたメリット

依存するライブラリのバージョンを上げた時にそれがgitの履歴として残るのはいいですね。 https://github.com/sue445/zatsu_monitor/commit/cb1d7ab446e1a511844740f63d366d8a6a901c62

*1:明示的にPATHを通してもダメだった