pepe_la_phew's diary

LL系の話など

ruby

JSONスキーマで妥当性確認

JSONスキーマでJSONファイルをvalidateするだけのコード。 #!/usr/bin/env ruby require 'rubygems' require 'json-schema' exit 1 unless ARGV.length == 2 schema = ARGV[0] json = ARGV[1] errors = JSON::Validator.fully_validate(schema, json) errors…

Nokogiri+CucumberにてXMLの妥当性確認

XMLに対応したXSDを用意し、それをNokogiriで読んでvalidateする。 その結果をCucumberで受ける。 …というだけのものです。■features/validate_xml.feature 機能: XSDによりXMLの妥当性を確認する シナリオ: XMLとスキーマを読んで妥当性を確認 前提: XMLド…

XMLから指定ノードを削除するパッチ

XMLファイルにノード削除パッチをあてたいので、Ruby + Nokogiriで書いてみた。 # -*- coding: utf-8 -*- require 'rspec' require 'nokogiri' class XmlPatch def initialize(xml) @doc = Nokogiri.XML(xml) end def del_node(tag_name, attr_name, attr_va…

標準出力をキャプチャする

テストを書くときに大抵覚えておらず、もどかしい思いをするので。Perlの場合。 use strict; use warnings; use Test::More (tests=>1); use IO::Capture::Stdout; sub test { my $capture = IO::Capture::Stdout->new; $capture->start; print "hoge\r\nfoo…

JenkinsでRoodiの結果をグラフ化

Roodiのチェック結果をJenkinsで追跡するための設定を書きます。 (環境:ruby 1.9.3p194、roodi 2.1.0、jenkins 1.459、Warnings Plug-in 4.5) コマンドラインから実行可能にする 前回のRoodi設定を参照。 自動化 Roodiを実行するタスクをRakefileに追記しま…

Roodi設定

RubyのチェックツールRoodiがエラーで動かなかったので設定ファイルを修正した、という話。 変更前状況 $ roodi lib/test.rb /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/psych.rb:203:in `parse': (/usr/local/rvm/gems/ruby-1.9.3-p194/gems/ro…

RSpecでFile読み込みのテスト

RSpecを使っていて、ファイル読み込みをスタブ化してテストする方法になかなか辿りつけなかったので、残しておく。 テストコード describe 'read_foo' do it '指定名称のファイルを開き、コメント行以外を云々' do lines = <