JANコード用のgem「jan」
作ったもの
JANコードを便利に扱うためのgemを作りました。
JANコードっていうのはバーコードに使われているこんなやつです。
国際的にはEANコードと呼ばれていたりします。
JANコードとは│JANコード登録│ 一般財団法人流通システム開発センター
ean | RubyGems.org | your community gem host は既に存在しているんですが、イマイチな感じだったので自分で作りました。
インストール
s-osa/jan · GitHub に置いてあります。
いつも通り、
gem 'jan'
$ bundle
か
$ gem install jan
してください。
使い方
基本
jan = Jan.new("4901277241126") jan.valid? # => true Jan::Validator.validate("4901277241126") # => true
チェックディジットを計算
チェックディジットなしのコードからチェックディジットを計算します。
# Correct code: "4901277241126" Jan::CheckDigitCalculator.calculate("490127724112") # => 6
要素を取得
JANコードの要素(コード本体・チェックディジット)を取得します。
jan = Jan.new("4901277241126") jan.check_digit # => 6 jan.body # => "490127724112" Jan::Parser.check_digit("4901277241126") # => 6 Jan::Parser.body("4901277241126") # => "490127724112"
インストアコードを判別
インストアコード*2かどうかを判別します。
jan = Jan.new("4901277241126") jan.instore_code? # => false Jan::Paser.instore_code?("2163179230340") # => true
乱数生成
ランダムなチェックディジット付きJANコードを生成します。インストアコードの範囲内での生成も可能です。
Jan::Random.code # => "5689450935688" Jan::Random.code(8) # => "11774853" Jan::Random.instore_code # => "2799375754394" Jan::Random.instore_code(8) # => "27393086"
janというgem
「jan」という名前のgemを作るに当たり、この名前を取ってしまって良いのかどうか実は結構悩みました。
とはいえ、取ってしまったものはもう仕方がないので、機能に不満がある方はIssueやPRをください。お願いしますm( )m