ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

sbt + sublime text + ensimeでのプロジェクト作成〜debug

タイトル通りのことを行う為の手順についてです。
予めマシンにはscala、sbt、sublime text、ensimeと、sublimeにはensimeのための
プラグインがインストールしてあるものとします。

1.プロジェクト作成

1-1.プロジェクトのルートフォルダにて、以下のコマンドを実行する。

$ mkdir -p src/main/scala

1-2.build.sbtを作成する。
ルートフォルダ直下に、build.sbtを作成し、以下のように記述する。

lazy val root = (project in file(".")).
  settings(
    name := "sample-app",
    version := "1.0",
    scalaVersion := "2.10.4"
  )

ここまでで以下のようなフォルダ構成になればOK。

$ tree
.
├── build.sbt
└── src
    └── main
        └── scala

1-3.mainの作成
scalaフォルダの中に、mainを作成する。
試しにこんな感じでつくった。

object Startup{
  def main(args: Array[String]) :Unit = {
    val a = "aaa"
    val b = "bbb"
    val c = a + b
    println(c)
  }
}

1-4.コンパイル
以下のコマンドでコンパイルする。

$ sbt compile

1-5.実行
以下のコマンドで実行する。

$ sbt run

2.ensimeでのデバッグ

2-1.sbtでの.ensimeファイルの作成
sbtのコンソールで、以下のコマンドを実行する。


$ sbt
> ensime generate

2-2.ensime serverの起動
sublime textより、ensime serverを起動する。

[右クリック] - [Ensime] - [Maintenance] - [Startup]

2-3.ブレークポイントの指定

ブレークポイントを設定したい行を選択し、[右クリック] - [Ensime] - [Debugging] - [Toggle breakpoint]。
ブレークポイントは、mainメソッドの一行目では上手くいかなかった・・・

2-4.実行
[右クリック] - [Ensime] - [Debugging] - [Start debugger]

3.外部jarの追加

上記まででdebugまでは終わりだが、ついでに参照するjarを配置してdebugする手順を書いておきます。

3-1.jarの配置
プロジェクト直下にlibフォルダを作成し、jarを配置する。(sbtのアンマネージド管理の場合)

3-2. .ensimeファイルの再作成
以下のコマンドで.ensimeファイルを再作成する。

$ sbt
> ensime generate


参考サイト
【Scala初心者向け】sbtを触ってみよう! | キャスレーコンサルティング 技術ブログ
最強!?Ensimeを利用したSublime Text3のScala開発環境(playでもliftでも) - Qiita

bundle gem が便利な件

gemを作るときのコマンドであるbundle gemについてです。
以下のようなコマンドを実行すると、gemを作るための雛形をRSpecも含めて
作ってくれます。

$ bundle gem gem-sample -t

作られるファイルの構成は、以下の通りです。

      create  gem-sample/Gemfile
      create  gem-sample/Rakefile
      create  gem-sample/LICENSE.txt
      create  gem-sample/README.md
      create  gem-sample/.gitignore
      create  gem-sample/gem-sample.gemspec
      create  gem-sample/lib/gem/sample.rb
      create  gem-sample/lib/gem/sample/version.rb
      create  gem-sample/.rspec
      create  gem-sample/spec/spec_helper.rb
      create  gem-sample/spec/gem/sample_spec.rb
      create  gem-sample/.travis.yml

何が便利なのかと言うと
・libフォルダの中にロジックを記述するファイルを作ってくれる(上記ではsample.rb)
・それをテストするためのRSpecを、spec_helper込みで実行可能な状態で作ってくれる
・その他、Gemfile・README.mdなど必要なファイルを作ってくれる
あたりでしょうか。

本来はgemを作るためのコマンドですが、RSpecを含んだサンプルソースを作る場合にも便利だと思います。

この場合は
・.gemspecはgemとして公開する場合の情報を記述するファイルなので削除する
・Gemfileから「gemspec」の記述を削除する
ことが必要です。(やらなくても動きはしますが・・・)

本来の目的ではないコマンドの使い方かもしれませんが、便利だと思ったので載せておきます。

Pryの便利なコマンド(1)

タイトル通り、Pryを使うときに便利だと思ったコマンドです。
Ruby2系のpry-byebugでのみ確認しています。

・!!!、exit!
処理をその場で終了させる。

・find-method メソッド
メソッドを探す。

・show-source クラス名#メソッド
指定したクラス、メソッドのソースを表示する。
クラスのみ、メソッドのみの指定も可。
引数なしだと、現在止まっている所?を表示するようだ。
(もしかしたらbinding.pryしたところかも)

コマンドやメソッド名はTabキーで入力補完できました。

以下、参考サイトです。ありがとうございました。
binding.pryでループ内にブレイクポイント仕掛けるとだるいことになる | もふもふ技術部
Ruby デバッガー binding.pry - のんびりしているエンジニアの日記

