*.gemspec ファイルをいい感じにparseするgem書いた

うっとなったので *.gemspec ファイルをいい感じにRuby Hash objectにするgem parse_gemspec と、
*.gemspec ファイルをいい感じにJSON にする CLIツールのgem parse_gemspec-cli かいた。

それぞれこう使う。

Ruby

require 'parse_gemspec'
require 'pp'

pp ParseGemspec::Specification.load('parse_gemspec.gemspec').to_hash_object
{:name=>"parse_gemspec",
 :version=>"0.5.0",
 :authors=>["sanemat"],
 :description=>"Parse *.gemspec file. Convert to Ruby Hash object.",
 :email=>["o.gata.ken@gmail.com"],
 :homepage=>"https://github.com/packsaddle/ruby-parse_gemspec",
 :licenses=>["MIT"],
 :metadata=>{},
 :summary=>"Parse *.gemspec file. Convert to Ruby Hash object."}

CLI

$ parse-gemspec-cli parse_gemspec.gemspec | jq .
{
  "name": "parse_gemspec",
  "version": "0.5.0",
  "authors": [
    "sanemat"
  ],
  "description": "Parse *.gemspec file. Convert to Ruby Hash object.",
  "email": [
    "o.gata.ken@gmail.com"
  ],
  "homepage": "https://github.com/packsaddle/ruby-parse_gemspec",
  "licenses": [
    "MIT"
  ],
  "metadata": {},
  "summary": "Parse *.gemspec file. Convert to Ruby Hash object."
}

filesとdependenciesが未対応。

filesは最近のだとgit ls-files使ってる場合が多いので、どうしようかな。いい方法が思いつかない。
specification: files, many gems use git ls-files -z

dependenciesはPlain Old Ruby Objectでどう表現しようかな、json表現どうしようかな、というところで止めてる。
specification: dependencies’ PORO format and json format

具体的な利用方法はこんな感じ。
conventional-changelog(npm)をRuby pruductから使う | 實松アウトプット

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中