これまでのあらすじ
性格の分類にDRYな性格ってあるじゃないですか。僕具体的にどういうものなんかよくわかってなかったんですよね。そんなわけで、あれってどういう意味なんだろうって調べてみました。
DRYってゅうのは「Don't repeat yourself」。。
意味は「同じことを繰り返すな」、ぃみゎかんなぃ。。。
もぅマヂ無理。
Railsしょ…
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
作成した関数の上に何をしているのかの説明と引数の意味みたいな感じ、あとは必要に応じて返り値とか……。