2014年7月12日土曜日

Seasar2

Seasar2の動きを今更ながら少し調べてみた。
  • 同一diconファイル内に、同じインターフェースを実装した複数クラスをname指定なしで登録して、Containerから取得しようとするとエラー。
  • diconファイルを分けると取得できる。最初に読み込まれたファイルに設定しているクラスが取得できる。(同じnameをつけている場合も同じ挙動)
  • diconファイルを使わずに、componentの自動登録でも同一インターフェースの複数クラスは登録、nameを指定しての取得ができる。

2014年7月5日土曜日

STSで作成したプロジェクトをeclipseのwtpで起動

STSで作成したspring webプロジェクトをeclipseのwtpを使ってtomcat起動
  1. まず、プロジェクトの設定から、ProjectFacetsで、DynamicWebModuleに変換、Versionは2.5にした。
  2. DeploymentAssemblyで、src/main/webapp を追加。
  3. src/main/webapp配下のwet.xmlのweb-appタグの、schemaLocationとversionが2.5でであることを確認。(違うとエラーになる)

「2.5」はServletのバージョン。
http://moruho.cocolog-nifty.com/blog/2010/10/tomcatservletjs.html

2013年9月8日日曜日

Rspec + Capybara でNoMethodError

実行するとこんなエラーがでる。

NoMethodError:
       undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x00000004522160>

spec/spec_helper.rb
に以下を追記するとうまくいった.

config.include Capybara::DSL

そのままだけど、
capybaraのDSLをincludeする必要があるらしい。

※DSL = Domain Specific Language(ドメイン固有言語)

Ruby on Rails その2

rails consoleコマンドが動かない。。

#rails console
/root/.rbenv/versions/1.9.3-p448/lib/ruby/1.9.1/irb/completion.rb:9:in `require': cannot load such file -- readline (LoadError)
        from /root/.rbenv/versions/1.9.3-p448/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>'

どうやら、readlineライブラリ見つからないらしい。。。
rubyに標準で含まれるライブラリっぽいので、rubyを再インストールしてみる。

#rbenv install 1.9.3-p448

だめだった。。。


Gemfileに以下を追加して、
gem 'rb-readline'

#bundle install

すると、
Installing rb-readline (0.5.0)
おっ、インストールされたっぽい。

#rails console

Loading development environment (Rails 3.2.14)
/root/.rbenv/versions/1.9.3-p448/lib/ruby/1.9.1/irb/input-method.rb:113:in `gets': uninitialized constant IRB::ReadlineInputMethod::Readline (NameError)
        from /root/.rbenv/versions/1.9.3-p448/lib/ruby/1.9.1/irb.rb:139:in `block (2 levels) in eval_input'


ぐぐったら、rubyインストール時に、redline-develがないとだめらしい。

#yum install readline-devel.x86_64

i686(32bit)とx86_64(64bit)用がある

一度アンインストールしてから、再インストールしてみる。
#gem uninstall rb-readline
#bundle install

Loading development environment (Rails 3.2.14)
/root/.rbenv/versions/1.9.3-p448/lib/ruby/1.9.1/irb/input-method.rb:113:in `gets': uninitialized constant IRB::ReadlineInputMethod::Readline (NameError)
        from /root/.rbenv/versions/1.9.3-p448/lib/ruby/1.9.1/irb.rb:139:in `block (2 levels) in eval_input'
同じでした。。。

#gem uninstall rb-readline
してから、rubyを再々インストール
#rbenv install 1.9.3-p448

うまくいった!


2013年9月1日日曜日

centos6.4にRuby on Rails をインストール

複数バージョンのrubyを扱えるrbenvを使ってみる。


以下のサイトを参考にインストール

http://www.oiax.jp/rails/zakkan/rails_3_2_installation_on_ubuntu.html
http://tsuchikazu.net/linux_ruby_on_rails_install/

必要なパッケージは、とりあえずg++のみインストール
yum install gcc-c++

g++はc,c++のコンパイラらしい

rubyで開発するにあたって、
  • rbenv ・・・rubyのバージョンを管理する
  • bundler ・・・gemをプロジェクトごとに管理する(gemを管理するけど、gemコマンドでインストールする)
は必要なものらしい。。。

railsには、SQLiteが必要らしい。
SQLite自体はすでに入っていたので、develをインストール
yum install sqlite-devel

develファイルは、開発に必要なライブラリオブジェクトやヘッダファイル(lib***.soや***.h)が含まれているもの。コンパイルに必要らしい

ruby on railsの参考サイト

2013年6月11日火曜日

ubuntu12.04にPassengerをインストールする

passengerをインストールする。
$sudo gem install passenger
$sudo passenger-install-apache2-module

apache2の設定

・mods-available/mod_passenger.load

LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.5/libout/apache2/mod_passenger.so

・mods-available/mod_passenger.conf
PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.5
PassengerDefaultRuby /usr/bin/ruby1.9.1
RailsBaseURI /redmine

mods-enabled/ にリンクを作成する。
ln -s ../mods-available/mod_passenger.load mod_passenger.load
ln -s ../mods-available/mod_passenger.conf mod_passenger.conf

DocumentRootの設定はすでに設定済みなので、DocumentRoot配下にリンクを作成する。
ln -s /var/lib/redmine-2.3.1/public /var/www/redmine

apacheを再起動
sudo /etc/init.d/apache2 restart

http:/{address}/redmine/
で表示された。

webrickよりさくさく動く。

2013年5月26日日曜日

redmine2.3.1をubuntu12.04へインストール


まず、redmineをwgetで取得。
wget http://rubyforge.org/frs/download.php/76933/redmine-2.3.1.tar.gz

解凍
tar zxvf redmine-2.3.1.tar.gz

適当にディレクトリ移動
sudo mv redmine-2.3.1/ /var/lib/

/var/lib/redmine-2.3.1/config/へ移動して、
exampleを参考にしてdatabase.ymlを設定。

mysql5.5はすでにインストール済みなので、redmineで使用するdbとuserを作成しておく。

/var/lib/redmine-2.3.1 で
bundle install --without development test postgresql sqlite
(bundlerはrubygemsのラッパーらしい、プロジェクト毎にgem(rubyのライブラリ)を管理できるらしい)


エラーが、、Can't install RMagick 2.13.1. Can't find Magick-config
imagemagickはubuntuにインストール済みだが、rmagickをインストールする必要があるらしい。

仕方がないので、aptでインストール。
sudo apt-cache search imagemagick (検索)
sudo apt-get install librmagick-ruby1.8(インストール)

もう一度やってみる。
sudo bundle install --without development test postgresql sqlite
あれっ、Installing rmagick(2.13.2)
のところで同じエラーが・・・

rmagicインストール済みなので、rmagickをinstallしない様にする。
bundle install --without development test postgresql sqlite rmagick


rake generate_secret_token
rakeはビルドファイルをrubyで書いたAntみたいなものらしい。


テーブル作成
RAILS_ENV=production rake db:migrate

データ投入
RAILS_ENV=production rake redmine:load_default_data

Webrick起動
ruby script/rails server webrick -e production
webrickはrubyで書かれたhttpサーバらしい。

admin/adminでログインできた!