rmmseg-cpp 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.2.7 / 2008-09-17
2
+
3
+ * Fix various stupid bugs (typo) that cause problems under MacOSX.
4
+
1
5
  == 0.2.6 / 2008-08-14
2
6
 
3
7
  * Fix the problem that hang up when required (OS: MacOSX-Leopard)
data/Rakefile CHANGED
@@ -8,7 +8,7 @@ require 'rmmseg'
8
8
  task :default => 'spec:run'
9
9
 
10
10
  PROJ.name = 'rmmseg-cpp'
11
- PROJ.version = '0.2.6'
11
+ PROJ.version = '0.2.7'
12
12
  PROJ.authors = 'pluskid'
13
13
  PROJ.email = 'pluskid@gmail.com'
14
14
  PROJ.url = 'http://rmmseg-cpp.rubyforge.org'
data/ext/rmmseg/algor.cpp CHANGED
@@ -71,28 +71,27 @@ namespace rmmseg
71
71
 
72
72
  Token Algorithm::get_cjk_word(int len)
73
73
  {
74
- vector<Chunk> chunks = create_chunks();
75
-
76
- if (chunks.size() > 1)
77
- mm_filter(chunks);
78
- if (chunks.size() > 1)
79
- lawl_filter(chunks);
80
- if (chunks.size() > 1)
81
- svwl_filter(chunks);
82
- if (chunks.size() > 1)
83
- lsdmfocw_filter(chunks);
84
-
85
- if (chunks.size() < 1)
74
+ create_chunks();
75
+
76
+ if (m_chunks_size > 1)
77
+ m_chunks_size = mm_filter(m_chunks, m_chunks_size);
78
+ if (m_chunks_size > 1)
79
+ m_chunks_size = lawl_filter(m_chunks, m_chunks_size);
80
+ if (m_chunks_size > 1)
81
+ m_chunks_size = svwl_filter(m_chunks, m_chunks_size);
82
+ if (m_chunks_size > 1)
83
+ m_chunks_size = lsdmfocw_filter(m_chunks, m_chunks_size);
84
+
85
+ if (m_chunks_size < 1)
86
86
  return Token(NULL, 0);
87
87
 
88
- Token token(m_text+m_pos, chunks[0].words[0]->nbytes);
89
- m_pos += chunks[0].words[0]->nbytes;
88
+ Token token(m_text+m_pos, m_chunks[0].words[0]->nbytes);
89
+ m_pos += m_chunks[0].words[0]->nbytes;
90
90
  return token;
91
91
  }
92
92
 
93
- vector<Chunk> Algorithm::create_chunks()
93
+ void Algorithm::create_chunks()
94
94
  {
95
- vector<Chunk> chunks;
96
95
  Chunk chunk;
97
96
  Word *w1, *w2, *w3;
98
97
 
@@ -101,6 +100,8 @@ namespace rmmseg
101
100
  typedef vec_t::iterator it_t;
102
101
 
103
102
  vec_t words1 = find_match_words();
103
+ m_chunks_size = 0;
104
+
104
105
  for (it_t i1 = words1.begin();
105
106
  i1 != words1.end();
106
107
  ++i1)
@@ -135,13 +136,17 @@ namespace rmmseg
135
136
  chunk.n = 3;
136
137
  chunk.words[2] = w3;
137
138
  }
138
- chunks.push_back(chunk);
139
+ memcpy(m_chunks+m_chunks_size, &chunk,
140
+ sizeof(Chunk));
141
+ m_chunks_size++;
139
142
  }
140
143
  }
141
144
  else if (m_pos == m_text_length)
142
145
  {
143
146
  chunk.n = 2;
144
- chunks.push_back(chunk);
147
+ memcpy(m_chunks+m_chunks_size, &chunk,
148
+ sizeof(Chunk));
149
+ m_chunks_size++;
145
150
  }
146
151
  m_pos -= w2->nbytes;
147
152
  }
@@ -149,13 +154,13 @@ namespace rmmseg
149
154
  else if (m_pos == m_text_length)
150
155
  {
151
156
  chunk.n = 1;
152
- chunks.push_back(chunk);
157
+ memcpy(m_chunks+m_chunks_size, &chunk, sizeof(Chunk));
158
+ m_chunks_size++;
153
159
  }
154
160
  m_pos -= w1->nbytes;
155
161
  }
156
162
 
157
163
  m_pos = orig_pos;
158
- return chunks;
159
164
  }
160
165
 
161
166
  int Algorithm::next_char()
@@ -163,9 +168,17 @@ namespace rmmseg
163
168
  // ONLY for UTF-8
164
169
  unsigned char ch = m_text[m_pos];
165
170
  if (ch >= 0xC0 && ch <= 0xDF)
171
+ {
172
+ if (m_text_length-m_pos < 2)
173
+ return 1; /* broken text at the end */
166
174
  return 2;
175
+ }
167
176
  if (ch >= 0xE0 && ch <= 0xEF)
177
+ {
178
+ if (m_text_length-m_pos < 3)
179
+ return 1; /* broken text at the end */
168
180
  return 3;
181
+ }
169
182
  return 1;
170
183
  }
171
184
 
data/ext/rmmseg/algor.h CHANGED
@@ -22,7 +22,7 @@ namespace rmmseg
22
22
  {
23
23
  public:
24
24
  Algorithm(const char *text, int length)
25
- :m_text(text), m_pos(0),
25
+ :m_chunks_size(0), m_text(text), m_pos(0),
26
26
  m_text_length(length),
27
27
  m_tmp_words_i(0),
28
28
  m_match_cache_i(0)
@@ -36,13 +36,19 @@ namespace rmmseg
36
36
  private:
37
37
  Token get_basic_latin_word();
38
38
  Token get_cjk_word(int);
39
+
40
+ static const int MAX_WORD_LENGTH = 4;
41
+ static const int MAX_N_CHUNKS = \
42
+ MAX_WORD_LENGTH*MAX_WORD_LENGTH*MAX_WORD_LENGTH;
39
43
 
40
- std::vector<Chunk> create_chunks();
44
+ void create_chunks();
41
45
  int next_word();
42
46
  int next_char();
43
47
  std::vector<Word *> find_match_words();
44
- int max_word_length() { return 4; }
48
+ int max_word_length() { return MAX_WORD_LENGTH; }
45
49
 
50
+ Chunk m_chunks[MAX_N_CHUNKS];
51
+ int m_chunks_size;
46
52
 
47
53
  const char *m_text;
48
54
  int m_pos;
@@ -10,7 +10,7 @@ CONFIG['LDSHARED'] = CONFIG['LDSHARED'].sub(/^\$\(CC\)/, 'g++')
10
10
  # end
11
11
 
12
12
  if RUBY_PLATFORM =~ /darwin/
13
- CONFIG['LDShARED'] = 'g++ -dynamiclib -single_module -flat_namespace -undefined suppress'
13
+ CONFIG['LDSHARED'] = 'g++ -dynamiclib -single_module -flat_namespace -undefined suppress'
14
14
  end
15
15
 
16
16
  $objs = ['algor.o', 'dict.o', 'memory.o', 'rmmseg.o']
data/ext/rmmseg/rules.h CHANGED
@@ -9,12 +9,12 @@
9
9
  namespace rmmseg
10
10
  {
11
11
  template <typename Cmp>
12
- void take_highest(std::vector<Chunk> &chunks, Cmp &cmp)
12
+ int take_highest(Chunk *chunks, int n, Cmp &cmp)
13
13
  {
14
14
  int i = 1, j;
15
- Chunk& max = chunks[0];
16
-
17
- for (j = 1; j < chunks.size(); ++j)
15
+ Chunk &max = chunks[0];
16
+
17
+ for (j = 1; j < n; ++j)
18
18
  {
19
19
  int rlt = cmp(chunks[j], max);
20
20
  if (rlt > 0)
@@ -22,7 +22,7 @@ namespace rmmseg
22
22
  if (rlt >= 0)
23
23
  std::swap(chunks[i++], chunks[j]);
24
24
  }
25
- chunks.erase(chunks.begin()+i, chunks.end());
25
+ return i;
26
26
  }
27
27
 
28
28
  struct MMCmp_t
@@ -32,9 +32,9 @@ namespace rmmseg
32
32
  return a.total_length() - b.total_length();
33
33
  }
34
34
  } MMCmp;
35
- void mm_filter(std::vector<Chunk> &chunks)
35
+ int mm_filter(Chunk *chunks, int n)
36
36
  {
37
- take_highest(chunks, MMCmp);
37
+ return take_highest(chunks, n, MMCmp);
38
38
  }
39
39
 
40
40
  struct LAWLCmp_t
@@ -49,9 +49,9 @@ namespace rmmseg
49
49
  return -1;
50
50
  }
51
51
  } LAWLCmp;
52
- void lawl_filter(std::vector<Chunk> &chunks)
52
+ int lawl_filter(Chunk *chunks, int n)
53
53
  {
54
- take_highest(chunks, LAWLCmp);
54
+ return take_highest(chunks, n, LAWLCmp);
55
55
  }
56
56
 
57
57
  struct SVWLCmp_t
@@ -66,9 +66,9 @@ namespace rmmseg
66
66
  return -1;
67
67
  }
68
68
  } SVWLCmp;
69
- void svwl_filter(std::vector<Chunk> &chunks)
69
+ int svwl_filter(Chunk *chunks, int n)
70
70
  {
71
- take_highest(chunks, SVWLCmp);
71
+ return take_highest(chunks, n, SVWLCmp);
72
72
  }
73
73
 
74
74
  struct LSDMFOCWCmp_t
@@ -78,9 +78,9 @@ namespace rmmseg
78
78
  return a.degree_of_morphemic_freedom() - b.degree_of_morphemic_freedom();
79
79
  }
80
80
  } LSDMFOCWCmp;
81
- void lsdmfocw_filter(std::vector<Chunk> &chunks)
81
+ int lsdmfocw_filter(Chunk *chunks, int n)
82
82
  {
83
- take_highest(chunks, LSDMFOCWCmp);
83
+ return take_highest(chunks, n, LSDMFOCWCmp);
84
84
  }
85
85
  }
86
86
 
data/misc/homepage.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <html xmlns="http://www.w3.org/1999/xhtml">
4
4
  <head>
5
5
  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
6
- <meta name="date" content="14 August 2008"/>
6
+ <meta name="date" content="17 September 2008"/>
7
7
  <meta name="author" content="pluskid"/>
8
8
  <meta name="generator" content="Gerbil 3.1.0"/>
9
9
  <title>rmmseg-cpp Homepage</title>
@@ -929,7 +929,7 @@
929
929
 
930
930
  <h1 class="title"><a class="here" href="#">rmmseg-cpp Homepage</a></h1>
931
931
  <h2 class="authors"><a href="http://pluskid.lifegoo.com">pluskid</a></h2>
932
- <h3 class="date">14 August 2008</h3>
932
+ <h3 class="date">17 September 2008</h3>
933
933
 
934
934
  </div>
935
935
 
@@ -943,12 +943,12 @@
943
943
  <div id="Contents">
944
944
  <h1 class="title"><a class="here" href="#Contents">Contents</a></h1>
945
945
  <ul>
