class GroongaSynonym::PGroongaGenerator
Public Class Methods
new(source, table, term_column, synonyms_column, output: $stdout)
click to toggle source
# File lib/groonga-synonym/pgroonga-generator.rb, line 20 def initialize(source, table, term_column, synonyms_column, output: $stdout) @source = source @table = table @term_column = term_column @synonyms_column = synonyms_column @output = output end
Public Instance Methods
generate()
click to toggle source
# File lib/groonga-synonym/pgroonga-generator.rb, line 32 def generate @output.print("INSERT INTO #{@table} ") @output.print("(#{@term_column}, #{@synonyms_column}) ") @output.print("VALUES") i = 0 @source.each do |term, synonyms| i += 1 @output.print(",") unless i == 1 @output.print("\n") formatted_synonyms = synonyms.collect do |synonym| escape(synonym.to_groonga) end @output.print(" (#{escape(term)}, ARRAY[") @output.print(formatted_synonyms.join(", ")) @output.print("])") end @output.print(";\n") end
Private Instance Methods
escape(string)
click to toggle source
# File lib/groonga-synonym/pgroonga-generator.rb, line 52 def escape(string) escaped = "'" escaped << string.gsub("'", "''") escaped << "'" escaped end