natto 0.1.1 → 0.2.0

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/README.md CHANGED
@@ -33,8 +33,7 @@ e.g., for Cygwin
33
33
  mecab = Natto::MeCab.new
34
34
  => #<Natto::MeCab:0x28d93dd4 @options={}, \
35
35
  @dicts=[#<Natto::DictionaryInfo:0x28d93d34>], \
36
- @ptr=#<FFI::Pointer address=0x28af3e58>, \
37
- @version="0.98">
36
+ @ptr=#<FFI::Pointer address=0x28af3e58>>
38
37
 
39
38
  puts mecab.version
40
39
  => 0.98
@@ -47,7 +46,6 @@ e.g., for Cygwin
47
46
  => utf8
48
47
 
49
48
  puts mecab.parse('暑い日にはもってこいの一品ですね。')
50
- 暑い日にはもってこいの一品ですね。
51
49
  暑い 形容詞,自立,*,*,形容詞・アウオ段,基本形,暑い,アツイ,アツイ
52
50
  日 名詞,非自立,副詞可能,*,*,*,日,ヒ,ヒ
53
51
  に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
@@ -72,11 +70,15 @@ e.g., for Cygwin
72
70
 
73
71
  ## Changelog
74
72
 
73
+ - __2011/01/19__: 0.2.0 release.
74
+ - Added support for mecab option allocate-sentence
75
+ - Continuing update of documentation
76
+
75
77
  - __2011/01/15__: 0.1.1 release.
76
- - Internal tweak to accessor for version in Natto::MeCab
78
+ - Refactored Natto::DictionaryInfo#method_missing
77
79
  - Continuing update of documentation
78
80
 
79
- - __2011/01/14__: 0.1.0 release.
81
+ - __2011/01/15__: 0.1.0 release.
80
82
  - Added accessors to Natto::DictionaryInfo
81
83
  - Added accessor for version in Natto::MeCab
82
84
  - Continuing update of documentation
data/lib/natto.rb CHANGED
@@ -17,8 +17,7 @@ module Natto
17
17
  # mecab = Natto::MeCab.new
18
18
  # => #<Natto::MeCab:0x28d93dd4 @options={}, \
19
19
  # @dicts=[#<Natto::DictionaryInfo:0x28d93d34>], \
20
- # @ptr=#<FFI::Pointer address=0x28af3e58>, \
21
- # @version="0.98">
20
+ # @ptr=#<FFI::Pointer address=0x28af3e58>>
22
21
  #
23
22
  # puts mecab.parse("ネバネバの組み合わせ美味しいです。")
24
23
  # ネバネバ 名詞,サ変接続,*,*,*,*,ネバネバ,ネバネバ,ネバネバ
@@ -32,14 +31,14 @@ module Natto
32
31
  #
33
32
  class MeCab
34
33
 
35
- attr_reader :options, :dicts, :version
34
+ attr_reader :options, :dicts
36
35
 
37
36
  # Supported options to the <tt>mecab</tt> parser.
38
37
  # See the <tt>mecab</tt> help for more details.
39
38
  SUPPORTED_OPTS = [ :rcfile, :dicdir, :userdic, :lattice_level, :all_morphs,
40
39
  :output_format_type, :partial, :node_format, :unk_format,
41
40
  :bos_format, :eos_format, :eon_format, :unk_feature,
42
- :nbest, :theta, :cost_factor ].freeze
41
+ :allocate_sentence, :nbest, :theta, :cost_factor ].freeze
43
42
 
44
43
  # Initializes the wrapped <tt>mecab</tt> instance with the
45
44
  # given <tt>options</tt> hash.
@@ -59,6 +58,7 @@ module Natto
59
58
  # - :eos_format -- user-defined end-of-sentence format
60
59
  # - :eon_format -- user-defined end-of-NBest format
61
60
  # - :unk_feature -- feature for unknown word
61
+ # - :allocate_sentence -- allocate new memory for input sentence
62
62
  # - :nbest -- output N best results (integer, default 1)
63
63
  # - :theta -- temperature parameter theta (float, default 0.75)
64
64
  # - :cost_factor -- cost factor (integer, default 700)
@@ -69,8 +69,7 @@ module Natto
69
69
  # mecab = Natto::MeCab.new(:node_format=>'%m\t%f[7]\n')
70
70
  # => #<Natto::MeCab:0x28d8886c @options={:node_format=>"%m\\t%f[7]\\n"}, \
71
71
  # @dicts=[#<Natto::DictionaryInfo:0x28d8863c>], \
