文字列の操作
参考:
ActiveSupport の String 拡張 (活用形) まとめ – Qiita
文字列内の全ての単語を capitalize する
split
/ join
と capitalize
を使う。
"full name".split.map(&:capitalize).join(" ") # => "Full Name"
titleize
を使う。
"full name".titleize # => "Full Name"
gsub
と capitalize
を使う。
"full name".gsub(/\b\w/, &:capitalize) # => "Full Name"
参考:
Ruby capitalize every word first letter – Stack Overflow
camelize
単語の先頭を大文字にしてスペースやアンダースコアを取り除いて連結する。スラッシュは二つのコロンに置き換えられる。(ファイルパス状の文字列をモデルクラス名に変換する。)
"user".underscore # => "User" "admin/store_manager" # => "Admin::StoreManager"
参考:
camelize – String | Ruby on Rails API [Official]
camelize – rails/methods.rb at v5.2.2 · rails/rails – GitHub
underscore
小文字の単語をアンダースコアで接続した形式に変換する。名前空間部分はスラッシュで区切られる。(モデル名をファイルのパスで使用する形式に変換する。)
"User".underscore # => "user" "Admin::StoreManager" # => "admin/store_manager"
参考:
underscore – String | Ruby on Rails API [Official]
underscore – rails/methods.rb at v5.2.2 · rails/rails – GitHub
Converting camel case to underscore case in ruby – Stack Overflow
humanize
最初の単語の先頭の文字を大文字にする。アンダースコアを空白に置き換える。末尾に _id
があれば取り除く。
"employee_salary".humanize # => "Employee salary" "author_id".humanize # => "Author" "author_id".humanize(capitalize: false) # => "author" "_id".humanize # => "Id" "author_id".humanize(keep_id_suffix: true) # => "Author Id"
参考:
humanize – ActiveSupport::Inflector | Ruby on Rails API [Official]
humanize – String | Ruby on Rails API [Official]
humanize | Rails ドキュメント (railsdoc.com)
titleize
英語の文字列をタイトル形式に変換する。
titleize("man from the boondocks") # => "Man From The Boondocks" titleize("x-men: the last stand") # => "X Men: The Last Stand" titleize("TheManWithoutAPast") # => "The Man Without A Past" titleize("raiders_of_the_lost_ark") # => "Raiders Of The Lost Ark" titleize("string_ending_with_id", keep_id_suffix: true) # => "String Ending With Id"
参考:
titleize – ActiveSupport::Inflector | Ruby on Rails API [Official]
titleize – String | Ruby on Rails API [Official]
titleize_with_dashes
String
にメソッドを定義する。
class String def titleize_with_dashes humanize.gsub(/\b('?[a-z])/) { $1.capitalize } end end
英語の文字列でダッシュを保持したままタイトル形式に変換する。
"my-name is john".titleize_with_dashes # => "My-Name Is John"
参考:
How to capitalize first letter of each word in the string – Stack Overflow
singularize / pluralize
参考:
Rails で単語の単数・複数変換を制御する | blog.beaglesoft.net
ActiveSupport::Inflector
参考:
ActiveSupport::Inflector の便利な活用形メソッド群 | TechRacho
ActiveSupport の String 拡張 (活用形) まとめ – Qiita
Rails4 でクラス名、DB 名、ファイル名の変換 | Rails Webook
ActiveSupport::Inflector | Ruby on Rails API [Official]
rails/methods.rb at 5-2-stable · rails/rails – GitHub
rails/inflections.rb at 5-2-stable · rails/rails – GitHub
rails/inflector_test.rb at 5-2-stable · rails/rails – GitHub
ActiveSupport::Inflector::Inflections
参考:
Inflections Everywhere: Using ActiveSupport Inflector | Words and Code
ActiveSupport::Inflector::Inflections | Ruby on Rails API [Official]
Inflections – rails/inflections.rb at v5.2.2 · rails/rails – GitHub
rails/inflections.rb at v5.2.2 · rails/rails – GitHub
ActiveSupport による String の拡張
参考:
String | Ruby on Rails API [Official]
rails/inflections.rb at v5.2.2.1 · rails/rails – GitHub
頭字語/アクロニム (acronym)
参考:
ActiveSupport::Inflector::Inflections#acronym が期待通りで無い件 | こしごぇ (B)
Rails 4.1 ではモジュール配下のクラス名を underscoe するときに acronym の設定を考慮してくれない | There’s an echo in my head
acronym – ActiveSupport::Inflector::Inflections | Ruby on Rails API [Official]
Handling acronyms in rails | Cybrilla TIL
Teaching ActiveSupport proper capitalisation | Coderwall
Fix underscore inflector handling of adjacent acronyms · rails/rails@6a8464f – GitHub
Rails acronym inflection splitting mid-acronym – Stack Overflow
Rails autoloading fully capitalized name like API – Stack Overflow
How to avoid downcasing acronyms in ruby / rails – Stack Overflow
classify
参考:
classify | Rails ドキュメント (railsdoc.com)
tableize
参考:
tableize | Rails ドキュメント (railsdoc.com)
constantize / const_get
参考:
文字列から Rails のクラスにアクセスしたいとき – Qiita
Ruby の Module#const_get について調べてみた | freedom-man
Calling a namespaced class with Rails constantize inflector – Stack Overflow
deconstantize
定数を修飾する名前空間部分を取得する。
self.class.name.deconstantize
参考:
deconstantize – String | Ruby on Rails API [Official]
How do you find the namespace/module name programmatically in Ruby on Rails? – Stack Overflow
demodulize
名前空間を取り除いた定数名を取得する。
self.class.name.demodulize
参考:
demodulize – String | Ruby on Rails API [Official]
How do you find the namespace/module name programmatically in Ruby on Rails? – Stack Overflow
truncate / truncate_words
参考:
truncate – ActionView::Helpers::TextHelper | Ruby on Rails API [Official]
truncate – String | Ruby on Rails API [Official]
truncate_words – String | Ruby on Rails API [Offcial]
Truncate string with Rails? – Stack Overflow
ふりがな/読み仮名/かな/カタカナ/ひらがな/ローマ字変換
参考:
Ruby on Rails で漢字/ひらがな/カタカナをローマ字に変換したい – Qiita
Ruby (および Rails) で漢字、ひらがな、カタカナをローマ字に変換する – Qiita
Ruby で平仮名またはカタカナをローマ字にする | 目指せ、臥薪嘗胆
Rails 3.1 でひらがなをカタカナに変換する方法 | TechRacho
Romaji
参考:
makimoto/romaji: Romaji-Kana transliterator – GitHub
Zipang
参考:
日本語を URL 用ローマ字に変換する gem Zipang を作った – Qiita
romkan
参考:
Ruby/Romkan: a Romaji/Kana conversion library for Ruby | 0xcc.net