JRubyでのデバッグ

タイトル通り、JRubyを使う場合のデバッグについてです。(あくまでCUIデバッグする場合)
CRubyの時に使っていた「pry-byebug」は使えないようなので、代わりに以下をGemfileに書いて$ bundle installします。

・pry
・pry-nav

後はブレークポイントとしてい所に「binding.pry」と書けば、デバッグできます。
ショートカットキーは「pry-debugger」(byebugの間違いではない)と同様、.pryrcをローカルに用意することになります。

簡単ですが、以上です。

RubyMineからRailsプロジェクトのデータベースを見る

タイトル通り、RubyMineからRailsプロジェクトで使用する
データーベースを見る手順です。

1.DataBaseウィンドウを表示する
メニューバーより、以下を選択する。
・[View] - [Tool Windows] - [Database]

2.データベースに接続する
MySQLの場合は、DataBaseウィンドウで
以下の作業を行わないとデフォルトでは接続されませんでした。

・データベースを右クリック - [Data Source Properties]
・「Data Sources and Drivers」ウィンドウが表示される。
・右下の[Auto sync]をチェックし、[OK]ボタンを押下する。


簡単ですが、プロジェクト毎に行う作業となると思うので
備忘録として残しておきます。

OS X MavericksにRails環境を作る

タイトル通り、OS X MavericksにRails環境を作りました。
が、CommandLineToolsのインストールなどで
Marvericksで手順が変わった所があり
イロイロなサイトから情報をかき集めての作業となりました。

なので、今回行った作業手順と参考サイトを纏めて
メモ代わりに残しておきます。

1.Javaをインストール

Javaのバージョンを確認する以下のコマンドを実行すると
Javaが入っていない場合は、インストールするダイアログが表示されます。

$ java -version

2.CommandLineToolsのインストール

以下のコマンドを実行すると、ダイアログが表示されるので
「インストール」をクリックします。

$ xcode-select --install

3.HomeBrewのインストール

以下のコマンドを実行します。

$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

インストールが終わったら、バージョンを確認してみます。

$ brew -v

4.rbenvとruby-buildをインストール

以下のコマンドを実行します。


$ brew update

$ brew install rbenv

$ brew install ruby-build

5.パスを通す

以下のコマンドを実行します。

$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

6.利用可能なRubyを一覧表示する

以下のコマンドを実行します。

$ rbenv install -l

7.Rubyのインストール

以下のコマンドで、任意のRubyをインストールします。

$ rbenv install 任意のバージョン

インストールしたRubyを、使用するRubyのバージョンとして登録します。

$ rbenv global 任意のバージョン

ここでマシンを再起動しないと、ruby -v でバージョンを確認した際に
指定していないバージョン(プレインストール済みのもの?)が表示されました。

再起動後、Rubyのバージョンを確認します。

$ ruby -v

8.Railsのインストール

以下のコマンドを実行します。

$ gem update

が、私が行った時には以下のエラーとなりました。
「bad response Service Unavailable 503」
どうもアクセス先がエラーなのが原因っぽいです。
時間を空けて、再度実行すると、無事に完了しました。

次にRailsのインストールです。

$ gem install rails

最後に、以下のコマンドを実行します。

$ rbenv rehash


以上です。

参考サイト
http://qiita.com/b4b4r07/items/6efebc2f3d1cbbd393fc
http://blog.youria.jp/kyo/osx/install_commandlinetools_into_mavericks/
http://hotwebtopics.seesaa.net/article/363130989.html
http://tools4hack.santalab.me/howto-mountainlion-install-homebrew.html
http://qiita.com/ryo0301/items/3c9a02e03b4e9a41f576

GitHub for Windows リポジトリを別アカウントに移動する

タイトル通り、GitHub for Windowsを使い
リポジトリを別のアカウントに移動する手順についてです。

リポジトリをそのまま移動するメリットは、タグや履歴なども
同時に移動されることです。

Gitレポジトリを移行する方法 - tanacasinoのメモ
を参考にしましたが、GitHub for Windowsを使い
リポジトリを別アカウントに移す方法について書きます。

0.(移動先のアカウントを作っておく)

1.移行元のアカウントに接続

2.移行するリポジトリをClone

3.移行先のリポジトリを作成
ブラウザにて移行先のGitHubアカウントを開き
[Repository]タグ-[New]でリポジトリを作る。

4.移行先のアカウントに接続

5.PowerShell起動
GitHub for Windowsで、移動したいリポジトリを右クリックし
PowerShellを起動する。

6.リポジトリの移動
以下のコマンドをPowerShellで実行し、リポジトリを移動する。
$ git push --mirror https://github.com/アカウント名/リポジトリ

以上です。