👋

[Feature #20469] Enumerator::ArithmeticSequence に対して json を拡張する提案

に公開

[Feature #20469] dd a JSON addition for Enumerator::ArithmeticSequence

  • Enumerator::ArithmeticSequence に対して #to_json などを追加する提案
require 'json/add/arithmetic_sequence'

pp ((42...72) % 4).to_json
# => {"json_class"=>"Enumerator::ArithmeticSequence", "b"=>42, "e"=>72, "x"=>true, "s"=>4}
  • 元々はコア向けの提案だったんですがいまは json gem 側に PR が出し直されてます
  • これみて初めて知ったんですが json って既存のオブジェクトに対する拡張がいろいろとあるんですねー
require "json"

# 通常だとこんな感じ
puts({ pattenr: /^hoge\d+$/ }.to_json)
# => {"pattenr":"(?-mix:^hoge\\d+$)"}

puts (0..42).to_json
# => "0..42"

# 拡張用のライブラリを読み込むとこんな感じ
require 'json/add/regexp'
require 'json/add/range'

puts({ pattenr: /^hoge\d+$/ }.to_json)
# => {"pattenr":{"json_class":"Regexp","o":0,"s":"^hoge\\d+$"}}

puts (0..42).to_json
# => {"json_class":"Range","a":[0,42,false]}
GitHubで編集を提案

Discussion