946
- <li>1&nbsp;&nbsp;<a id="a-605841108" href="#Introduction">Introduction</a></li><li>2&nbsp;&nbsp;<a id="a-605858498" href="#Setup">Setup</a><ul><li>2.1&nbsp;&nbsp;<a id="a-605869558" href="#Requirements">Requirements</a></li><li>2.2&nbsp;&nbsp;<a id="a-605875858" href="#Installation">Installation</a><ul><li>2.2.1&nbsp;&nbsp;<a id="a-605883808" href="#Using-RubyGems">Using RubyGems</a></li><li>2.2.2&nbsp;&nbsp;<a id="a-605892288" href="#From-Git">From Git</a></li></ul></li></ul></li><li>3&nbsp;&nbsp;<a id="a-605908088" href="#Usage">Usage</a><ul><li>3.1&nbsp;&nbsp;<a id="a-605910488" href="#Stand-Alone-rmmseg">Stand Alone rmmseg</a></li><li>3.2&nbsp;&nbsp;<a id="a-605913918" href="#Use-in-Ruby-program">Use in Ruby program</a><ul><li>3.2.1&nbsp;&nbsp;<a id="a-605916398" href="#Initialize">Initialize</a></li><li>3.2.2&nbsp;&nbsp;<a id="a-605919558" href="#Ferret-Integration">Ferret Integration</a></li><li>3.2.3&nbsp;&nbsp;<a id="a-605931938" href="#Normal-Ruby-program">Normal Ruby program</a></li></ul></li></ul></li><li>4&nbsp;&nbsp;<a id="a-605957278" href="#Who-use-it">Who use it</a></li><li>5&nbsp;&nbsp;<a id="a-605989058" href="#Resources">Resources</a></li>
946
+ <li>1&nbsp;&nbsp;<a id="a-607090478" href="#Introduction">Introduction</a></li><li>2&nbsp;&nbsp;<a id="a-607093208" href="#Setup">Setup</a><ul><li>2.1&nbsp;&nbsp;<a id="a-607094728" href="#Requirements">Requirements</a></li><li>2.2&nbsp;&nbsp;<a id="a-607099478" href="#Installation">Installation</a><ul><li>2.2.1&nbsp;&nbsp;<a id="a-607103648" href="#Using-RubyGems">Using RubyGems</a></li><li>2.2.2&nbsp;&nbsp;<a id="a-607106038" href="#From-Git">From Git</a></li></ul></li></ul></li><li>3&nbsp;&nbsp;<a id="a-607115348" href="#Usage">Usage</a><ul><li>3.1&nbsp;&nbsp;<a id="a-607120028" href="#Stand-Alone-rmmseg">Stand Alone rmmseg</a></li><li>3.2&nbsp;&nbsp;<a id="a-607126248" href="#Use-in-Ruby-program">Use in Ruby program</a><ul><li>3.2.1&nbsp;&nbsp;<a id="a-607131168" href="#Initialize">Initialize</a></li><li>3.2.2&nbsp;&nbsp;<a id="a-607137248" href="#Ferret-Integration">Ferret Integration</a></li><li>3.2.3&nbsp;&nbsp;<a id="a-607154008" href="#Normal-Ruby-program">Normal Ruby program</a></li></ul></li></ul></li><li>4&nbsp;&nbsp;<a id="a-607162878" href="#Who-use-it">Who use it</a></li><li>5&nbsp;&nbsp;<a id="a-607172188" href="#Resources">Resources</a></li>
947
947
 
948
948
  </ul>
949
949
  </div>
950
950
 
951
- <div id="lof"><h1 id="Figures" class="title"><a class="here" href="#Figures">Figures</a></h1> <ol><li><a id="a-605925108" href="#Ferret-Example-Screenshot">Ferret Example Screenshot</a></li></ol><h1 id="Tips" class="title"><a class="here" href="#Tips">Tips</a></h1> <ol><li><a id="a-605970528" href="#Expand-this-list">Expand this list</a></li></ol><h1 id="Warnings" class="title"><a class="here" href="#Warnings">Warnings</a></h1> <ol><li><a id="a-605900448" href="#The-latest-source-code-may-be-unstable">The latest source code may be unstable</a></li></ol></div>
951
+ <div id="lof"><h1 id="Figures" class="title"><a class="here" href="#Figures">Figures</a></h1> <ol><li><a id="a-607147048" href="#Ferret-Example-Screenshot">Ferret Example Screenshot</a></li></ol><h1 id="Tips" class="title"><a class="here" href="#Tips">Tips</a></h1> <ol><li><a id="a-607168148" href="#Expand-this-list">Expand this list</a></li></ol><h1 id="Warnings" class="title"><a class="here" href="#Warnings">Warnings</a></h1> <ol><li><a id="a-607107678" href="#The-latest-source-code-may-be-unstable">The latest source code may be unstable</a></li></ol></div>
952
952
 
953
953
  <br style="display: none"/>
954
954
  <hr style="display: none"/>
@@ -958,7 +958,7 @@
958
958
  <div class="chapter">
959
959
  <h1 class="title">
960
960
  Chapter
961
- <a class="list" id="Introduction" href="#a-605841108">1</a>
961
+ <a class="list" id="Introduction" href="#a-607090478">1</a>
962
962
 
963
963
  <br/>
