mecab-light 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/ext/extconf.rb +7 -0
- data/ext/mecab_light_binding.c +53 -0
- data/lib/mecab/light/tagger.rb +2 -7
- data/lib/mecab/light/version.rb +1 -1
- data/lib/mecab/light.rb +1 -2
- data/mecab-light.gemspec +1 -2
- data/spec/mecab_spec.rb +4 -6
- metadata +7 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77a05bf9485489ccba812f53eb6976d9688fa170
|
4
|
+
data.tar.gz: 5352eec6b99dd1f96754a70a54e06d0c8e773c68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11117258db644f31ae7fd45f2c7df69aa474aaebf34b3945d1defa1deced0514f155206904f7065c5beeaaaaaf9fe27baa71852c6905f31ba57e4a080381655a
|
7
|
+
data.tar.gz: 162454bcaede7008c631d391204e86b48a36064e3eac4ebb5d31c3a4cb93497c9951b46929ad56cb33ce8a15352895409651b798be6dc175c2450cc9043faf5a
|
data/README.md
CHANGED
@@ -4,11 +4,6 @@ Use a sequence of results as an Enumerable object.
|
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
|
-
This gem works without official binding.
|
8
|
-
MeCab::Light is a 'light' tool.
|
9
|
-
This supports only the 'parse' method for now,
|
10
|
-
and the method's feature is totally different from its original.
|
11
|
-
|
12
7
|
Add this line to your application's Gemfile:
|
13
8
|
|
14
9
|
gem 'mecab-light'
|
@@ -23,6 +18,11 @@ Or install it yourself as:
|
|
23
18
|
|
24
19
|
## Usage
|
25
20
|
|
21
|
+
This gem works without official binding.
|
22
|
+
MeCab::Light is a 'light' tool.
|
23
|
+
This supports only the 'parse' method for now,
|
24
|
+
and the method's feature is totally different from its original.
|
25
|
+
|
26
26
|
```ruby
|
27
27
|
require 'mecab/light'
|
28
28
|
|
data/ext/extconf.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
#include <ruby.h>
|
2
|
+
#include <ruby/encoding.h>
|
3
|
+
#include <mecab.h>
|
4
|
+
|
5
|
+
struct binding {
|
6
|
+
mecab_t* mecab;
|
7
|
+
};
|
8
|
+
|
9
|
+
static VALUE
|
10
|
+
binding_alloc(VALUE klass)
|
11
|
+
{
|
12
|
+
struct binding* ptr = ALLOC(struct binding);
|
13
|
+
return Data_Wrap_Struct(klass, 0, -1, ptr);
|
14
|
+
}
|
15
|
+
|
16
|
+
static VALUE
|
17
|
+
rb_mecab_light_binding_initialize(VALUE self, VALUE arg)
|
18
|
+
{
|
19
|
+
struct binding* ptr;
|
20
|
+
|
21
|
+
Data_Get_Struct(self, struct binding, ptr);
|
22
|
+
ptr->mecab = mecab_new2(RSTRING_PTR(arg));
|
23
|
+
return Qnil;
|
24
|
+
}
|
25
|
+
|
26
|
+
static VALUE
|
27
|
+
rb_mecab_light_binding_parse_to_s(VALUE self, VALUE str)
|
28
|
+
{
|
29
|
+
struct binding* ptr;
|
30
|
+
const char* result;
|
31
|
+
rb_encoding* enc;
|
32
|
+
|
33
|
+
Data_Get_Struct(self, struct binding, ptr);
|
34
|
+
enc = rb_enc_get(str);
|
35
|
+
result = mecab_sparse_tostr(ptr->mecab, RSTRING_PTR(str));
|
36
|
+
return rb_enc_associate(rb_str_new2(result), enc);
|
37
|
+
}
|
38
|
+
|
39
|
+
void
|
40
|
+
Init_mecab_light_binding()
|
41
|
+
{
|
42
|
+
VALUE rb_mMeCab, rb_mMeCab_Light, rb_cMeCab_Light_Binding;
|
43
|
+
|
44
|
+
rb_mMeCab = rb_define_module("MeCab");
|
45
|
+
rb_mMeCab_Light = rb_define_module_under(rb_mMeCab, "Light");
|
46
|
+
rb_cMeCab_Light_Binding = rb_define_class_under(rb_mMeCab_Light,
|
47
|
+
"Binding", rb_cObject);
|
48
|
+
rb_define_alloc_func(rb_cMeCab_Light_Binding, binding_alloc);
|
49
|
+
rb_define_private_method(rb_cMeCab_Light_Binding, "initialize",
|
50
|
+
rb_mecab_light_binding_initialize, 1);
|
51
|
+
rb_define_method(rb_cMeCab_Light_Binding, "parse_to_s",
|
52
|
+
rb_mecab_light_binding_parse_to_s, 1);
|
53
|
+
}
|
data/lib/mecab/light/tagger.rb
CHANGED
@@ -2,7 +2,7 @@ module MeCab
|
|
2
2
|
module Light
|
3
3
|
class Tagger
|
4
4
|
def initialize
|
5
|
-
@mecab = Binding.
|
5
|
+
@mecab = Binding.new('')
|
6
6
|
end
|
7
7
|
|
8
8
|
def parse(string)
|
@@ -11,12 +11,7 @@ module MeCab
|
|
11
11
|
|
12
12
|
private
|
13
13
|
def parse_to_enum(string)
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
def parse_to_str(string)
|
18
|
-
encoding = Encoding.default_external
|
19
|
-
Binding.mecab_sparse_tostr(@mecab, string).force_encoding(encoding)
|
14
|
+
@mecab.parse_to_s(string).sub(/EOS\n$/, '').each_line
|
20
15
|
end
|
21
16
|
end
|
22
17
|
end
|
data/lib/mecab/light/version.rb
CHANGED
data/lib/mecab/light.rb
CHANGED
data/mecab-light.gemspec
CHANGED
@@ -17,8 +17,7 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
gem.required_ruby_version = '>= 1.9'
|
20
|
-
|
21
|
-
gem.add_runtime_dependency 'ffi'
|
20
|
+
gem.extensions << 'ext/extconf.rb'
|
22
21
|
|
23
22
|
gem.add_development_dependency 'rake'
|
24
23
|
gem.add_development_dependency 'rspec'
|
data/spec/mecab_spec.rb
CHANGED
@@ -10,14 +10,12 @@ end
|
|
10
10
|
|
11
11
|
module MeCab
|
12
12
|
module Light
|
13
|
-
|
14
|
-
def
|
15
|
-
:dummy_mecab
|
13
|
+
class Binding
|
14
|
+
def initialize(option)
|
16
15
|
end
|
17
16
|
|
18
|
-
def
|
19
|
-
|
20
|
-
result.force_encoding('ASCII-8BIT')
|
17
|
+
def parse_to_s(string)
|
18
|
+
"見る\t動詞,自立,*,*,一段,基本形,見る,ミル,ミル\nEOS\n"
|
21
19
|
end
|
22
20
|
end
|
23
21
|
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mecab-light
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hajime WAKAHARA
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: ffi
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: rake
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,7 +42,8 @@ description: Use a sequence of results as an Enumerable object.
|
|
56
42
|
email:
|
57
43
|
- hajime.wakahara@gmail.com
|
58
44
|
executables: []
|
59
|
-
extensions:
|
45
|
+
extensions:
|
46
|
+
- ext/extconf.rb
|
60
47
|
extra_rdoc_files: []
|
61
48
|
files:
|
62
49
|
- .gitignore
|
@@ -64,6 +51,8 @@ files:
|
|
64
51
|
- LICENSE.txt
|
65
52
|
- README.md
|
66
53
|
- Rakefile
|
54
|
+
- ext/extconf.rb
|
55
|
+
- ext/mecab_light_binding.c
|
67
56
|
- lib/mecab/light.rb
|
68
57
|
- lib/mecab/light/binding.rb
|
69
58
|
- lib/mecab/light/morpheme.rb
|
@@ -91,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
80
|
version: '0'
|
92
81
|
requirements: []
|
93
82
|
rubyforge_project:
|
94
|
-
rubygems_version: 2.0.
|
83
|
+
rubygems_version: 2.0.0
|
95
84
|
signing_key:
|
96
85
|
specification_version: 4
|
97
86
|
summary: A Thin Wrapper for mecab-ruby
|