ニックネーム:   パスワード:
| MyDoblogトップ | Doblogポータル | Doblogガイド | ユーザ登録 | 使い方 | よくある質問 | ツールバー | サポート |
ぐだぐだ
Blog
[ 総Blog数:121件 ] [ このMyDoblogをブックマークする ] [ RSS0.91   RSS1.0   RSS2.0 ] [ ATOM ]
2006/09/20のBlog
[ 17:31 ] [ Ruby ]
実際に実行するファイル
多分Javaでいうmainのような形になってるはず。
なんかこの辺りをどう作っていいのかが不明
モジュールとかね

#ファイル操作の為
require 'fileutils'
#記事クラス
require 'article'
#記事ファイル
$source = 'article.csv'

#記事を表示する
def printArticle
File::open($source) {|f|
f.each {|line|
article = Article::lineToArticle(line)
puts article
}
}
puts
end

#入力
def inputArticle
puts '投稿'
article = Article.new
puts '名前は?'
article.name = gets.chomp
puts '本文'
article.message = gets.chomp
return article
end

#記事をCSVとして書き込む
def writeArticle(article)
File::open($source,'a+') {|file|
count = 0
file.each {
count += 1
}
article.id = count.to_s
file.puts(article.toCSVLine)
}
end

#記事を削除する
def deleteArticle
puts '削除する記事番号を入力'
id = gets.chomp

if(id != ~/\d/)
puts '数字を入力してください'
else

filelist = []
File.open($source, "r") {|f|
f.each do |line|
lines = line.split(',')
if(lines[0] != id)
filelist.push line.chomp
end
end
}
File.open($source, 'w') {|f|
filelist.each {|line|
f.puts(line)
}
}
end
end

#メニュー
topmessage = <<eos printarticle else 2) ########################### !file.exist?($source) 2:閲覧 while if(mode="=" end eos true topmessage if elsif(mode="=" deletearticle 操作を選択 3) 1:投稿 #本処理 9) 3:削除 9:終了 break '閲覧' fileutils.touch($source) puts 'end' 1) mode="gets.chomp.to_i" '不正な入力' writearticle(article) article="inputArticle">
コメントの書き方とか、
実行単位とかよくわからんけど
一応完成

アクセサの自動生成の際に、setterが
オブジェクト参照変数.setter(値)
として使用できず、
オブジェクト参照変数.変数名 = 値

なのが少し気持ち悪い

#記事オブジェクト
class Article
#曜日の日本語文字列表現の為のクラス変数
#@@wdays = ['日', '月', '火', '水', '木', '金', '土']

##ローカル変数
 @id
 @name
 @message
 @date
 #整形済み文字列変数
 @fdate

 #コンストラクタ
 def initialize (name, message)
 @name = name
 @message = message
 @date = Time.new
 @fdate = nil
 end

 #コンストラクタ
 def initialize
 @date = Time.new
 @fdate = nil
 end

 #アクセサを生成
 attr_accessor :id, :name, :message, :date

 def getFdate
 if (@fdate == nil)
 @fdate = @date.strftime("%Y/%y/%d (#{@@wdays[@date.wday]}) %H:%M:%S")
 end
 return @fdate
 end

 def setFdate(date)
 @fdate = date
 end

 #文字列表現
 def to_s
 return "\tid:#{@id}
 \tname:#{@name}
 \tmessage:#{@message}
 \tdate:#{@fdate}"
 end

 #記事オブジェクトをCSV形式の行に
 def toCSVLine
 s = "#{@id},#{@name},#{@message},#{getFdate}"
 return s
 end

 #クラスメソッド:CSV一行分をオブジェクトに
 def Article.lineToArticle(line)
 lineArray = line.split(/\s*,\s*/)
 if(lineArray.size != 4)
 puts '行が不正'
 exit
 else
 article = Article.new
 article.id=lineArray[0]
 article.name=lineArray[1]
 article.message=lineArray[2]
 article.setFdate(lineArray[3])
 return article
 end
end
end
なにかと評判のRuby
いつもはじめようと思っては挫折
の繰り返しだったRuby
とりあえずまとまった時間が出来たので1日だけど・・・
いじってみようと。

Javaの魅力は強い型付けにあるとおもってるので
Rubyはちょっと。。。。
なんて言い訳がましいことを捨てようと

いじってからでいいじゃないと!

とりあえずCUI掲示板を作ってみようと!

続く
2006/09/16のBlog
[ 19:49 ] [ しゃれ ]
EROS

ERODESU

か悩んだ結果EROS
今思えばERODES
でいいのかもね

まぁ簡単に修正できるけど

一応お決まりで
無断転載は禁止です。
著作権等はひっかからないと思いますが、
問題ありそうだったらお手数ですがご連絡ください。

でいいのかな
[ 18:18 ] [ しゃれ ]
昔作ったTシャツが出てきたので
元画像探したけどなくなってたので・・・
(Naverのブログにのっけてたけどそれも消えちゃったしね・・・)
まあ作ってみました。

ちなみにTシャツは厚手の白Tがなかなか無かったため
薄い白Tで作ったら乳首が透けるのでほとんど着てませんorz

一応お決まりで
無断転載は禁止です。
著作権等はひっかからないと思いますが、
問題ありそうだったらお手数ですがご連絡ください。

でいいのかな