rmmseg-cpp 0.2.6 → 0.2.7
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/Rakefile +1 -1
- data/ext/rmmseg/algor.cpp +33 -20
- data/ext/rmmseg/algor.h +9 -3
- data/ext/rmmseg/extconf.rb +1 -1
- data/ext/rmmseg/rules.h +13 -13
- data/misc/homepage.html +22 -22
- data/spec/rmmseg_spec.rb +1 -1
- metadata +3 -3
data/History.txt
CHANGED
data/Rakefile
CHANGED
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
|
-
|
75
|
-
|
76
|
-
if (
|
77
|
-
mm_filter(
|
78
|
-
if (
|
79
|
-
lawl_filter(
|
80
|
-
if (
|
81
|
-
svwl_filter(
|
82
|
-
if (
|
83
|
-
lsdmfocw_filter(
|
84
|
-
|
85
|
-
if (
|
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,
|
89
|
-
m_pos +=
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
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;
|
data/ext/rmmseg/extconf.rb
CHANGED
@@ -10,7 +10,7 @@ CONFIG['LDSHARED'] = CONFIG['LDSHARED'].sub(/^\$\(CC\)/, 'g++')
|
|
10
10
|
# end
|
11
11
|
|
12
12
|
if RUBY_PLATFORM =~ /darwin/
|
13
|
-
CONFIG['
|
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
|
-
|
12
|
+
int take_highest(Chunk *chunks, int n, Cmp &cmp)
|
13
13
|
{
|
14
14
|
int i = 1, j;
|
15
|
-
Chunk&
|
16
|
-
|
17
|
-
for (j = 1; 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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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="
|
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">
|
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 <a id="a-
|
946
|
+
<li>1 <a id="a-607090478" href="#Introduction">Introduction</a></li><li>2 <a id="a-607093208" href="#Setup">Setup</a><ul><li>2.1 <a id="a-607094728" href="#Requirements">Requirements</a></li><li>2.2 <a id="a-607099478" href="#Installation">Installation</a><ul><li>2.2.1 <a id="a-607103648" href="#Using-RubyGems">Using RubyGems</a></li><li>2.2.2 <a id="a-607106038" href="#From-Git">From Git</a></li></ul></li></ul></li><li>3 <a id="a-607115348" href="#Usage">Usage</a><ul><li>3.1 <a id="a-607120028" href="#Stand-Alone-rmmseg">Stand Alone rmmseg</a></li><li>3.2 <a id="a-607126248" href="#Use-in-Ruby-program">Use in Ruby program</a><ul><li>3.2.1 <a id="a-607131168" href="#Initialize">Initialize</a></li><li>3.2.2 <a id="a-607137248" href="#Ferret-Integration">Ferret Integration</a></li><li>3.2.3 <a id="a-607154008" href="#Normal-Ruby-program">Normal Ruby program</a></li></ul></li></ul></li><li>4 <a id="a-607162878" href="#Who-use-it">Who use it</a></li><li>5 <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-
|
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-
|
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-
|
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-
|
993
|
+
<a class="list" id="Requirements" href="#a-607094728">2.1</a> <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-
|
1017
|
+
<a class="list" id="Installation" href="#a-607099478">2.2</a> <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-
|
1021
|
+
<a class="list" id="Using-RubyGems" href="#a-607103648">2.2.1</a> <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 —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-
|
1032
|
+
<a class="list" id="From-Git" href="#a-607106038">2.2.2</a> <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’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-
|
1037
|
+
<p class="title"><a class="list" id="The-latest-source-code-may-be-unstable" href="#a-607107678">Warning 1</a>. <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-
|
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-
|
1065
|
+
<a class="list" id="Stand-Alone-rmmseg" href="#a-607120028">3.1</a> <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 “我们都喜欢用 Ruby” | 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-
|
1077
|
+
<a class="list" id="Use-in-Ruby-program" href="#a-607126248">3.2</a> <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-
|
1081
|
+
<a class="list" id="Initialize" href="#a-607131168">3.2.1</a> <a class="here" href="#Initialize">Initialize</a>
|
1082
1082
|
</h3>
|
1083
1083
|
<div class="content"><p>To use rmmseg-cpp in Ruby program, you’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-
|
1098
|
+
<a class="list" id="Ferret-Integration" href="#a-607137248">3.2.2</a> <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’ll need to <code class="code">require</code> the<br />
|
1101
1101
|
Ferret support of rmmseg-cpp (Of course you’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-
|
1122
|
+
<p class="title"><a class="list" id="Ferret-Example-Screenshot" href="#a-607147048">Figure 1</a>. <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-
|
1128
|
+
<a class="list" id="Normal-Ruby-program" href="#a-607154008">3.2.3</a> <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-
|
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-
|
1154
|
+
<p class="title"><a class="list" id="Expand-this-list" href="#a-607168148">Tip 1</a>. <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-
|
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
|
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"> </span>
|
data/spec/rmmseg_spec.rb
CHANGED
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.
|
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-
|
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.
|
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
|