Subscribed unsubscribe Subscribe Subscribe

Augmented Usamimi

it { is_expected.to be_blog.written_by(izumin5210) }

オープンデータめんどくさい

Ruby

めんどくさい. なにがめんどうかって,なにか作るのにいちいちXMLをパースしたりするの. JSONならまだいいんだけど.

JSでXMLをバラそうと思ったらjQueryとかでゴリゴリ解体しなきゃだし, RubyでやるにしてもNokogirixpathとかで切り刻む必要がある. mizchiさんの記事じゃないけど,外科手術感は否定出来ないし非常につらい.

jqueryは、本当は使いたくない。近年においてはjqueryプラグイン=低品質とほぼ同義である。 もはやjqueryとはグローバル依存に走る割れ窓であると言っても良い。仕方なくjqueryを生で書くときは、恥ずかしいと思って書いて欲しい。近年のモダンなフレームワークの中での開発と比較すると、jqueryコーディングはまるで外科手術のような形相を呈している。

自分はDOMを切り裂いて中をかき回す外科手術が必要なときに使う。

- 俺のJSライブラリの世界観(2014末版) - Qiita

以前にHappyMapperというGemを試した. 要素とマッピング先の変数名を宣言するだけで良い感じにXMLバラしてくれるというステキなGemだった. ただ,今年の頭ごろから開発が止まってるっぽくて悲しみに暮れてる.

いま進めているプロジェクトでは,HappyMapperの代替としてSAX Machineを利用している. 使い心地はHappyMapperと変わらない.怠惰な僕にはぴったりだ. ただドキュメントが貧弱なうえに日本語の情報も皆無なのでソース読む必要がある. まあそんなに複雑なものでもないので十分に実用できる.

# 明石高専 時間割ODをバラすためのクラス
# http://www.akashi.ac.jp/guide/opendata
class LectureMapper
  include SAXMachine

  element 'Name', as: :name
  element 'Grade', as: :grade, class: Integer
  element 'Department', as: :department
  element 'Course', as: :course
  element 'Wday', as: :wday, class: Integer
  element 'StartTime', as: :start_time
  element 'EndTime', as: :end_time
  elements 'Lecturer', as: :lecturers
end

無駄なコードは書かず,怠惰に生きよう. できた時間はもっと有意義に使おう.たとえばお布団で寝るとか.