[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:1355

From: Sho Hashimoto <redmine@r...>
Date: Sat, 21 Feb 2009 16:29:33 +0900
Subject: [ruby-reference-manual:1355] [Feature #1188] doctreeの下にRakefileを置いてcerberusなどで常時コンパイルエラーをチェックできるようにしたい

Feature #1188: doctreeの下にRakefileを置いてcerberusなどで常時コンパイルエラーをチェックできるようにしたい
http://redmine.ruby-lang.org/issues/show/1188

起票者: Sho Hashimoto
ステータス: Open, 優先度: Normal

コンパイルエラーのチェックなどを常時やりたいと考えてます。先日私がコンパイルエラーのチェックをしたときには以下のRakefileを作成しました。

  require 'rake'
  require 'bitclust'
  
  module BitClust
    class RDCompiler
      attr_accessor :path
  
      private
  
      def protect(src)
        yield
      rescue => e
        raise "compile error: #{e.message} in #{self.path}"
      end
    end
  end
  
  desc "compile errorの有無を確認します"
  task "check:compile" do
    db_path = ENV["db_path"]
    version = ENV["version"] || "1.9.1"
    db = BitClust::MethodDatabase.new(db_path)
    umap = BitClust::URLMapper.new(:base_url => 'http://example.com',
                                   :cgi_url  => 'http://example.com/view')
    compiler = BitClust::RDCompiler.new(umap, 3, 1,
                                        {:force => true, :database => db})
    Dir.glob("refm/api/src/**/*") do |path|
      if !File.file?(path)
        next
      end
      compiler.path = path
      begin
        lib, = BitClust::RRDParser.parse(File.open(path), 'test',
                                         {"version" => version})
        lib.each_class do |c|
          c.entries.each do |e|
            compiler.compile(e.source)
          end
        end
      rescue BitClust::ParseError
        # TODO: このタスク中のincludeの処理が不完全なため、_builtin/ARGF
        # などincludeしてるファイルがチェックできていないのを修正する。
        # 今はBitClust::ParseErrorになるため、rescueして先に進んでいる。
      end
    end
  end

以下のようにコマンドを実行して使っています。(bitclustでdbを作っておかないとつかえません)

  $ rake check:compile version=1.9.1 db_path=/path/to/db-1_9_1

上記のRakefileをdoctreeの直下にコミットしたいと考えてるのですがどうでしょうか。

また、コミットが問題ない場合、Rakefile内のTODOの消化と実行の仕方をcerberusの実行に合わせる形で修正したいので方針を相談したいと考えています。

# cerberusはrakeを実行した時に"0 failures, 0 errors"という出力を期待してるようなので、今のままではダメなのでした。orz

Rakefile以外でも他の案などありましたら教えてください。


----------------------------------------
http://redmine.ruby-lang.org

--
ML: ruby-reference-manual@m...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

->    1355 2009-02-21 08:29 [redmine@r...        ] [Feature #1188] doctreeの下にRakefileを置いてcerberusなどで常時コンパイルエラーをチェックできるようにしたい
      1396 2009-04-18 16:32 ┗[redmine@r...        ]