wordfilter_client 0.0.1

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6c81273157226f3fc6768fee385ee70124ef2e37
4
+ data.tar.gz: 71bc69d5245443c996892fd647021910c2add7f5
5
+ SHA512:
6
+ metadata.gz: 3e5f38a21b9383c74b56b6f73291fda7581769bfd0fac7a521ef313676810cae8721ce0214be1732444408fe955fe562e9b3aad0ffd9c5b2685e25c0d980a809
7
+ data.tar.gz: de28821c470908cae293391187b753204aa9052a2c25370148c9262026bafa01e2470ce424db595d3f0e4b45a9d7a24a1bc0aef220330310af96cc24bb466740
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+ source 'http://192.168.3.220:9292/'
3
+
4
+ # Specify your gem's dependencies in stat-count-client.gemspec
5
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,19 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ wordfilter-client (0.0.1)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ remote: http://192.168.3.220:9292/
9
+ specs:
10
+ thrift (0.9.1)
11
+ thrift-client (0.0.6)
12
+ thrift (~> 0.9.0)
13
+
14
+ PLATFORMS
15
+ ruby
16
+
17
+ DEPENDENCIES
18
+ thrift-client
19
+ wordfilter-client!
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 TODO: Write your name
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # Stat::Count::Client
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'stat-count-client'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install stat-count-client
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
data/doc/gen.txt ADDED
@@ -0,0 +1 @@
1
+ thrift -out /workspaces/ruby/wordfilter-client/lib/wordfilter-client --gen rb /workspaces/ruby/wordfilter-client/doc/wordfilter.thrift
@@ -0,0 +1,102 @@
1
+ namespace java com.nali.wordfilter.thrift
2
+ namespace rb wordfilter.thrift
3
+
4
+ /**
5
+ * 当同时检测多种文本时,返回具体某种文本出错
6
+ */
7
+ struct PartResult{
8
+ 1:i32 error,
9
+ 2:string part
10
+ }
11
+
12
+ /**
13
+ * 敏感词过滤服务,目前提供的服务有:
14
+ * <ul>
15
+ * <li>文本过滤</li>
16
+ * <li>用户行为检测跟踪</li>
17
+ * <li>IP行为检测跟踪</li>
18
+ * <li>其他客户端相关</li>
19
+ * <ul>
20
+ */
21
+ service WordFiltersService {
22
+ /**
23
+ * 过滤词判断
24
+ *
25
+ * @param application
26
+ * 应用ID(话题,投票...)
27
+ * @param userId
28
+ * 发表人ID
29
+ * @param ip
30
+ * 发表人的IP
31
+ * @param txt
32
+ * 发表内容
33
+ * @return 0:正常通过 <br />
34
+ * -1:用户在黑名单中,不允许用户操作 <br />
35
+ * -2:用户发帖太快 <br />
36
+ * -3:ip被禁止 <br />
37
+ * -4:对应该IP的主机发帖太快 <br />
38
+ * -5:被禁止的浏览器类型 <br />
39
+ * -6:文本太长 <br />
40
+ * -7:连续的中文字符太长 <br />
41
+ * -8:连续的非中文字符太长 <br />
42
+ * -9:文本内容结构太窄 <br />
43
+ * -10:过多的空字符 <br />
44
+ * -11:文本内容中包含了不合法的词汇 <br />
45
+ * -12:用户重复发帖过于频繁 <br />
46
+ * -13:IP对应的主机重复发帖过于频繁 <br />
47
+ * -14:因为用户之前重复发帖,而被禁止操作 <br />
48
+ * -15:因为该IP对应主机重复发帖,而被禁止操作 <br />
49
+ * -99:未知的应用
50
+ * @throws IOException
51
+ */
52
+ i32 wordFilter(1:i32 application, 2:i64 userId, 3:string ip, 4:binary txtData);
53
+
54
+ /**
55
+ * 过滤文本字符串
56
+ * @param application 应用id
57
+ * @param userId 用户id
58
+ * @param ip ip地址
59
+ * @param txtData 文本内容
60
+ * @return @see {@link #wordFilter(int, long, String, byte[])}
61
+ * @throws IOException
62
+ */
63
+ i32 wordFilters(1:i32 application, 2:i64 userId, 3:string ip,
64
+ 4:string txtData);
65
+
66
+ /**
67
+ * 批量过滤敏感词,遇到第一个出错的文本就返回
68
+ * @param application 应用id
69
+ * @param userId 用户id
70
+ * @param ip 用户ip
71
+ * @param txtData 检测的多个样本
72
+ * @return PartResult 出错文本
73
+ * @throws IOException
74
+ */
75
+ PartResult mutilWordFilter(1:i32 application, 2:i64 userId,
76
+ 3:string ip, 4:map<string, string> txtData);
77
+
78
+ /**
79
+ * 只判敏感词,其他忽略
80
+ * @param application
81
+ * @param userId
82
+ * @param ip
83
+ * @param txtData
84
+ * @return
85
+ * @throws IOException
86
+ */
87
+ PartResult onlyWordFilters(1:i32 application, 2:i64 userId,
88
+ 3:string ip, 4:map<string, string> txtData);
89
+
90
+ /**
91
+ * 只判敏感词,其他忽略
92
+ * @param application
93
+ * @param userId
94
+ * @param ip
95
+ * @param txtData
96
+ * @return
97
+ * @throws IOException
98
+ */
99
+ i32 onlyWordFilter(1:i32 application, 2:i64 userId, 3:string ip,
100
+ 4:string txtData);
101
+ }
102
+
@@ -0,0 +1,328 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.9.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'wordfilter_types'
9
+
10
+ module Wordfilter
11
+ module Thrift
12
+ module WordFiltersService
13
+ class Client
14
+ include ::Thrift::Client
15
+
16
+ def wordFilter(application, userId, ip, txtData)
17
+ send_wordFilter(application, userId, ip, txtData)
18
+ return recv_wordFilter()
19
+ end
20
+
21
+ def send_wordFilter(application, userId, ip, txtData)
22
+ send_message('wordFilter', WordFilter_args, :application => application, :userId => userId, :ip => ip, :txtData => txtData)
23
+ end
24
+
25
+ def recv_wordFilter()
26
+ result = receive_message(WordFilter_result)
27
+ return result.success unless result.success.nil?
28
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'wordFilter failed: unknown result')
29
+ end
30
+
31
+ def wordFilters(application, userId, ip, txtData)
32
+ send_wordFilters(application, userId, ip, txtData)
33
+ return recv_wordFilters()
34
+ end
35
+
36
+ def send_wordFilters(application, userId, ip, txtData)
37
+ send_message('wordFilters', WordFilters_args, :application => application, :userId => userId, :ip => ip, :txtData => txtData)
38
+ end
39
+
40
+ def recv_wordFilters()
41
+ result = receive_message(WordFilters_result)
42
+ return result.success unless result.success.nil?
43
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'wordFilters failed: unknown result')
44
+ end
45
+
46
+ def mutilWordFilter(application, userId, ip, txtData)
47
+ send_mutilWordFilter(application, userId, ip, txtData)
48
+ return recv_mutilWordFilter()
49
+ end
50
+
51
+ def send_mutilWordFilter(application, userId, ip, txtData)
52
+ send_message('mutilWordFilter', MutilWordFilter_args, :application => application, :userId => userId, :ip => ip, :txtData => txtData)
53
+ end
54
+
55
+ def recv_mutilWordFilter()
56
+ result = receive_message(MutilWordFilter_result)
57
+ return result.success unless result.success.nil?
58
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'mutilWordFilter failed: unknown result')
59
+ end
60
+
61
+ def onlyWordFilters(application, userId, ip, txtData)
62
+ send_onlyWordFilters(application, userId, ip, txtData)
63
+ return recv_onlyWordFilters()
64
+ end
65
+
66
+ def send_onlyWordFilters(application, userId, ip, txtData)
67
+ send_message('onlyWordFilters', OnlyWordFilters_args, :application => application, :userId => userId, :ip => ip, :txtData => txtData)
68
+ end
69
+
70
+ def recv_onlyWordFilters()
71
+ result = receive_message(OnlyWordFilters_result)
72
+ return result.success unless result.success.nil?
73
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'onlyWordFilters failed: unknown result')
74
+ end
75
+
76
+ def onlyWordFilter(application, userId, ip, txtData)
77
+ send_onlyWordFilter(application, userId, ip, txtData)
78
+ return recv_onlyWordFilter()
79
+ end
80
+
81
+ def send_onlyWordFilter(application, userId, ip, txtData)
82
+ send_message('onlyWordFilter', OnlyWordFilter_args, :application => application, :userId => userId, :ip => ip, :txtData => txtData)
83
+ end
84
+
85
+ def recv_onlyWordFilter()
86
+ result = receive_message(OnlyWordFilter_result)
87
+ return result.success unless result.success.nil?
88
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'onlyWordFilter failed: unknown result')
89
+ end
90
+
91
+ end
92
+
93
+ class Processor
94
+ include ::Thrift::Processor
95
+
96
+ def process_wordFilter(seqid, iprot, oprot)
97
+ args = read_args(iprot, WordFilter_args)
98
+ result = WordFilter_result.new()
99
+ result.success = @handler.wordFilter(args.application, args.userId, args.ip, args.txtData)
100
+ write_result(result, oprot, 'wordFilter', seqid)
101
+ end
102
+
103
+ def process_wordFilters(seqid, iprot, oprot)
104
+ args = read_args(iprot, WordFilters_args)
105
+ result = WordFilters_result.new()
106
+ result.success = @handler.wordFilters(args.application, args.userId, args.ip, args.txtData)
107
+ write_result(result, oprot, 'wordFilters', seqid)
108
+ end
109
+
110
+ def process_mutilWordFilter(seqid, iprot, oprot)
111
+ args = read_args(iprot, MutilWordFilter_args)
112
+ result = MutilWordFilter_result.new()
113
+ result.success = @handler.mutilWordFilter(args.application, args.userId, args.ip, args.txtData)
114
+ write_result(result, oprot, 'mutilWordFilter', seqid)
115
+ end
116
+
117
+ def process_onlyWordFilters(seqid, iprot, oprot)
118
+ args = read_args(iprot, OnlyWordFilters_args)
119
+ result = OnlyWordFilters_result.new()
120
+ result.success = @handler.onlyWordFilters(args.application, args.userId, args.ip, args.txtData)
121
+ write_result(result, oprot, 'onlyWordFilters', seqid)
122
+ end
123
+
124
+ def process_onlyWordFilter(seqid, iprot, oprot)
125
+ args = read_args(iprot, OnlyWordFilter_args)
126
+ result = OnlyWordFilter_result.new()
127
+ result.success = @handler.onlyWordFilter(args.application, args.userId, args.ip, args.txtData)
128
+ write_result(result, oprot, 'onlyWordFilter', seqid)
129
+ end
130
+
131
+ end
132
+
133
+ # HELPER FUNCTIONS AND STRUCTURES
134
+
135
+ class WordFilter_args
136
+ include ::Thrift::Struct, ::Thrift::Struct_Union
137
+ APPLICATION = 1
138
+ USERID = 2
139
+ IP = 3
140
+ TXTDATA = 4
141
+
142
+ FIELDS = {
143
+ APPLICATION => {:type => ::Thrift::Types::I32, :name => 'application'},
144
+ USERID => {:type => ::Thrift::Types::I64, :name => 'userId'},
145
+ IP => {:type => ::Thrift::Types::STRING, :name => 'ip'},
146
+ TXTDATA => {:type => ::Thrift::Types::STRING, :name => 'txtData', :binary => true}
147
+ }
148
+
149
+ def struct_fields; FIELDS; end
150
+
151
+ def validate
152
+ end
153
+
154
+ ::Thrift::Struct.generate_accessors self
155
+ end
156
+
157
+ class WordFilter_result
158
+ include ::Thrift::Struct, ::Thrift::Struct_Union
159
+ SUCCESS = 0
160
+
161
+ FIELDS = {
162
+ SUCCESS => {:type => ::Thrift::Types::I32, :name => 'success'}
163
+ }
164
+
165
+ def struct_fields; FIELDS; end
166
+
167
+ def validate
168
+ end
169
+
170
+ ::Thrift::Struct.generate_accessors self
171
+ end
172
+
173
+ class WordFilters_args
174
+ include ::Thrift::Struct, ::Thrift::Struct_Union
175
+ APPLICATION = 1
176
+ USERID = 2
177
+ IP = 3
178
+ TXTDATA = 4
179
+
180
+ FIELDS = {
181
+ APPLICATION => {:type => ::Thrift::Types::I32, :name => 'application'},
182
+ USERID => {:type => ::Thrift::Types::I64, :name => 'userId'},
183
+ IP => {:type => ::Thrift::Types::STRING, :name => 'ip'},
184
+ TXTDATA => {:type => ::Thrift::Types::STRING, :name => 'txtData'}
185
+ }
186
+
187
+ def struct_fields; FIELDS; end
188
+
189
+ def validate
190
+ end
191
+
192
+ ::Thrift::Struct.generate_accessors self
193
+ end
194
+
195
+ class WordFilters_result
196
+ include ::Thrift::Struct, ::Thrift::Struct_Union
197
+ SUCCESS = 0
198
+
199
+ FIELDS = {
200
+ SUCCESS => {:type => ::Thrift::Types::I32, :name => 'success'}
201
+ }
202
+
203
+ def struct_fields; FIELDS; end
204
+
205
+ def validate
206
+ end
207
+
208
+ ::Thrift::Struct.generate_accessors self
209
+ end
210
+
211
+ class MutilWordFilter_args
212
+ include ::Thrift::Struct, ::Thrift::Struct_Union
213
+ APPLICATION = 1
214
+ USERID = 2
215
+ IP = 3
216
+ TXTDATA = 4
217
+
218
+ FIELDS = {
219
+ APPLICATION => {:type => ::Thrift::Types::I32, :name => 'application'},
220
+ USERID => {:type => ::Thrift::Types::I64, :name => 'userId'},
221
+ IP => {:type => ::Thrift::Types::STRING, :name => 'ip'},
222
+ TXTDATA => {:type => ::Thrift::Types::MAP, :name => 'txtData', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}}
223
+ }
224
+
225
+ def struct_fields; FIELDS; end
226
+
227
+ def validate
228
+ end
229
+
230
+ ::Thrift::Struct.generate_accessors self
231
+ end
232
+
233
+ class MutilWordFilter_result
234
+ include ::Thrift::Struct, ::Thrift::Struct_Union
235
+ SUCCESS = 0
236
+
237
+ FIELDS = {
238
+ SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Wordfilter::Thrift::PartResult}
239
+ }
240
+
241
+ def struct_fields; FIELDS; end
242
+
243
+ def validate
244
+ end
245
+
246
+ ::Thrift::Struct.generate_accessors self
247
+ end
248
+
249
+ class OnlyWordFilters_args
250
+ include ::Thrift::Struct, ::Thrift::Struct_Union
251
+ APPLICATION = 1
252
+ USERID = 2
253
+ IP = 3
254
+ TXTDATA = 4
255
+
256
+ FIELDS = {
257
+ APPLICATION => {:type => ::Thrift::Types::I32, :name => 'application'},
258
+ USERID => {:type => ::Thrift::Types::I64, :name => 'userId'},
259
+ IP => {:type => ::Thrift::Types::STRING, :name => 'ip'},
260
+ TXTDATA => {:type => ::Thrift::Types::MAP, :name => 'txtData', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}}
261
+ }
262
+
263
+ def struct_fields; FIELDS; end
264
+
265
+ def validate
266
+ end
267
+
268
+ ::Thrift::Struct.generate_accessors self
269
+ end
270
+
271
+ class OnlyWordFilters_result
272
+ include ::Thrift::Struct, ::Thrift::Struct_Union
273
+ SUCCESS = 0
274
+
275
+ FIELDS = {
276
+ SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Wordfilter::Thrift::PartResult}
277
+ }
278
+
279
+ def struct_fields; FIELDS; end
280
+
281
+ def validate
282
+ end
283
+
284
+ ::Thrift::Struct.generate_accessors self
285
+ end
286
+
287
+ class OnlyWordFilter_args
288
+ include ::Thrift::Struct, ::Thrift::Struct_Union
289
+ APPLICATION = 1
290
+ USERID = 2
291
+ IP = 3
292
+ TXTDATA = 4
293
+
294
+ FIELDS = {
295
+ APPLICATION => {:type => ::Thrift::Types::I32, :name => 'application'},
296
+ USERID => {:type => ::Thrift::Types::I64, :name => 'userId'},
297
+ IP => {:type => ::Thrift::Types::STRING, :name => 'ip'},
298
+ TXTDATA => {:type => ::Thrift::Types::STRING, :name => 'txtData'}
299
+ }
300
+
301
+ def struct_fields; FIELDS; end
302
+
303
+ def validate
304
+ end
305
+
306
+ ::Thrift::Struct.generate_accessors self
307
+ end
308
+
309
+ class OnlyWordFilter_result
310
+ include ::Thrift::Struct, ::Thrift::Struct_Union
311
+ SUCCESS = 0
312
+
313
+ FIELDS = {
314
+ SUCCESS => {:type => ::Thrift::Types::I32, :name => 'success'}
315
+ }
316
+
317
+ def struct_fields; FIELDS; end
318
+
319
+ def validate
320
+ end
321
+
322
+ ::Thrift::Struct.generate_accessors self
323
+ end
324
+
325
+ end
326
+
327
+ end
328
+ end
@@ -0,0 +1,6 @@
1
+ #encoding: UTF-8
2
+
3
+ require "wordfilter_client/version"
4
+ require "wordfilter_types"
5
+ require "word_filters_service"
6
+ require "wordfilter_constants"
@@ -0,0 +1,5 @@
1
+ module WordFilter
2
+ module Client
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,13 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.9.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'wordfilter_types'
9
+
10
+ module Wordfilter
11
+ module Thrift
12
+ end
13
+ end
@@ -0,0 +1,31 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.9.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+
9
+ module Wordfilter
10
+ module Thrift
11
+ # 当同时检测多种文本时,返回具体某种文本出错
12
+ class PartResult
13
+ include ::Thrift::Struct, ::Thrift::Struct_Union
14
+ ERROR = 1
15
+ PART = 2
16
+
17
+ FIELDS = {
18
+ ERROR => {:type => ::Thrift::Types::I32, :name => 'error'},
19
+ PART => {:type => ::Thrift::Types::STRING, :name => 'part'}
20
+ }
21
+
22
+ def struct_fields; FIELDS; end
23
+
24
+ def validate
25
+ end
26
+
27
+ ::Thrift::Struct.generate_accessors self
28
+ end
29
+
30
+ end
31
+ end
@@ -0,0 +1,28 @@
1
+ #encoding: UTF-8
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__),"..","lib")
4
+ $:.unshift File.join(File.dirname(__FILE__),"..")
5
+
6
+ require "rubygems"
7
+ require "wordfilter_client"
8
+ require "thrift_client"
9
+ require "test/unit"
10
+
11
+ class TC_WordFilterClientTest < Test::Unit::TestCase
12
+ # Called before every test method runs. Can be used
13
+ # to set up fixture information.
14
+ def setup
15
+ @client = ThriftClient.new({"servers" => "localhost:9096", "client_class" => "Wordfilter::Thrift::WordFiltersService::Client"});
16
+ end
17
+
18
+ # Called after every test method runs. Can be used to tear
19
+ # down fixture information.
20
+
21
+ def teardown
22
+ # Do nothing
23
+ end
24
+
25
+ def test_mutilWordFilter()
26
+ partResult=@client.mutilWordFilter(2, 1, "127.0.0.1", {"body"=>"找小姐"});
27
+ end
28
+ end
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wordfilter_client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - gavin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-09-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thrift-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: ruby thrift client for wordfilter service
28
+ email:
29
+ - gavin@ximalya.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - Gemfile
35
+ - Gemfile.lock
36
+ - LICENSE
37
+ - Rakefile
38
+ - README.md
39
+ - test/thrift_wordfilter_client_test.rb
40
+ - lib/word_filters_service.rb
41
+ - lib/wordfilter_client/version.rb
42
+ - lib/wordfilter_client.rb
43
+ - lib/wordfilter_constants.rb
44
+ - lib/wordfilter_types.rb
45
+ - doc/gen.txt
46
+ - doc/wordfilter.thrift
47
+ homepage: http://www.ximalaya.com
48
+ licenses: []
49
+ metadata: {}
50
+ post_install_message:
51
+ rdoc_options: []
52
+ require_paths:
53
+ - lib
54
+ - test
55
+ required_ruby_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ required_rubygems_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ requirements: []
66
+ rubyforge_project:
67
+ rubygems_version: 2.0.3
68
+ signing_key:
69
+ specification_version: 4
70
+ summary: wordfilter client
71
+ test_files:
72
+ - test/thrift_wordfilter_client_test.rb
73
+ has_rdoc: