natto 0.9.9 → 1.0.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.
@@ -2,7 +2,7 @@
2
2
  module Natto
3
3
 
4
4
  # Module `OptionParse` encapsulates methods and behavior
5
- # for parsing the various `mecab` options supported by
5
+ # for parsing the various MeCab options supported by
6
6
  # `Natto`.
7
7
  module OptionParse
8
8
  require 'optparse'
@@ -10,8 +10,8 @@ module Natto
10
10
  WARNING_LATTICE_LEVEL =
11
11
  ":lattice-level is DEPRECATED, please use :marginal or :nbest\n".freeze
12
12
 
13
- # Mapping of mecab short-style configuration options to the `mecab`
14
- # tagger. See the `mecab` help for more details.
13
+ # Mapping of MeCab short-style configuration options to the MeCab
14
+ # Tagger. See the MeCab help for more details.
15
15
  SUPPORTED_OPTS = { '-r' => :rcfile,
16
16
  '-d' => :dicdir,
17
17
  '-u' => :userdic,
@@ -95,16 +95,15 @@ module Natto
95
95
  end
96
96
 
97
97
  # Returns a string-representation of the options to
98
- # be passed in the construction of the `mecab` tagger.
99
- #
98
+ # be passed in the construction of the MeCab Tagger.
100
99
  # @param options[Hash] options for MeCab
101
- # @return [String] representation of the options to the `mecab` tagger
100
+ # @return [String] representation of the options to the MeCab Tagger
102
101
  def build_options_str(options={})
103
102
  opt = []
104
103
  SUPPORTED_OPTS.values.each do |k|
105
104
  if options.has_key? k
106
105
  key = k.to_s.gsub('_', '-')
107
- if %w( all-morphs allocate-sentence partial ).include? key
106
+ if [ :all_morphs, :partial, :marginal, :allocate_sentence ].include?(k)
108
107
  opt << "--#{key}" if options[k]==true
109
108
  else
110
109
  opt << "--#{key}=#{options[k]}"
@@ -9,11 +9,10 @@ module Natto
9
9
  # the `Natto` module. Please refer to `mecab.h` in the source code
10
10
  # distribution.
11
11
  class MeCabStruct < FFI::Struct
12
- # Provides accessor methods for the members of the `mecab` struct.
13
- #
12
+ # Provides accessor methods for the members of the MeCab struct.
14
13
  # @param attr_name [String] attribute name
15
- # @return member values for the `mecab` struct
16
- # @raise [NoMethodError] if `attr_name` is not a member of this `mecab` struct
14
+ # @return member values for the MeCab struct
15
+ # @raise [NoMethodError] if `attr_name` is not a member of this MeCab struct
17
16
  def method_missing(attr_name)
18
17
  member_sym = attr_name.id2name.to_sym
19
18
  return self[member_sym] if self.members.include?(member_sym)
@@ -22,9 +21,9 @@ module Natto
22
21
  end
23
22
 
24
23
  # `DictionaryInfo` is a wrapper for the `struct mecab_dictionary_info_t`
25
- # structure holding the `MeCab` instance's related dictionary information.
24
+ # structure holding the MeCab instance's related dictionary information.
26
25
  #
27
- # Values for the `mecab` dictionary attributes may be
26
+ # Values for the MeCab dictionary attributes may be
28
27
  # obtained by using the following `Symbol`s as keys
29
28
  # to the layout associative array of `FFI::Struct` members.
30
29
  #
@@ -38,7 +37,7 @@ module Natto
38
37
  # - :next - pointer to next dictionary in list
39
38
  #
40
39
  # ## Usage
41
- # `mecab` dictionary attributes can be obtained by
40
+ # MeCab dictionary attributes can be obtained by
42
41
  # using their corresponding accessor.
43
42
  #
44
43
  # nm = Natto::MeCab.new
@@ -84,8 +83,7 @@ module Natto
84
83
  # `class` are Object methods. This is a hack to avoid the
85
84
  # `Object#type` deprecation warning thrown up in Ruby 1.8.7
86
85
  # and in JRuby.
87
- #
88
- # @return [Fixnum] `mecab` dictionary type
86
+ # @return [Fixnum] MeCab dictionary type
89
87
  def type
90
88
  self[:type]
91
89
  end
@@ -93,7 +91,6 @@ module Natto
93
91
 
94
92
  # Initializes this dictionary info instance.
95
93
  # Sets the `DictionaryInfo` filepath value.
96
- #
97
94
  # @param ptr [FFI::Pointer] pointer to MeCab dictionary
98
95
  def initialize(ptr)
99
96
  super(ptr)
@@ -101,14 +98,13 @@ module Natto
101
98
  @filepath = File.absolute_path(self[:filename])
102
99
  end
103
100
 
104
- # Returns human-readable details for this `mecab` dictionary.
101
+ # Returns human-readable details for this MeCab dictionary.
105
102
  # Overrides `Object#to_s`.
106
103
  #
107
104
  # - encoded object id
108
105
  # - real file path to this dictionary
109
106
  # - dictionary charset
110
107
  # - dictionary type
111
- #
112
108
  # @return [String] encoded object id, file path to dictionary, charset and
113
109
  # type
114
110
  def to_s
@@ -119,7 +115,6 @@ module Natto
119
115
  end
120
116
 
121
117
  # Overrides `Object#inspect`.
122
- #
123
118
  # @return [String] encoded object id, dictionary filename, and charset
124
119
  # @see #to_s
125
120
  def inspect
@@ -148,7 +143,7 @@ module Natto
148
143
  # `MeCabNode` is a wrapper for the `struct mecab_node_t`
149
144
  # structure holding the parsed `node`.
150
145
  #
151
- # Values for the `mecab` node attributes may be
146
+ # Values for the MeCab node attributes may be
152
147
  # obtained by using the following `Symbol`s as keys
153
148
  # to the layout associative array of `FFI::Struct` members.
154
149
  #
@@ -196,9 +191,9 @@ module Natto
196
191
  # 。 10194
197
192
  #
198
193
  # While it is also possible to use the `Symbol` for the
199
- # `mecab` node member to index into the
194
+ # MeCab node member to index into the
200
195
  # `FFI::Struct` layout associative array, please use the attribute
201
- # accessors. In the case of `:surface` and `:feature`, `mecab`
196
+ # accessors. In the case of `:surface` and `:feature`, MeCab
202
197
  # returns the raw bytes, so `natto` will convert that into
203
198
  # a string using the default encoding.
204
199
  class MeCabNode < MeCabStruct
@@ -209,15 +204,15 @@ module Natto
209
204
  # @return [FFI::Pointer] pointer to MeCab node struct.
210
205
  attr_reader :pointer
211
206
 
212
- # Normal `mecab` node defined in the dictionary, c.f. `stat`.
207
+ # Normal MeCab node defined in the dictionary, c.f. `stat`.
213
208
  NOR_NODE = 0
214
- # Unknown `mecab` node not defined in the dictionary, c.f. `stat`.
209
+ # Unknown MeCab node not defined in the dictionary, c.f. `stat`.
215
210
  UNK_NODE = 1
216
211
  # Virtual node representing the beginning of the sentence, c.f. `stat`.
217
212
  BOS_NODE = 2
218
213
  # Virutual node representing the end of the sentence, c.f. `stat`.
219
214
  EOS_NODE = 3
220
- # Virtual node representing the end of an N-Best `mecab` node list, c.f. `stat`.
215
+ # Virtual node representing the end of an N-Best MeCab node list, c.f. `stat`.
221
216
  EON_NODE = 4
222
217
 
223
218
  layout :prev, :pointer,
@@ -244,8 +239,7 @@ module Natto
244
239
  :cost, :long
245
240
 
246
241
  # Initializes this node instance.
247
- # Sets the `MeCab` feature value for this node.
248
- #
242
+ # Sets the MeCab feature value for this node.
249
243
  # @param nptr [FFI::Pointer] pointer to MeCab node
250
244
  def initialize(nptr)
251
245
  super(nptr)
@@ -256,7 +250,7 @@ module Natto
256
250
  end
257
251
  end
258
252
 
259
- # Returns human-readable details for the `mecab` node.
253
+ # Returns human-readable details for the MeCab node.
260
254
  # Overrides `Object#to_s`.
261
255
  #
262
256
  # - encoded object id
@@ -264,7 +258,6 @@ module Natto
264
258
  # - stat (node type: NOR, UNK, BOS/EOS, EON)
265
259
  # - surface
266
260
  # - feature
267
- #
268
261
  # @return [String] encoded object id, underlying FFI pointer, stat, surface, and feature
269
262
  def to_s
270
263
  [ super.chop,
@@ -275,38 +268,37 @@ module Natto
275
268
  end
276
269
 
277
270
  # Overrides `Object#inspect`.
278
- #
279
271
  # @return [String] encoded object id, stat, surface, and feature
280
272
  # @see #to_s
281
273
  def inspect
282
274
  self.to_s
283
275
  end
284
276
 
285
- # Returns `true` if this is a normal `mecab` node found in the dictionary.
277
+ # Returns `true` if this is a normal MeCab node found in the dictionary.
286
278
  # @return [Boolean]
287
279
  def is_nor?
288
280
  self.stat == NOR_NODE
289
281
  end
290
282
 
291
- # Returns `true` if this is an unknown `mecab` node not found in the dictionary.
283
+ # Returns `true` if this is an unknown MeCab node not found in the dictionary.
292
284
  # @return [Boolean]
293
285
  def is_unk?
294
286
  self.stat == UNK_NODE
295
287
  end
296
288
 
297
- # Returns `true` if this is a virtual `mecab` node representing the beginning of the sentence.
289
+ # Returns `true` if this is a virtual MeCab node representing the beginning of the sentence.
298
290
  # @return [Boolean]
299
291
  def is_bos?
300
292
  self.stat == BOS_NODE
301
293
  end
302
294
 
303
- # Returns `true` if this is a virtual `mecab` node representing the end of the sentence.
295
+ # Returns `true` if this is a virtual MeCab node representing the end of the sentence.
304
296
  # @return [Boolean]
305
297
  def is_eos?
306
298
  self.stat == EOS_NODE
307
299
  end
308
300
 
309
- # Returns `true` if this is a virtual `mecab` node representing the end of the node list.
301
+ # Returns `true` if this is a virtual MeCab node representing the end of the node list.
310
302
  # @return [Boolean]
311
303
  def is_eon?
312
304
  self.stat == EON_NODE
@@ -4,10 +4,9 @@
4
4
  # a binding to MeCab and an API for the `Tagger`,
5
5
  # `Node` and `Lattice` objects.
6
6
  #
7
- # `Natto::MeCab` is a wrapper class for the MeCab `Tagger`.
7
+ # `Natto::MeCab` is a wrapper class for the MeCab Tagger.
8
8
  #
9
- # `Natto::MeCabStruct` is a base class for a `mecab`
10
- # struct.
9
+ # `Natto::MeCabStruct` is a base class for a MeCab struct.
11
10
  #
12
11
  # `Natto::MeCabNode` is a wrapper for the struct representing
13
12
  # a MeCab `Node`.
@@ -20,14 +19,14 @@
20
19
  # `Natto` module.
21
20
  #
22
21
  # Module `Natto::Binding` encapsulates methods and behavior
23
- # which are made available via `FFI` bindings to `mecab`.
22
+ # which are made available via `FFI` bindings to MeCab.
24
23
  #
25
24
  # Module `OptionParse` encapsulates methods and behavior
26
- # for parsing the various `mecab` options supported by
25
+ # for parsing the various MeCab options supported by
27
26
  # `Natto`.
28
27
  module Natto
29
28
  # Version string for this Rubygem.
30
- VERSION = "0.9.9"
29
+ VERSION = "1.0.0"
31
30
  end
32
31
 
33
32
  # Copyright (c) 2015, Brooke M. Fujita.
metadata CHANGED
@@ -1,111 +1,101 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: natto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.9
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Brooke M. Fujita
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-03-30 00:00:00.000000000 Z
11
+ date: 2015-04-14 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: ffi
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: 1.9.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: 1.9.0
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: minitest
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
- description: ! 'natto provides a naturally Ruby-esque interface to MeCab. It runs
63
- on both CRuby (mri/yarv) and JRuby (jvm). It works with MeCab installations on Windows,
64
- Unix/Linux, and OS X. No compiler is necessary, as natto is not a C extension.
65
-
66
- '
55
+ description: |
56
+ natto provides a naturally Ruby-esque interface to MeCab. It runs on both CRuby (mri/yarv) and JRuby (jvm). It works with MeCab installations on Windows, Unix/Linux, and OS X. No compiler is necessary, as natto is not a C extension.
67
57
  email: buruzaemon@gmail.com
68
58
  executables: []
69
59
  extensions: []
70
60
  extra_rdoc_files: []
71
61
  files:
62
+ - ".yardopts"
63
+ - CHANGELOG
64
+ - LICENSE
65
+ - README.md
72
66
  - lib/natto.rb
73
67
  - lib/natto/binding.rb
74
68
  - lib/natto/natto.rb
75
69
  - lib/natto/option_parse.rb
76
70
  - lib/natto/struct.rb
77
71
  - lib/natto/version.rb
78
- - README.md
79
- - LICENSE
80
- - CHANGELOG
81
- - .yardopts
82
72
  homepage: https://github.com/buruzaemon/natto
83
73
  licenses:
84
74
  - BSD
75
+ metadata: {}
85
76
  post_install_message:
86
77
  rdoc_options: []
87
78
  require_paths:
88
79
  - lib
89
80
  required_ruby_version: !ruby/object:Gem::Requirement
90
- none: false
91
81
  requirements:
92
- - - ! '>='
82
+ - - ">="
93
83
  - !ruby/object:Gem::Version
94
84
  version: '1.9'
95
85
  required_rubygems_version: !ruby/object:Gem::Requirement
96
- none: false
97
86
  requirements:
98
- - - ! '>='
87
+ - - ">="
99
88
  - !ruby/object:Gem::Version
100
89
  version: '0'
101
90
  requirements:
102
- - MeCab, 0.996 or greater
91
+ - MeCab 0.996
103
92
  - FFI, 1.9.0 or greater
104
93
  rubyforge_project:
105
- rubygems_version: 1.8.23.2
94
+ rubygems_version: 2.4.5
106
95
  signing_key:
107
- specification_version: 3
96
+ specification_version: 4
108
97
  summary: A gem leveraging FFI (foreign function interface), natto combines the Ruby
109
98
  programming language with MeCab, the part-of-speech and morphological analyzer for
110
99
  the Japanese language.
111
100
  test_files: []
101
+ has_rdoc: