Class: HarmoniousDictionary::Rseg

Inherits:
Object
  • Object
show all
Includes:
RsegEngine, RsegFilter, Singleton
Defined in:
lib/harmonious_dictionary/rseg.rb

Constant Summary

Constants included from RsegEngine

HarmoniousDictionary::RsegEngine::LETTER_SYMBOLS

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRseg

Returns a new instance of Rseg.



46
47
48
49
# File 'lib/harmonious_dictionary/rseg.rb', line 46

def initialize
  @input = ''
  @words = [] 
end

Instance Attribute Details

#input=(value) ⇒ Object (writeonly)

Sets the attribute input

Parameters:

  • value

    the value to set the attribute input to.



20
21
22
# File 'lib/harmonious_dictionary/rseg.rb', line 20

def input=(value)
  @input = value
end

#modelObject

Returns the value of attribute model.



21
22
23
# File 'lib/harmonious_dictionary/rseg.rb', line 21

def model
  @model
end

Class Method Details

.load(dict) ⇒ Object



30
31
32
33
# File 'lib/harmonious_dictionary/rseg.rb', line 30

def load(dict)
  HarmoniousDictionary::Rseg.instance
  nil
end

.remote_segment(input) ⇒ Object



35
36
37
38
39
40
41
42
43
# File 'lib/harmonious_dictionary/rseg.rb', line 35

def remote_segment(input)
  begin
    response = Net::HTTP.post_form(URI.parse("http://#{HarmoniousDictionary::Rseg.instance.remote_url}/seg"), :input => input)
    response.code == '200' ? response.body.split(' ') : 
        ["Can't connect to http://#{HarmoniousDictionary::Rseg.instance.remote_url}/seg\nUse rseg_server to start it"]
  rescue
    ["Can't connect to http://#{HarmoniousDictionary::Rseg.instance.remote_url}/seg\nUse rseg_server to start it"]
  end
end

.segment(input, model) ⇒ Object



24
25
26
27
28
# File 'lib/harmonious_dictionary/rseg.rb', line 24

def segment(input, model)
  HarmoniousDictionary::Rseg.instance.model = model
  HarmoniousDictionary::Rseg.instance.input = input
  HarmoniousDictionary::Rseg.instance.segment
end

Instance Method Details

#remote_urlObject



51
52
53
# File 'lib/harmonious_dictionary/rseg.rb', line 51

def remote_url
  @remote_url ||= load_remote_url_config
end

#segmentObject



55
56
57
58
59
60
61
62
63
64
65
# File 'lib/harmonious_dictionary/rseg.rb', line 55

def segment
  init_operate
  @words = []
  @input.chars.each do |origin|
    char = filter(origin)
    process(char, origin)
  end
  
  process(:symbol, '')
  @words
end