72
- # @ptr=#<FFI::Pointer address=0x28e3b268>, \
73
- # @version="0.98">
72
+ # @ptr=#<FFI::Pointer address=0x28e3b268>>
74
73
  #
75
74
  # puts mecab.parse('簡単で美味しくて良いですよね。')
76
75
  # 簡単 カンタン
@@ -100,8 +99,6 @@ module Natto
100
99
  @dicts << Natto::DictionaryInfo.new(@dicts.last[:next])
101
100
  end
102
101
 
103
- @version = Natto::Binding.mecab_version
104
-
105
102
  ObjectSpace.define_finalizer(self, self.class.create_free_proc(@ptr))
106
103
  end
107
104
 
@@ -115,6 +112,13 @@ module Natto
115
112
  raise(MeCabError.new(Natto::Binding.mecab_strerror(@ptr)))
116
113
  end
117
114
 
115
+ # Returns the <tt>mecab</tt> library version.
116
+ #
117
+ # @return [String] <tt>mecab</tt> library version
118
+ def version
119
+ Natto::Binding.mecab_version
120
+ end
121
+
118
122
  # Returns a <tt>Proc</tt> that will properly free resources
119
123
  # when this <tt>MeCab</tt> instance is garbage collected.
120
124
  # The <tt>Proc</tt> returned is registered to be invoked
@@ -139,8 +143,8 @@ module Natto
139
143
  SUPPORTED_OPTS.each do |k|
140
144
  if options.has_key? k
141
145
  key = k.to_s.gsub('_', '-')
142
- # all-morphs and partial are just flags
143
- if %w( all-morphs partial ).include? key
146
+ # all-morphs, partial, and allocate-sentence are just flags
147
+ if %w( all-morphs partial allocate-sentence ).include? key
144
148
  opt << "--#{key}" if options[k]==true
145
149
  else
146
150
  opt << "--#{key}=#{options[k]}"
@@ -227,8 +231,11 @@ module Natto
227
231
  # @raise [NoMethodError] if <tt>methName</tt> is not a member of this <tt>mecab</tt> dictionary <tt>FFI::Struct</tt>
228
232
  def method_missing(methName)
229
233
  member_sym = methName.id2name.to_sym
230
- return self[member_sym] if self.members.include?(member_sym)
231
- raise(NoMethodError.new("undefined method '#{methName}' for #{self}"))
234
+ if self.members.include?(member_sym)
235
+ self[member_sym]
236
+ else
237
+ raise(NoMethodError.new("undefined method '#{methName}' for #{self}"))
238
+ end
232
239
  end
233
240
  end
234
241
  end
data/lib/natto/version.rb CHANGED
@@ -16,5 +16,5 @@
16
16
  # which are made available via <tt>FFI</tt> bindings to <tt>mecab</tt>.
17
17
  module Natto
18
18
  # Version string for this Rubygem.
19
- VERSION = "0.1.1"
19
+ VERSION = "0.2.0"
20
20
  end
data/test/test_natto.rb CHANGED
@@ -69,6 +69,9 @@ class TestNatto < Test::Unit::TestCase
69
69
  res = Natto::MeCab.build_options_str(:unk_feature=>'%m\t%f[7]\n')
70
70
  assert_equal('--unk-feature=%m\t%f[7]\n', res)
71
71
 
72
+ res = Natto::MeCab.build_options_str(:allocate_sentence=>true)
73
+ assert_equal('--allocate-sentence', res)
74
+
72
75
  res = Natto::MeCab.build_options_str(:nbest=>42)
73
76
  assert_equal('--nbest=42', res)
74
77
 
@@ -102,7 +105,7 @@ class TestNatto < Test::Unit::TestCase
102
105
  end
103
106
  assert_equal(opts, m.options)
104
107
 
105
- opts = {:all_morphs=>true, :partial=>true}
108
+ opts = {:all_morphs=>true, :partial=>true, :allocate_sentence=>true}
106
109
  assert_nothing_raised do
107
110
  m = Natto::MeCab.new(opts)
108
111
  end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 1
8
- - 1
9
- version: 0.1.1
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Brooke M. Fujita
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-01-15 00:00:00 +09:00
17
+ date: 2011-01-20 00:00:00 +09:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -54,8 +54,10 @@ licenses:
54
54
  - BSD
55
55
  post_install_message:
56
56
  rdoc_options:
57
+ - LICENSE
58
+ - README.md
57
59
  - --title
58
- - natto 0.1.1 -- Ruby-Mecab binding
60
+ - natto 0.2.0 -- Ruby-Mecab binding
59
61
  - --main
60
62
  - README.md
61
63
  - -c UTF-8