class UClassifyQuery

Public Class Methods

new(read_api_key) click to toggle source
# File lib/uclassify_query.rb, line 2
def initialize (read_api_key)
  @read_api_key = read_api_key
  @texts = Array.new
  @classifiers = Array.new
end

Public Instance Methods

add_classifier(classifier_name,text) click to toggle source
# File lib/uclassify_query.rb, line 14
def add_classifier (classifier_name,text)
  classifier = UClassifyClassifier.new(classifier_name,text)
  @classifiers << classifier 
  self  
end
add_text(text) click to toggle source
# File lib/uclassify_query.rb, line 8
def add_text (text)
  text = UClassifyText.new(text)
  @texts << text
  self
end
classify_text(classifier_name,text) click to toggle source
# File lib/uclassify_query.rb, line 20
def classify_text(classifier_name,text)
  add_classifier(classifier_name,text)
  add_text(text)
end
get_query_string() click to toggle source
# File lib/uclassify_query.rb, line 26
def get_query_string
  @document = Nokogiri::XML::Document.new("1.0")
  @document.encoding="utf-8"
  @uclassify_root_node =  Nokogiri::XML::Node.new('uclassify',@document)
  @uclassify_root_node['xmlns']="http://api.uclassify.com/1/RequestSchema"
  @uclassify_root_node['version']="1.01"
  @document.root=@uclassify_root_node
  generate_texts
  generate_read_calls
  @document.to_xml
end

Private Instance Methods

generate_read_calls() click to toggle source
# File lib/uclassify_query.rb, line 40
def generate_read_calls
  if @classifiers.size > 0 
    read_node = Nokogiri::XML::Node.new('readCalls',@document)
    read_node['readApiKey']=@read_api_key
    @uclassify_root_node.add_child(read_node)
    @classifiers.each do  |classifier|
      node = classifier.to_xml_node(@document)
      read_node.add_child(node)
    end
  else
    raise 'ERROR: Classifiers not specified. Use add_classifier method to add classifiers to use for this query'
  end
end
generate_texts() click to toggle source
# File lib/uclassify_query.rb, line 54
def generate_texts
  #add all the text train calls
   if @texts.size >0 
     main_texts_node = Nokogiri::XML::Node.new('texts',@document)
     @uclassify_root_node.add_child(main_texts_node)
     @texts.each do |text|
       node=text.to_xml_node(@document)
       main_texts_node.add_child(node)
     end
   else
     raise 'ERROR: Texts not specified. Use add_text method to add text(s) to run the classifier on'
   end
end