かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Ruby

RubyDropを試してみようと思ったら・・・

GitとRubyの組み合わせでDropboxみたいなの作れるって書いてあるから、会社でさくっと環境作って試してみようと思ったら・・・。 http://www.moongift.jp/2010/11/20101129/起動のスクリプト見たら、こんなことが書いてあった。 puts "Sorry, RubyDrop is cu…

ハッシュをソートしたい

一旦配列にしてsortを呼ぶとよさげ。 h = {"4" => "d", "1" => "a", "2" => "b", "10" => "aaa" } sorted = h.to_a.sort do |a, b| a[0] <=> b[0] end p sorted # [["1", "a"], ["10", "aaa"], ["2", "b"], ["4", "d"]] 1つ賢くなった。

プログラムに日本語を使うときのおまじない

しばらく触ってないとすっかり忘れてた・・・SHIFT_JISでプログラムを書く場合はプログラムの先頭に以下のようなおまじないを書いておく。 #! ruby -Ks # -*- coding: sjis -*- たぶん一行目が1.8系で二行目が1.9系用。間違ってたら誰かコメントください。

郵便番号のCSVをオレオレXMLに変換

ちょっと郵便番号の一覧の書かれたXMLが欲しくなったのでCSVから変換してみた。 CSVのダウンロードは↓からしました。 http://www.post.japanpost.jp/zipcode/download.htmlこのCSVを下のRubyスクリプトで食わせて完成。 一度メモリ上の配列に、必要な列だけ…

コンストラクタの引数に渡したハッシュでプロパティを初期化したい!

って機能あるよね?ActiveRecordとかそこらへんに。 ということで、自分でどうやってやってるのか考えてみた。ハッシュを受け取って、そのkeyをもとにセットするメソッド呼べばいいので… module HashInitializable def initialize hash = nil unless hash re…

メソッド名の後のスペース

このサイトを見ていて「ん?」と思ったのでメモ。今までずっとメソッド名と引数の間にはスペース(or括弧)がいるものと信じてきてた。 そうじゃなかった!!!!引数がシンボルの場合は、そうでもないみたい。 ほかにもそういうのあるのかもしれないけど…と…

RedRailsってどうなんだろ?

EclipseベースのRails用開発環境みたい。 ちょいと今度使ってみよう。 http://www.radrails.org/download_rails_rdt.php というわけで入れてみた RedRailsをインストールするんじゃなくて、自前のEclipse3.3にインストールをしました。 まだ使ってないけど、…

Rubyスクリプトをexe化してみよう

Exerbというものを使うとできるらしい。 早速やってみよう。 公式サイトからさくっとダウンロード。 今日の段階では4.2.0が最新みたいだ。ダウンロードして解凍したフォルダで下のコマンドを実行してインストールをする。 $ ruby setup.rb お試し 単一のRuby…

ERBしてみよう

RailsやってたらViewがERBのテンプレートだっていうじゃない? ってことでERBをやってみた。使ってみて感じたことは、これはなかなかいいものだ。 ということで入門!! ERBテンプレートの書き方 基本的にはで囲まれたところにRubyのコードを書いて、残りは…

RailsのController部とView部を触り始める

さて、Ruby on Rails!! この間はscaffoldを作って満足して終わった。 これをベースにごちょごちょ弄くってるだけでも、それっぽいサイトは出来そうな感じになってる。でも、やっぱ色々使いこなしたいよね?ってことでActiveRecordは使わないで純粋にViewとCo…

ブロック付きメソッドを定義するときに使うもの

block_given?を完全に忘れてた(あるのは知ってたけどスペルを忘れてた) メモ!! def hoge yield 10 if block_given? end

Proxy越しにgemを使う

前回散々出来ないと愚痴ってたけど出来ました。結論から言うとHTTP_PROXYという環境変数にPROXYのアドレスを設定してからgemを使うとうまくいきました。 D:\>set http_proxy=http://プロクシーのアドレス:8080 D:\>gem install rails -y Successfully instal…

rails.vimを入れてみた

