コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

社会のボトムズがRailsに手を出す #4

これまでのあらすじ

性格の分類にDRYな性格ってあるじゃないですか。僕具体的にどういうものなんかよくわかってなかったんですよね。そんなわけで、あれってどういう意味なんだろうって調べてみました。


DRYってゅうのは「Don't repeat yourself」。。
意味は「同じことを繰り返すな」、ぃみゎかんなぃ。。。
もぅマヂ無理。
Railsしょ…


前回記事
inujini.hatenablog.com


Railsらしさって何だろうという哲学に挑む会

はい、どうも自分が何なのかさえ分からず震えている僕です。本日は巷で大人気のRailsチュートリアル第四章をやっていきます。


四章は対話環境使ってなんやかんやする内容がメインらしいね。以下コマンドで対話環境が開けるとのことです。「Railsコンソールは素晴しい学習ツールであり、その中を自由に探索できます。コンソールの中で何をしようとも、何かを壊すことは (まず) ありえない」って書いてあるけど多分deleteとかdestroyとかやったら消えると思うんですけどそうはならないんですかね?

$ rails console

んで演習にRubyで書いてみましょう系あったのでそれの解答を雑に書いてみます。

### 文字列
city = "新宿区"
prefecture = "東京都"
puts "#{city}\t#{prefecture}"

### オブジェクトとメッセージ受け渡し
s = "racecar"
puts "racecar".reverse
puts s.reverse
puts s == s.reverse # true

### メソッドの定義
def palindrome_tester(s)
   if s == s.reverse
     puts "It's a palindrome!"
   else
     puts "It's not a palindrome."
   end
end
puts palindrome_tester("racecar")
puts palindrome_tester("onomatopoeia")

### 配列と範囲演算子
a = "A man, a plan, a canal, Panama".split(',')
s = a.join.split(" ").join.downcase
puts ('a'..'z').to_a[6]+('a'..'z').to_a[-6] # aからzまでの範囲オブジェクトを作成し、前後7番目の要素

### ブロック
puts (0..16).map{|i| i**2} # 各要素の2乗

def yeller(arr)
  return arr.join.upcase
end
yeller(['o', 'l', 'd'])

def  random_subdomain()
  return ('a'..'z').to_a.shuffle[0..7].join
end
random_subdomain()

def string_shuffle(s)
  s.split('').shuffle.join
end
string_shuffle("foobar")

### ハッシュとシンボル
{one:"uno",two:"dos",three:"tres"}.each do |key, value|
  puts "'#{key}'のスペイン語は'#{value}'"
end

### コンストラクタ
puts (1..10) == Range.new(1,10)

### クラス継承
Range.superclass.superclass #クラスの継承階層の確認
Hash.superclass.superclass #クラスの継承階層の確認
Symbol.superclass.superclass #クラスの継承階層の確認

### 組み込みクラスの変更
class String
  def palindrome?
    self==reverse
  end
  
  def shuffle
   self.split('').shuffle.join
 end
end
"racecar".palindrome?
"foobar".shuffle

### ユーザークラス
class User
  attr_accessor :first_name,:last_name, :email

  def initialize(attributes = {})
    @first_name = attributes[:first_name]
    @last_name = attributes[:last_name]
    @email = attributes[:email]
  end

   def full_name
    "#{@first_name} #{@last_name}"
   end

   def alphabetical_name
    "#{@last_name}, #{@first_name}"
   end

  def formatted_email
    "#{@name} <#{@email}>"
  end
end

何も考えずに実装して、"racecar" の結果がTrueになってビビったけどよくみたら回文だった。あーそうだね。とまあそんな感じの内容と思われ。CSSがいじれるとか意気込んでいたのに内容はほぼRubyの復習だった。特に面白い要素がない……。


そんで話を戻して、ヘルパーにコメントをつけましょうとかあるけど自分ならこう名前つけると思う。

module ApplicationHelper
  # 関数説明:ページごとのTitleを返します。
  # パラメータ: 
  #   page_title Titleタグで利用
  def full_title(page_title = '')
    base_title = "Ruby on Rails Tutorial Sample App"
    if page_title.empty?
      base_title
    else
      page_title + " | " + base_title
    end
  end    
end

作成した関数の上に何をしているのかの説明と引数の意味みたいな感じ、あとは必要に応じて返り値とか……。

第四章の感想

四章は眠らせてくるやべーやつがいると巷で有名ですが、実際やってて眠かった。演習の量は多いんだけどなんか飽きる。そして、またチュートリアル無視して内容とか文句いれたりしてる……。レイアウトいじりたかったのにRubyの復習みたいな内容だったから仕方ない。次回第五章がレイアウトいじるって書いてあるからそれに期待。

次回へ続く。