正の整数の文字列か判定するNaturalNumberString gem書いた

正の整数の文字列か判定するNaturalNumberString gem書いた。

APIはこんな感じです。

NaturalNumberString.positive_integer_string?(value) -> boolean
NaturalNumberString.zero_or_positive_integer_string?(value) -> boolean

詳細: yard docs

環境変数を取得してあれこれするライブラリを書いている。

if ENV['FOO']
  # do something
end

これでいいかと思ったら、あるCIサービスでは、falsyなときにENV['FOO']がないのだが、別のCIサービスでは、falsyなときはENV['FOO'] == ''なことがある。

if ENV['FOO'] && !ENV['FOO'].empty?
  # do something
end

これでいいかと思ったら、

TRAVIS_PULL_REQUEST the pull request number if the current job is a pull request, or “false” if it’s not a pull request.
http://docs.travis-ci.com/user/environment-variables/#Convenience-Variables

文字列’false’… いや文字列しか使えないから仕方ないのは知ってるけど。なのでカッとなって書いた。

NaturalNumberString.positive_integer_string?('1') #=> true
NaturalNumberString.positive_integer_string?('100000000000') #=> true

NaturalNumberString.positive_integer_string?(nil) #=> false
NaturalNumberString.positive_integer_string?('') #=> false
NaturalNumberString.positive_integer_string?(1) #=> false
NaturalNumberString.positive_integer_string?('1.1') #=> false
NaturalNumberString.positive_integer_string?('-1') #=> false
NaturalNumberString.positive_integer_string?('0') #=> false

NaturalNumberString.zero_or_positive_integer_string?('0') #=> true

文字列’0’の扱いだけ変えるmethodもある。

なおnodejsでも似たような発想のことやってるの前に作った。sanemat/node-boolify-string

広告

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中