class GroongaSynonym::GroongaGenerator

Public Class Methods

new(source, term_column, synonyms_column, synonyms_column_is_vector: true, output: $stdout) click to toggle source
# File lib/groonga-synonym/groonga-generator.rb, line 20
def initialize(source,
               term_column,
               synonyms_column,
               synonyms_column_is_vector: true,
               output: $stdout)
  @source = source
  @term_column = term_column
  @synonyms_column = synonyms_column
  @synonyms_column_is_vector = synonyms_column_is_vector
  @output = output
end

Public Instance Methods

generate() click to toggle source
# File lib/groonga-synonym/groonga-generator.rb, line 32
def generate
  @output.print("[\n")
  @output.print([@term_column, @synonyms_column].to_json)
  @source.each do |term, synonyms|
    @output.print(",\n")
    record = [term]
    formatted_synonyms = synonyms.collect do |synonym|
      formatted_synonym = synonym.to_groonga
      unless @synonyms_column_is_vector
        formatted_synonym = "(#{formatted_synonym})"
      end
      formatted_synonym
    end
    if @synonyms_column_is_vector
      record << formatted_synonyms
    else
      record << formatted_synonyms.join(" OR ")
    end
    @output.print(record.to_json)
  end
  @output.print("\n]\n")
end