c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programming に分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡)

音樂は SoundCloud に公開中です。

考察は現在は主に Scrapbox で公表中です。

Programming は GitHub で開發中です。

RspecのJSON ExpressionsでNullableなマッチャー (若しくはORマッチャー) を作る

RspecJSON Expressions ( https://github.com/chancancode/json_expressions ) を使ってゐる。便利かと云ふと便利ではない気がするが、変へる余裕も無いので使ってゐる。
其れなりにJSONの構造をマッチできるのだが、ORができない気がする。できるのかもしれないが、できない気がする。「文字列 若しくは nil」なんてのができない気がする。wildcard_matcherなんて云ふあらゆるものに無条件にマッチするものを、ほいほいとは使ひたくない。とても困る。
JSON Expressionsはマッチに === を使ってゐるので、手製のマッチャーを作ってやる。以下をRSpecのhelperに書く。

# license: Public Domain

class OrMatcher
  def initialize *vs; @vs = vs; end
  def === target; @vs.any?{|v| v === target }; end
end
def or_matcher *vs; OrMatcher.new *vs; end

然し面倒なので、or_matcher(/.*/, nil)とかor_matcher((0..Float::INFINITY), nil)なんてcodeを書いてゐたりする。
JSV (JSON Schema Validator) を使おう。