964
964
 
@@ -981,7 +981,7 @@ this.</p></div>
981
981
  <div class="chapter">
982
982
  <h1 class="title">
983
983
  Chapter
984
- <a class="list" id="Setup" href="#a-605858498">2</a>
984
+ <a class="list" id="Setup" href="#a-607093208">2</a>
985
985
 
986
986
  <br/>
987
987
 
@@ -990,7 +990,7 @@ this.</p></div>
990
990
 
991
991
  <div class="content"><div class="section">
992
992
  <h2 class="title">
993
- <a class="list" id="Requirements" href="#a-605869558">2.1</a>&nbsp;&nbsp;<a class="here" href="#Requirements">Requirements</a>
993
+ <a class="list" id="Requirements" href="#a-607094728">2.1</a>&nbsp;&nbsp;<a class="here" href="#Requirements">Requirements</a>
994
994
  </h2>
995
995
  <div class="content"><p>Your system needs the following software to run RMMSeg.</p>
996
996
  <table border="1">
@@ -1014,11 +1014,11 @@ this.</p></div>
1014
1014
  </div><br />
1015
1015
  <div class="section">
1016
1016
  <h2 class="title">
1017
- <a class="list" id="Installation" href="#a-605875858">2.2</a>&nbsp;&nbsp;<a class="here" href="#Installation">Installation</a>
1017
+ <a class="list" id="Installation" href="#a-607099478">2.2</a>&nbsp;&nbsp;<a class="here" href="#Installation">Installation</a>
1018
1018
  </h2>
1019
1019
  <div class="content"><div class="section">
1020
1020
  <h3 class="title">
1021
- <a class="list" id="Using-RubyGems" href="#a-605883808">2.2.1</a>&nbsp;&nbsp;<a class="here" href="#Using-RubyGems">Using RubyGems</a>
1021
+ <a class="list" id="Using-RubyGems" href="#a-607103648">2.2.1</a>&nbsp;&nbsp;<a class="here" href="#Using-RubyGems">Using RubyGems</a>
1022
1022
  </h3>
1023
1023
  <div class="content"><p>To install the gem remotely from <a href="http://rubyforge.org">RubyForge</a>:</p>
1024
1024
  sudo gem install rmmseg-cpp
@@ -1029,12 +1029,12 @@ sudo gem install &#8212;local rmmseg-cpp-x.y.z.gem</div>
1029
1029
  </div><br />
1030
1030
  <div class="section">
1031
1031
  <h3 class="title">
1032
- <a class="list" id="From-Git" href="#a-605892288">2.2.2</a>&nbsp;&nbsp;<a class="here" href="#From-Git">From Git</a>
1032
+ <a class="list" id="From-Git" href="#a-607106038">2.2.2</a>&nbsp;&nbsp;<a class="here" href="#From-Git">From Git</a>
1033
1033
  </h3>
1034
1034
  <div class="content"><p>To build the gem manually from the latest source code. You&#8217;ll<br />
1035
1035
  need to have <strong>git</strong> and <strong>rake</strong> installed.</p>
1036
1036
  <p><div class="warning">
1037
- <p class="title"><a class="list" id="The-latest-source-code-may-be-unstable" href="#a-605900448">Warning 1</a>.&nbsp;&nbsp;<a class="here" href="#The-latest-source-code-may-be-unstable">The latest source code may be unstable</a></p>
1037
+ <p class="title"><a class="list" id="The-latest-source-code-may-be-unstable" href="#a-607107678">Warning 1</a>.&nbsp;&nbsp;<a class="here" href="#The-latest-source-code-may-be-unstable">The latest source code may be unstable</a></p>
1038
1038
 
1039
1039
  <div class="content icon-warning">While I tried to avoid such kind of problems, the source<br />
1040
1040
  code from the repository might still be broken sometimes.<br />
@@ -1053,7 +1053,7 @@ rake gem:install</div>
1053
1053
  <div class="chapter">
1054
1054
  <h1 class="title">
1055
1055
  Chapter
1056
- <a class="list" id="Usage" href="#a-605908088">3</a>
1056
+ <a class="list" id="Usage" href="#a-607115348">3</a>
1057
1057
 