何に惹かれたかというと ]fや[fでコントローラ テスト間やコントローラ view間を移動できること! 後の機能はおいおい覚えていこう。とりあえずこのサイトからrails.vimの最新版を落としてくる。 上のサイトを下にスクロールしていくとダウンロードするため…

Ruby on Railsのセットアップ(iconv.dllが必要って言われた場合)

家ではgemでさくっとインストール 会社ではRubyForgeから1つ1つダウンロードコマンドラインからプロジェクトの雛形を作ろうとすると、iconv.dllがないって言われる。 これを解決するのにこのサイトを参考にした。このページからDL出来るiconvアーカイブを…

gemにproxyの設定が出来ない

やり方が悪いのだろうか。 昔の自分の日記を見る限りだと-pで指定してやればうまくいってたみたいだ。 んで、自分がproxy通さないといけない環境ってのは会社しかないので会社で試したはず。でも、最近出来ない。 とりあえず-pを指定しないでやると下みたい…

ついにRuby on Railsに!

ActiveRecordで軽く遊べるようになってきたので、次はWebアプリにチャレンジしてみようと思う。 ついにRailsと呼ばれるものに触れれる!!DBは引き続きemployeesテーブルとdepartmentsテーブルをしようする 念のためDDLを示す。 create table departments ( …

普通にActiveRecordしてみた

JRubyでActiveRecord使ったりしてみたけど、普通のRubyでも使ってみた。 とりあえず、RubyをDLしてきてインストール。 gem install railsを実行して一通りインストール gem postgres-prを実行してPostgreSQLにつなげるのに必要なものをゲット実験に使ったテ…

FizzBuzz問題再び

いろんな人が色んな方法で短く!とか書いてるけど自分でちょびっと書いてみた。 ほかの人がどうやってるのかは知らないけど、簡単に思いつく方法で書くとこう? a="Fizz";b="Buzz";puts (1..100).map{|i|i%15==0?a+b:i%3==0?a:i%5==0?b:i}.join(",")

Fizz-Buzz問題 どうしてプログラムが書けないの?

モトネタはここ!! どうしてプログラマに・・・プログラムが書けないのか?なんていうか、プログラム書けないのにプログラマ(SE)を名乗るな!って言いたくなってくる。 でも、現実を見てみると情報系の学科を出た人で、↑のサイトにある問題を解ける人はほ…

三人の学生の合計・平均・最高・最低点

ある掲示板でこんな質問があった。 学校で出された課題です。自分でいろいろやってみたのですが上手くいきません。条件分岐の問題です。 プログラム作成内容 A,B,Cの3人の学生のテストの点数を入力して、 ・3人の点数の合計 ・3人の点数の平均点 ・…

どれにしようか

今自分が使える言語は下にあるとおり。 C++ C# Ruby Java JavaScript 習熟度順に並べるとこんな感じかな。 C#, Java C++ Ruby, JavaScript 各言語に特徴があって向き不向きがあると思う。 LL系の言語に分類されるRubyやJavaScriptは、やりたいことをやりたい…

RDE on Vista

前に「RDEがVista上でうまいこと動かない - かずきのBlog@Hatena」を書いたけど、とりあえず動くようになった。 RDEのインストールフォルダにUsersに対してフルアクセスを許可。今のところ大丈夫。

RDEがVista上でうまいこと動かない

VistaにRubyを入れ込んだ。 開発環境は、RDE!! インストーラを落としてきてインストールしたが、各種設定ファイルをインストールフォルダ以下に書こうとするのでエラーが出てご丁寧に終了できなくなる。 Rubyの実行とかは問題ないけど、終了できないのは痛…

VimでRubyをするための設定

Windows PowerShell使ってたけど、サクラエディタをいちいち起動するのがめんどくさくなってきた。 なので、Vimを導入!! 香り屋 — KaoriYaからVimをダウンロード vimでrubyプログラミング S.S.S. blog/ウェブリブログでRuby用の設定 Route 477 - Vim覚え書…

メソッド内でアクセサメソッドを呼ぶ

こんなコードを動かすと class Hoge attr_accessor :val def set_val a val = a end end h = Hoge.new h.set_val 10 p h.val 結果は nilになる。 俺が思ってる感じだとset_valメソッド内でval=メソッドが呼ばれて@valに10が入っているだったんだけどなぁ。 s…

YAMLやってみよう

今まで名前は知ってるけど具体的な書き方は知らなかったYAML。 とりあえずやってみる。RubyでYAMLを読み込むのはすごい簡単にできる。 大体以下のような感じ require 'yaml' obj = YAML.load("a") p obj loadの引数に、YAMLの文字列かIOのオブジェクトを渡す…

ClassクラスとModuleクラス

クラスはClassクラスのインスタンス モジュールはModuleクラスのインスタンス って理解でOKかな?試しにこうしてみると module M puts self.name puts self.class end puts "===============" class C puts self.name puts self.class end こうなる M Module…

Moduleクラスと自前のクラスの違い??

ちょっとわからないことが出てきた。 class Module def hoge puts "Module::hoge" end end class MyClass hoge end これはModule::hogeと表示される。 class Base def moge puts "Base::moge" end end class Drived < Base moge end これはエラーになる。 Mo…

ブロック

ブロックって引数の最後に&つきの変数で受け取れるってことで実験。 class Button attr_accessor :text def initialize text self.text = text end def add_event &event @events = [] unless @events @events << event end def fire_event @events.each { |…

教え方

友達の一人にRubyを教えてる。 オブジェクト指向を教えるのはどうやろうかな・・・ name = "Tarou" pet_name = "Pochi" puts "Hello! My name is #{name}. My pet's name is #{pet_name}." を題材にしてみようかなぁ・・・書き直すとこんなん? class Person…