qr_img.php & PHP5.3でエラー
qr_img.phpをPHP5.3で動かしたら壊れた画像が出力された。
ログを見てみると
PHP Deprecated: Function ereg() is deprecated in 〜
とあった。どうも5.3からeregは非推奨らしい。
とりあえず、qr_img.phpのL.127とL.128のエラーを抑制して回避
if (@ereg("[^0-9]",$qrcode_data_string)){ if (@ereg("[^0-9A-Z \$\*\%\+\-\.\/\:]",$qrcode_data_string)) {
rspec & cucumber & spork でBDD環境を構築する
環境:Mac Snow Leopard (rubyはportでインストール済み)
- Railsをインストール
sudo gem install rails
- テスト関連をインストール
sudo gem install rspec rspec-rails ZenTest autotest-rails redgreen diff-lcs cucumber webrat mocha
- sporkをインストール
sudo gem install spork
- プロジェクト作成
rails [project-name] -d mysql
- cd
cd [project-name]
- rspec用ファイル生成
ruby script/generate rspec
- cucumber用ファイル生成
ruby script/generate cucumber
- sporkのbootstrap (rspec)
spork rspec --bootstrap
- /spec/spec_helper.rbを編集
require 'rubygems' require 'spork' Spork.prefork do # Loading more in this block will cause your tests to run faster. However, # if you change any configuration or code from libraries loaded here, you'll # need to restart spork for it take effect. # This file is copied to ~/spec when you run 'ruby script/generate rspec' # from the project root directory. ENV["RAILS_ENV"] ||= 'test' require File.expand_path(File.join(File.dirname(__FILE__),'..','config','environment')) require 'spec/autorun' require 'spec/rails' # Uncomment the next line to use webrat's matchers #require 'webrat/integrations/rspec-rails' # Requires supporting files with custom matchers and macros, etc, # in ./support/ and its subdirectories. Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f| require f} Spec::Runner.configure do |config| # If you're not using ActiveRecord you should remove these # lines, delete config/database.yml and disable :active_record # in your config/boot.rb config.use_transactional_fixtures = true config.use_instantiated_fixtures = false config.fixture_path = RAILS_ROOT + '/spec/fixtures/' # == Fixtures # # You can declare fixtures for each example_group like this: # describe "...." do # fixtures :table_a, :table_b # # Alternatively, if you prefer to declare them only once, you can # do so right here. Just uncomment the next line and replace the fixture # names with your fixtures. # # config.global_fixtures = :table_a, :table_b # # If you declare global fixtures, be aware that they will be declared # for all of your examples, even those that don't use them. # # You can also declare which fixtures to use (for example fixtures for test/fixtures): # # config.fixture_path = RAILS_ROOT + '/spec/fixtures/' # # == Mock Framework # # RSpec uses it's own mocking framework by default. If you prefer to # use mocha, flexmock or RR, uncomment the appropriate line: # config.mock_with :mocha # config.mock_with :flexmock # config.mock_with :rr # # == Notes # # For more information take a look at Spec::Runner::Configuration and Spec::Runner end end Spork.each_run do # This code will be run each time you run your specs. end # --- Instructions --- # - Sort through your spec_helper file. Place as much environment loading # code that you don't normally modify during development in the # Spork.prefork block. # - Place the rest under Spork.each_run block # - Any code that is left outside of the blocks will be ran during preforking # and during each_run! # - These instructions should self-destruct in 10 seconds. If they don't, # feel free to delete them. #
- sporkのbootstrap (cucumber)
spork cucumber --bootstrap
- /features/support/env.rbの編集
require 'rubygems' require 'spork' Spork.prefork do # Loading more in this block will cause your tests to run faster. However, # if you change any configuration or code from libraries loaded here, you'll # need to restart spork for it take effect. # IMPORTANT: This file was generated by Cucumber 0.4.3 # Edit at your own peril - it's recommended to regenerate this file # in the future when you upgrade to a newer version of Cucumber. # Consider adding your own code to a new file instead of editing this one. # Sets up the Rails environment for Cucumber ENV["RAILS_ENV"] ||= "cucumber" require File.expand_path(File.dirname(__FILE__) + '/../../config/environment') require 'cucumber/rails/world' # If you set this to true, each scenario will run in a database transaction. # You can still turn off transactions on a per-scenario basis, simply tagging # a feature or scenario with the @no-txn tag. # # If you set this to false, transactions will be off for all scenarios, # regardless of whether you use @no-txn or not. # # Beware that turning transactions off will leave data in your database # after each scenario, which can lead to hard-to-debug failures in # subsequent scenarios. If you do this, we recommend you create a Before # block that will explicitly put your database in a known state. Cucumber::Rails::World.use_transactional_fixtures = true # If you set this to false, any error raised from within your app will bubble # up to your step definition and out to cucumber unless you catch it somewhere # on the way. You can make Rails rescue errors and render error pages on a # per-scenario basis by tagging a scenario or feature with the @allow-rescue tag. # # If you set this to true, Rails will rescue all errors and render error # pages, more or less in the same way your application would behave in the # default production environment. It's not recommended to do this for all # of your scenarios, as this makes it hard to discover errors in your application. ActionController::Base.allow_rescue = false require 'cucumber' # Comment out the next line if you don't want Cucumber Unicode support require 'cucumber/formatter/unicode' require 'cucumber/webrat/element_locator' # Lets you do table.diff!(element_at('#my_table_or_dl_or_ul_or_ol').to_table) require 'cucumber/rails/rspec' require 'webrat' require 'webrat/core/matchers' Webrat.configure do |config| config.mode = :rails config.open_error_files = false # Set to true if you want error pages to pop up in the browser end end Spork.each_run do # This code will be run each time you run your specs. end # --- Instructions --- # - Sort through your spec_helper file. Place as much environment loading # code that you don't normally modify during development in the # Spork.prefork block. # - Place the rest under Spork.each_run block # - Any code that is left outside of the blocks will be ran during preforking # and during each_run! # - These instructions should self-destruct in 10 seconds. If they don't, # feel free to delete them. #
- spork起動
spork rspec & ; spork cucumber &
- autospec起動
AUTOFEATURE=true autospec
RailsプロジェクトをSVNで管理するときのセットアップ
- SVNにimport
cd <project root> svn import -m "initial import" . <url>
- いまimportしたものをcheckout
cd ../ svn co <url> <project name>
- ログファイルを削除
cd <project name> svn rm log/*
- index.htmlを削除
svn rm public/index.html
- svn:ignoreをセット
svn propset -R svn:ignore "*" log svn propset -R svn:ignore "*" tmp
- commit
svn ci -m "initial setting"