1058
1058
  <br/>
1059
1059
 
@@ -1062,7 +1062,7 @@ rake gem:install</div>
1062
1062
 
1063
1063
  <div class="content"><div class="section">
1064
1064
  <h2 class="title">
1065
- <a class="list" id="Stand-Alone-rmmseg" href="#a-605910488">3.1</a>&nbsp;&nbsp;<a class="here" href="#Stand-Alone-rmmseg">Stand Alone rmmseg</a>
1065
+ <a class="list" id="Stand-Alone-rmmseg" href="#a-607120028">3.1</a>&nbsp;&nbsp;<a class="here" href="#Stand-Alone-rmmseg">Stand Alone rmmseg</a>
1066
1066
  </h2>
1067
1067
  <div class="content"><p>rmmseg-cpp comes with a script <strong>rmmseg</strong>. To get the basic usage, just execute it with <tt>-h</tt> option:<br />
1068
1068
  <br />
@@ -1074,11 +1074,11 @@ $ echo &#8220;我们都喜欢用 Ruby&#8221; | rmmseg
1074
1074
  </div><br />
1075
1075
  <div class="section">
1076
1076
  <h2 class="title">
1077
- <a class="list" id="Use-in-Ruby-program" href="#a-605913918">3.2</a>&nbsp;&nbsp;<a class="here" href="#Use-in-Ruby-program">Use in Ruby program</a>
1077
+ <a class="list" id="Use-in-Ruby-program" href="#a-607126248">3.2</a>&nbsp;&nbsp;<a class="here" href="#Use-in-Ruby-program">Use in Ruby program</a>
1078
1078
  </h2>
1079
1079
  <div class="content"><div class="section">
1080
1080
  <h3 class="title">
1081
- <a class="list" id="Initialize" href="#a-605916398">3.2.1</a>&nbsp;&nbsp;<a class="here" href="#Initialize">Initialize</a>
1081
+ <a class="list" id="Initialize" href="#a-607131168">3.2.1</a>&nbsp;&nbsp;<a class="here" href="#Initialize">Initialize</a>
1082
1082
  </h3>
1083
1083
  <div class="content"><p>To use rmmseg-cpp in Ruby program, you&#8217;ll first load it with RubyGems:</p>
1084
1084
  <pre class="code">
@@ -1095,7 +1095,7 @@ how to add your own dictionaries) and load all dictionaries:</p>
1095
1095
  </div><br />
1096
1096
  <div class="section">
1097
1097
  <h3 class="title">
1098
- <a class="list" id="Ferret-Integration" href="#a-605919558">3.2.2</a>&nbsp;&nbsp;<a class="here" href="#Ferret-Integration">Ferret Integration</a>
1098
+ <a class="list" id="Ferret-Integration" href="#a-607137248">3.2.2</a>&nbsp;&nbsp;<a class="here" href="#Ferret-Integration">Ferret Integration</a>
1099
1099
  </h3>
1100
1100
  <div class="content"><p>To use rmmseg-cpp with Ferret, you&#8217;ll need to <code class="code">require</code> the<br />
1101
1101
  Ferret support of rmmseg-cpp (Of course you&#8217;ll also have to<br />
@@ -1119,13 +1119,13 @@ A complete example can be found in <tt>misc/ferret_example.rb</tt>. The result<b
1119
1119
  of running that example is shown in <a class="xref" href="#Ferret-Example-Screenshot">Figure 1. Ferret Example Screenshot</a>.<br />
1120
1120
  <br />
1121
1121
  <div class="figure">
1122
- <p class="title"><a class="list" id="Ferret-Example-Screenshot" href="#a-605925108">Figure 1</a>.&nbsp;&nbsp;<a class="here" href="#Ferret-Example-Screenshot">Ferret Example Screenshot</a></p>
1122
+ <p class="title"><a class="list" id="Ferret-Example-Screenshot" href="#a-607147048">Figure 1</a>.&nbsp;&nbsp;<a class="here" href="#Ferret-Example-Screenshot">Ferret Example Screenshot</a></p>
1123
1123
  <div class="content"><img src="http://pluskid.lifegoo.com/wp-content/uploads/2008/02/rmmseg.png" alt="" /></div>
1124
1124
  </div></p></div>
1125
1125
  </div><br />
1126
1126
  <div class="section">
1127
1127
  <h3 class="title">
1128
- <a class="list" id="Normal-Ruby-program" href="#a-605931938">3.2.3</a>&nbsp;&nbsp;<a class="here" href="#Normal-Ruby-program">Normal Ruby program</a>
1128
+ <a class="list" id="Normal-Ruby-program" href="#a-607154008">3.2.3</a>&nbsp;&nbsp;<a class="here" href="#Normal-Ruby-program">Normal Ruby program</a>
1129
1129
  </h3>
1130
1130
  <div class="content"><p>rmmseg-cpp can also be used in normal Ruby programs. Just create<br />
1131
1131
  an <code class="code"><span style="color:#036; font-weight:bold">Algorithm</span></code> object and call <code class="code">next_token</code> until a <code class="code"><span style="color:#038; font-weight:bold">nil</span></code> is returned:</p>
@@ -1143,7 +1143,7 @@ loop <span style="color:#080; font-weight:bold">do</span>
1143
1143
  <div class="chapter">
1144
1144
  <h1 class="title">
1145
1145
  Chapter
1146
- <a class="list" id="Who-use-it" href="#a-605957278">4</a>
1146
+ <a class="list" id="Who-use-it" href="#a-607162878">4</a>
1147
1147
 
1148
1148
  <br/>
1149
1149
 
@@ -1151,7 +1151,7 @@ loop <span style="color:#080; font-weight:bold">do</span>
1151
1151
  </h1>
1152
1152
 
1153
1153
  <div class="content"><p><div class="tip">
1154
- <p class="title"><a class="list" id="Expand-this-list" href="#a-605970528">Tip 1</a>.&nbsp;&nbsp;<a class="here" href="#Expand-this-list">Expand this list</a></p>
1154
+ <p class="title"><a class="list" id="Expand-this-list" href="#a-607168148">Tip 1</a>.&nbsp;&nbsp;<a class="here" href="#Expand-this-list">Expand this list</a></p>
1155
1155
 
1156
1156
  <div class="content icon-tip">If you used rmmseg-cpp and would like your project to<br />
1157
1157
  appear in this list, please <a href="mailto:pluskid@gmail.com">contact me</a>.</div>
@@ -1164,7 +1164,7 @@ appear in this list, please <a href="mailto:pluskid@gmail.com">contact me</a>.</
1164
1164
  <div class="chapter">
1165
1165
  <h1 class="title">
1166
1166
  Chapter
1167
- <a class="list" id="Resources" href="#a-605989058">5</a>
1167
+ <a class="list" id="Resources" href="#a-607172188">5</a>
1168
1168
 
1169
1169
  <br/>
1170
1170
 
@@ -1187,7 +1187,7 @@ appear in this list, please <a href="mailto:pluskid@gmail.com">contact me</a>.</
1187
1187
 
1188
1188
  <div id="footer">
1189
1189
 
1190
- Generated on Thu Aug 14 12:26:56 -0400 2008 by <a href="http://gerbil.rubyforge.org">Gerbil</a> 3.1.0.
1190
+ Generated on Wed Sep 17 10:18:56 -0400 2008 by <a href="http://gerbil.rubyforge.org">Gerbil</a> 3.1.0.
1191
1191
 
1192
1192
  <div id="footer-credits">
1193
1193
  <span class="icon-warning" style="float: right">&nbsp;</span>
data/spec/rmmseg_spec.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require File.join(File.dirname(__FILE__), %w[spec_helper])
4
4
 
5
- describe Rmmseg do
5
+ describe RMMSeg do
6
6
  end
7
7
 
8
8
  # EOF
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rmmseg-cpp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - pluskid
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-14 00:00:00 -04:00
12
+ date: 2008-09-17 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -91,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
91
  requirements: []
92
92
 
93
93
  rubyforge_project: rmmseg-cpp
94
- rubygems_version: 1.1.1
94
+ rubygems_version: 1.2.0
95
95
  signing_key:
96
96
  specification_version: 2
97
97
  summary: rmmseg-cpp is a high performance Chinese word segmentation utility for Ruby