Sha256: 96d779e52850f54eab8734a5031db1ab31f1fbbddd53692a1125a57fc6762dc4

Contents?: true

Size: 1.14 KB

Versions: 12

Compression:

Stored size: 1.14 KB

Contents

module Groonga
  module ExpressionRewriters
    @rewriters = {}

    class << self
      def register(name, rewriter_class)
        @rewriters[name] = rewriter_class
      end

      def enabled?
        rewriters_table_name =
          Config["expression_rewriter.table"] || "expression_rewriters"
        rewriters_table = Context.instance[rewriters_table_name]
        return false if rewriters_table.nil?
        return false if rewriters_table.empty?

        true
      end

      def classes
        rewriters_table_name =
          Config["expression_rewriter.table"] || "expression_rewriters"
        rewriters_table = Context.instance[rewriters_table_name]
        return [] if rewriters_table.nil?

        rewriters_table.collect do |id|
          record = Record.new(rewriters_table, id)
          name = record.key
          rewriter = @rewriters[name]
          if rewriter.nil?
            plugin_name = record.plugin_name.value
            require plugin_name
            rewriter = @rewriters[name]
            raise "unknown rewriter: <#{name}>:<#{plugin_name}>" if rewriter.nil?
          end
          rewriter
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rroonga-7.1.1-x64-mingw32 vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb
rroonga-7.1.1-x86-mingw32 vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb
rroonga-7.0.2-x86-mingw32 vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb
rroonga-7.0.2-x64-mingw32 vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb
rroonga-6.1.3-x64-mingw32 vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb
rroonga-6.1.3-x86-mingw32 vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb
rroonga-6.1.0-x86-mingw32 vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb
rroonga-6.1.0-x64-mingw32 vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb
rroonga-6.0.9-x64-mingw32 vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb
rroonga-6.0.9-x86-mingw32 vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb
rroonga-6.0.7-x86-mingw32 vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb
rroonga-6.0.7-x64-mingw32 vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb