Skip to content

ActiveRecordのカラム値をいろんな方法で正規化するライブラリ

License

Notifications You must be signed in to change notification settings

akicho8/normalizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ActiveRecordのカラム値を簡単に正規化する仕組み

class Book < ActiveRecord::Base
  with_options(:hankaku => true, :strip => true) do |o|
    o.normalize :title, :strip_tags => true
    o.normalize :body, :enter => true
  end
end

article = Book.create!(:title => "<b>Railsの本</b> ")
article.title # => "Railsの本"

機能一覧

シンボル意味
hankaku英数字を半角化
hiraganaカタカナをひらがな化
strip_tagsタグを外す
scrub不正なバイト列を除去
space_zentohan全角スペースを半角化
enter\r\n を \n に統一
strip前後の半角スペース除去
squishactivesupport の squish
truncate指定文字数で切る
blank_to_nilblank? なら nil にする
to_s最後に to_s する

単体の機能としても使える

Normalizer.normalize("ruby on rails", :hankaku => true) # => "ruby on rails"
Normalizer.normalize("ドラえもん", :katakana => true)                # => "ドラエモン"
Normalizer.normalize("ドラえもん", :hiragana => true)                # => "どらえもん"
Normalizer.normalize("<b>ドラえもん</b>", :strip_tags => true)       # => "ドラえもん"
Normalizer.normalize("ドラ\xffえもん", :scrub => true)               # => "ドラえもん"
Normalizer.normalize("ruby on rails", :space_zentohan => true)     # => "ruby on rails"
Normalizer.normalize("foo\r\nbar\r\n", :enter => true)               # => "foo\nbar\n"
Normalizer.normalize(" ドラえもん ", :strip => true)                 # => "ドラえもん"
Normalizer.normalize("  ruby  on  rails  ", :squish => true)         # => "ruby on rails"
Normalizer.normalize("ドラえもん", :truncate => 2)                   # => "ドラ"
Normalizer.normalize(" ", :blank_to_nil => true)                     # => nil
Normalizer.normalize(nil, :to_s => true)                             # => ""

About

ActiveRecordのカラム値をいろんな方法で正規化するライブラリ

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages