ActiveHashのハッシュを楽して書きたい!

目次

 はじめに

アクティブハッシュのモデルを書くときに「選択肢が多くてコードを書くのが大変!」と感じた事はありませんか?

そんなあなたのために選択肢の配列を入力するとアクティブハッシュのモデルを生成してくれるミニアプリをお届けします!

入力と出力の例

入力例

出力例

app/models/chugoku.rb の内容はこちらです!

class Chugoku < ActiveHash::Base
self.data = [
{ id: 1, name: '---' },
{ id: 2, name: '鳥取県' },
{ id: 3, name: '島根県' },
{ id: 4, name: '岡山県' },
{ id: 5, name: '広島県' },
{ id: 6, name: '山口県' }
]
end

コード

# 入力
puts 'ActiveHash の model の名前を英字(小文字)で入力して下さい!'
puts '↓↓↓↓↓↓'
title = gets.chomp.to_s
puts 'ありがとうございます!'
puts 'ActiveHash の model にするリストを半角スペース区切りで入力して下さい!'
puts '↓↓↓↓↓↓'
ary = gets.chomp.split.map(&:to_s)
puts 'ありがとうございます!'
# 出力
puts "app/models/#{title}.rb の内容はこちらです!"
puts ''
# 以下、ファイルの記述
puts "class #{title.capitalize} < ActiveHash::Base"
puts ' self.data = ['
# 1個めのハッシュ
puts ' { id: 1, name: '---' },'
# 2個め〜のハッシュ
(ary.count - 1).times do |i|
puts " { id: #{i + 2}, name: '#{ary[i]}' },"
end
# 最後のハッシュ
puts " { id: #{ary.count + 1}, name: '#{ary.last}' }"
puts ' ]'
puts 'end'
puts ''

 使い方

  • コマンドで実行する(ruby 「ファイルパス」)
  • あるいは、実行権限を付与する(chmod +x 「ファイルパス」)
  • あるいは、ShellScriptを書く(1行目に #! /bin/sh

詳しくはこちら

ja.stackoverflow.com

終わりに

何度も似たような作業をするなら、サクッとアプリケーションを作ったほうが結果的に楽ができます。

生産性研究会の先生がおっしゃっていた言葉がこちら

「積み重ねになる仕事をしなさい」