苦しみの末にたどり着いた先
命名を補助するツールを作った。
- おすきな名前をローマ字入力する
- いい感じの並びが出るまで、押しまくる
関連記事
動機と要件の詳細について zorin.hateblo.jp
ローマ字を入力してね
これで課題は全部カバーできそうなきがする。
クリックして表示 > ruby版のコード
概要
➤ ruby namer.rb "takashi" aahikst
入力したアルファベット順に並び替えてくれる。 出力された英字に着想を得て、新しいものが思いつくかもしれない。
コード
class Namer def initialize(name) @name = name @chars = name.chars.map(&:to_sym) @alphabet = (:a..:z).to_a # @alphabet = [(:a..:z).to_a, (:a..:z).to_a].transpose.to_h end def size @name.size end # アルファベットを入れる # @return [String] def sort_by_index indexies.sort.map { |index| @alphabet[index] }.map(&:to_s).join("") end def indexies @chars.map { |char| @alphabet.find_index(char) } end end name = Namer.new(ARGV.first) puts name.sort_by_index
使い方
➤ ruby namer.rb "takashi" aahikst
ワンライナー
↓のtakashiを置き換えれば、いい感じにやってくれます。
➤ ruby -e 'puts ARGV.first.split("").join("\n")' "takashi" | sort | tr -d '\n' aahikst