mibros.hatena

みぶのはてないぶろぐ

windows環境にゼロからRuby環境をセットアップ する話その2

というわけで探していたら、かなり理想に近いものを見つけました。

Rumix2 http://ruby.morphball.net/rumix/

Ruby本体 ・Rubyリファレンスマニュアル ・devkit ・ckw コマンドプロンプトを使いやすくしたソフト。独自?

これらを一括でインストールできるのである。 個人的に特に良いなと思ったのがUSB Rumix版。 zipファイルを展開するだけで使えるようになる。文字通りUSBに入れておけば、どのPCでも使えるし、USBに入れなくても、DropBoxのようなクラウド型のファイル共有サービスを利用すれば、どのPCからでも同じ環境が使えたりするかもしれない。試してないので動くかわからないですが。再セットアップの手間が省けるというのはとても便利に思います。

これにテキストエディタがついてくれば、Ruby環境構築のパッケージとしては最強クラスな気がしてきた。自分でも何か作れそうか模索してみようそうしよう。

みぶ氏はRubyを応援しています。

windows環境にゼロからRuby環境をセットアップ する話

素のwindowsrubyの開発環境を整えるにはどういう方法が簡単だろうか?というのを考えたときに元々サーバー構築なんかをやっていてrubyも覚えたいなという人にはvagrantがいいのだけど、windowsオンリーな人には敷居が高い。であればrubyinstallerでいいじゃないか。というとそうは問屋がおろさない、というかおろさせない。そこをもう一歩踏み込んでいきたい。実際問題、rubyだけ入れてもプログラム開発には不十分だったりする。railsinstallerはもう一歩踏み込んでいて、rubyrailsの他にも、ソースの管理ツールであるgitや、railsがアクセスするデータベースとして、sqliteなんかも合わせて入れてくれたりする。じゃあこれでいいじゃない。というとそうは問屋がおろさない。おろす一歩手前に立ちはだかり、問屋を上手投げに投げ飛ばしたい。そこももう一歩踏み込んでいけないだろうか?というところで、思い立ったが吉日とばかりに目下調査中であります。

みぶ氏はRubyを応援しています。

rails 勉強4日目 railsのアップグレードについて

おひさしグランプリでございます。 書籍本編の学習とずれているのだけど、個人的に気になっていたことを少し調べました。

書籍で進めているバージョンはrailsは4.1系で、世の中の最新版railsは4.2系。 これがどのくらい違うもんなんだろうかとググってみると、ちゃんとRailsガイドのサイトにまとまってました。ありがたや。

http://railsguides.jp/upgrading_ruby_on_rails.html http://railsguides.jp/4_2_release_notes.html

気になるリストは以下

Web Console gem

デバッグが捗りそうな気配。

Active Job

いずれ使う日が来るかもしれない。 非同期で処理する系が必要になってきたらちゃんと調べる。

外部キーのサポート

4.1系だとgemを入れないといけなかったのが気になってた。

ちょいちょい出てくる非推奨や削除されたメソッドの話

非推奨系の処理って何か警告とかでたりするんだろうか。 削除されたメソッドを検出するのは普通にgrep? アップグレードする日がきたら、調べよう。

マイナーバージョンアップなので、多分それほど苦も無くアップグレード できそうだけど、特にアップグレードする理由もないのでしばらく放置決定。

Rubyのバージョンも2.1系だったりするので、そっちはまたあとで調べよう。

みぶ氏はRubyを応援しています。

 

rails勉強 3日目 今までのおさらい。

別のrailsを試しに作ってみたけど、まあつまずくつまずく。

vagrant環境は一通り問題なく動いたけど、rails newとかのコマンド関連から始まり、database.ymlとか、application.rbのtimezoneとかspringとかちょいちょい忘れかけていて勉強メモを補強しまくり。

あと、以前書いたメモが微妙に情報不足で意味がわからなくなってたり。 みぶ氏の性能だと、チャプター3つぐらい進んだら復習しないと身についていかないですね。人に何かを教える前にまず自分に教えることができていない疑惑。

コツコツやっていこう。千里の道も一歩より。そんなおおげさではないか、500ページの道も1ページより。

 

gemは素晴らしい件

gemというのはRubyのライブラリのことである。

gemはインターネット上(https://rubygems.org/)に公開されていて、Rubyプログラマは好きなgemを探しては、自分の環境にインストールすることができる。

今日現在で登録されているgemの数なんと109,587。 自分で作るよりgemを探したほうが早いのか、gemを探すより自分で作った方が早いのかも、もはやわからないレベルの数である。

で、単に利用するだけでなくソースコードGitHubに公開されていて、作ったコードをちら見というかもろ見することができる。

これが結構面白くて、他人の書いたコードを見てみると自分が使ってないメソッドとかイディオムとかの発見があり、大変刺激をもらえるのである。

Rubyの語彙力というか幅を広げる一つの手段として、書籍はもちろんのこと、生きたコードを見るのも大変有用ですよね。と改めて思った次第。

 

present?のダークサイド

前回のエントリでpresent?メソッドがわりと好きな話をしましたが、このメソッドには負の側面もあってそれは、Objectクラスのモンキーパッチとして定義されている点。

Objectクラスは、Rubyの中で最も頂点に立つ存在のクラスで、あらゆるクラスはこのクラスに属する。ということは、全てのクラスにおいてpresent?メソッドが適用されるので、よく知らずに自前で作ったクラスの自前のpresent?メソッドなんかを作ると呼び出し側に乱世が訪れたりする。

activesupport説明ページを参照すると、present?があるObjectクラス以外にも、ArrayとかHashとかDateとか結構あるので、モンキーパッチを施したオレオレライブラリをrailsに取り込む場合は、正面衝突してないかは要チェックである。というか他のgemを取り込んだ時も挙動に注意しないといけない気がしてきた。railsに取り込まれる前提のgemかどうかさくっと判断つけばいいけど、今のところそんな素敵なものは無かった。知っている人いたらぜひこちらまで連絡いただきたい。

ちなみに、EffectiveRuby先生によるとモンキーパッチ使う前にRefinementsで代用できないか検討しましょう。とのことでした。詳しくは書籍を購入されたし。

[amazonjs asin="4798139823" locale="JP" title="Effective Ruby"]

rails勉強 2日目 present?とか地味に好きな話。

引き続き、コツコツ勉強しています。ようやくチャプター9。

[amazonjs asin="4844335928" locale="JP" title="実践Ruby on Rails 4 現場のプロから学ぶ本格Webプログラミング"]

で、何気なく使われているpresent?ってメソッドが地味にいいなと思ってたりします。

どんなものかっていうと、中身が入っているかどうかを判定するメソッドです。ただそれだけ。だがそれがいい

気になって調べたら詳細な仕様はここに書いてありました。

http://railsguides.jp/active_support_core_extensions.html#blank-questionmark%E3%81%A8present-questionmark

仕様にもある通り、blank?の反対を意味するメソッドなので、!blankと書けばよかったりするんですが、あえてpresentというメソッドを追加することで、unlessとか!の使用頻度を下げてソースの可読性を挙げてるんだと思います。たぶん。

否定形って難しいですからね。例えば日本語の会話でも否定形使うとわかりづらいですよね。「アタイあんたのこと、好きな気がしないでもない。」みたいな。

そんなセリフ聞いたことないですが、それは置いておいてちょっとした工夫を加えるだけで効果があがるというメソッドとしてみぶ氏は感銘を受けたのです。

ちなみに、presentて「存在している」という意味もあるんですね。っていう英語力のなさからくる感動も相まってみぶ氏の心にグサッと刺さったのであります。