IPアドレスレンジなんかを直感的に扱う
IPアドレスのレンジを例えば[0-254]とか表記する場合、さくっと表記したいけど、数字のレンジで扱わないといけないのでイチイチ手間がかかる。
そういうわけなので数字レンジを[hoge-hogehoge]で扱えるようなものを書いた。
require 'test/unit' module Comparable end module Feelingseiki def extract_text(text) re = Regexp.new('\[(.+?)\]') ranges = text.scan(re)[0] range_ary = ranges[0].split("-") end def between_range(range,int) range_ary = extract_text(range) int.between?(range_ary[0].to_i,range_ary[1].to_i) end module_function :between_range module_function :extract_text end class ScriptText < Test::Unit::TestCase @@range = "[0-254]" def test assert_equal(true,Feelingseiki.between_range(@@range,0)) assert_equal(true,Feelingseiki.between_range(@@range,254)) assert_equal(true,Feelingseiki.between_range(@@range,100)) assert_equal(false,Feelingseiki.between_range(@@range,255)) assert_equal(false,Feelingseiki.between_range(@@range,-1)) end end
テストも付けた。
車輪の再発明だよ!って意見とか聞きたい。結構調べたけど気軽に表記する方法はなかったのよね。