ページ

2012年10月16日火曜日

gemで実行ファイルがインストールされなくてハマった

ざくにく定食: BundlerでGem作って公開、アップデートまで
で書いたような、Bundlerで生成したファイルの中から必要な分だけを既存のディレクトリに突っ込んで、rake build とrake installしてもbin以下にある実行ファイルがコマンドとしてインストールされなかった。

散々悩んだが、gemspecを見ていて原因がわかった。
gem.files = `git ls-files`.split($\)
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
git ls-filesの結果を使っているが、bin以下をまだgit addしていなかった。
git addしてから改めてやってみたらいけた。

2012年9月17日月曜日

MobiRubyでhello world

% gem install xcodeproj
% gem install nokogiri
% git clone https://github.com/mobiruby/mobiruby-ios.git
% cd mobiruby-ios
% sh setup.sh
% open mobiruby-ios.xcodeproj

で、XcodeでRunしてみるとビルドエラーが出た。

RVMのgemでインストールしてたせいだった。

% rvm system
してからgemを入れ直す
% sudo gem install xcodeproj
% sudo gem install nokogiri

で、あらためてRun。動いた。



後でREADME見なおしてみたら最初からこうなってた。この通りにやればよかった。
% sudo /usr/bin/gem install xcodeproj
% sudo /usr/bin/gem install nokogiri

参考: mobiruby/mobiruby-ios

2012年9月15日土曜日

brew updateでコケた

% brew update
error: The following untracked working tree files would be overwritten by merge:
Library/Formula/argp-standalone.rb
Please move or remove them before you can merge.
Aborting
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

以下で直った。

% cd `brew --prefix`
% git fetch origin
% git reset --hard origin/master
% brew update

参考: homebrewのupdateが失敗した時 - まめ畑

2012年9月9日日曜日

ctags使おうとしたらハマった

ctagsを使ったことがなかったので、とりあえず使ってみようとしたらハマった。
% ctags -R
すると
ctags: no input files specified.
Try `ctags --help' for a complete list of options.
って頑に言われる。

ひとまず言われた通り ctags --help してみると
-Rオプションのところに
-R, --no-regex
Don't create tags from regexps for the following files.
とか書いてある。なんかおかしい。

ctags --versionしてみると
ctags (GNU Emacs 24.1)
Copyright (C) 2012 Free Software Foundation, Inc.
This program is distributed under the terms in ETAGS.README

なんか違う。
前にhomebrewでemacs24入れたりしたときにおかしくなったのだろうか。

ともあれ、コレジャナイので入れ直す。
% brew install ctags

Error: The linking step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link ctags'
とか言われたので、言われた通りにする。
% brew link ctags

できたようなのであらためて
% ctags -R

ちゃんとtagsファイル出来た。

2012年7月22日日曜日

[Mac]Scalaで日本語使う

日本語を出力しようとしたら文字化けした。

JAVA_TOOL_OPTIONS='-Dfile.encoding=UTF8' をつけて実行すれば文字化けしない。
% JAVA_TOOL_OPTIONS='-Dfile.encoding=UTF8' scala hoge.scala

.zshrcに以下を追加。
export JAVA_OPTS="-Dfile.encoding=UTF-8"
REPLでも日本語使えるようになるけど、書いて消すとズレたりするありがちな感じになる。

参考: Scala, Mac and -Dfile.encoding=UTF-8 - Kato Kazuyoshi

2012年7月16日月曜日

Sinatraの自動リロード

2012/7/16 10:00 指摘によりsinatra-contribを使う旨を追記&修正

未だにshotgun使ってた。

参考:
モノクロームの中: sinatra (2) - オートリロード -
Sinatra::Reloader (part of Sinatra::Contrib)

gemをインストール
% gem install sinatra-contrib

Classicスタイル
require "sinatra"
require "sinatra/reloader" if development?

Modularスタイル
require "sinatra/base"
require "sinatra/reloader"

class MyApp < Sinatra::Base
  configure :development do
    register Sinatra::Reloader
  end
end
developmentモードで起動したときに有効になる。(デフォルトでdevelopmentモード)

ところでrackup -E で設定できるのってdevelopmentとtestとproductionだけで合ってるんだろうか。ハッキリとこれです!って言ってるのが見つけられなかった。


あと、Bundler使うパターン

Gemfileがこう
source :rubygems

gem 'sinatra', require: 'sinatra/base'

group :development do
  gem 'sinatra-contrib', require: 'sinatra/reloader'
end
で、本体のほうがこう
class App < Sinatra::Base
  configure :development do
    Bundler.require :development
    register Sinatra::Reloader
  end
end
bundle exec rackupで起動しよう。

ファイル単位でもリロードの設定を変えられるようだ。
http://www.sinatrarb.com/contrib/reloader


今回の、shokaiさんはいつからやっていた?は2年と3ヶ月前でした。
sinatra開発時に自動リロードする - 橋本詳解

2012年6月29日金曜日

Playをインストール & Play Scala動かす

最近は仕事とかいうものにかまけていたせいでブログを書いてなかった。

% brew search play
したらplay出てきたけど、こういう一般的な言葉が名前だと合ってるのか不安極まりない。

% brew info play

play 2.0
http://www.playframework.org/
Not installed
https://github.com/mxcl/homebrew/commits/master/Library/Formula/play.rb

どうやら合っているようなのでインストールする。

% brew install play

なかなかの重量級なようでダウンロードにも時間がかかった。

と思ったらインストールが終わってた。ディレクトリを移動しただけだったようだ。


とりあえずJavaには興味がないのでScalaのプロジェクト作る
% play new calas --with scala
そしたらなんか聞かれた
What is the application name?
> calas
え?calasって言ったじゃないですか。ご丁寧にデフォルトでcalasって入ってるし。

まあプロジェクト名とアプリ名は違うこともあるか。しょうがないしょうがない。

Which template do you want to use for this new application?

1 - Create a simple Scala application
2 - Create a simple Java application
3 - Create an empty project

>
え?Scalaでって言ったじゃないですか。しかも今度はデフォルト入ってないし。
1番を選択。(2番だとどうなるんだろう)

できたら動かす
% cd calas
% play run
やけに時間がかかった。初回の初回だからか?

ポート9000で動いているようなのでlocalhost:9000にアクセス。
Playの公式サイトと同じような画面が表示される。

これはしかしなかなかの全部入り感でいじるにはちょっと萎えますね。
3番選ぶとよかったのかな。