Class: UClassify

Inherits:
Object
  • Object
show all
Defined in:
lib/uclassify.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeUClassify

Returns a new instance of UClassify.



16
17
18
19
# File 'lib/uclassify.rb', line 16

def initialize
  @write_calls = Array.new
  @text_trains = Array.new
end

Instance Attribute Details

#read_api_keyObject

Returns the value of attribute read_api_key.



14
15
16
# File 'lib/uclassify.rb', line 14

def read_api_key
  @read_api_key
end

#write_api_keyObject

Returns the value of attribute write_api_key.



13
14
15
# File 'lib/uclassify.rb', line 13

def write_api_key
  @write_api_key
end

Instance Method Details

#add_class(class_name) ⇒ Object



75
76
77
78
79
# File 'lib/uclassify.rb', line 75

def add_class (class_name)
  new_class = UClassifyClass.new(class_name)
  @write_calls.last.add_class(new_class)
  self
end

#create_classifier(classifier_name) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/uclassify.rb', line 21

def create_classifier(classifier_name)
  check_for_write_key
  @write_api_key = write_api_key
  write_call = UClassifyWriteCall.new(write_api_key,classifier_name)
  id = UClassifyCreateID.new(UClassifyUtils.string_to_id(classifier_name))
  write_call.add_create_id(id)
  @write_calls << write_call
end

#fire_requestObject



44
45
46
47
48
49
50
51
52
53
54
# File 'lib/uclassify.rb', line 44

def fire_request
  request = UClassifyRequest.new
  @last_response = request.fire_request(generate_request_string)
  if is_response_valid?
    puts "SUCCESS!"
  else
    puts "FAILURE"
  end
  puts "Reply from server:"  
  @last_response
end

#generate_request_stringObject



30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/uclassify.rb', line 30

def generate_request_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_train_texts
  generate_write_calls
  xml_string = @document.to_xml
  xml_string.split.join("\n")
  xml_string   
end

#is_response_valid?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/uclassify.rb', line 56

def is_response_valid? 
  response_as_hash['uclassify']['status']['success'] == "true"
end

#response_as_hashObject



60
61
62
63
64
65
66
# File 'lib/uclassify.rb', line 60

def response_as_hash
  if @last_response
        @last_response.parsed_response
    else
      raise "No request has been fired yet. Please do a uclassify.fire_request"
    end
end

#train_class_with_text(class_name, text) ⇒ Object



81
82
83
84
85
86
# File 'lib/uclassify.rb', line 81

def train_class_with_text (class_name,text)
  train_id = UClassifyUtils.string_to_id(class_name)
  text_id = UClassifyUtils.string_to_id(text)
  add_training_class(train_id,class_name,text_id)
  train_text(text)
end

#with_classifier_name(classifier_name) ⇒ Object



68
69
70
71
72
73
# File 'lib/uclassify.rb', line 68

def with_classifier_name classifier_name 
  check_for_write_key
  write_call = UClassifyWriteCall.new(@write_api_key,classifier_name)
  @write_calls << write_call
  self
end