ffi-hunspell 0.6.0 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b29a3ff5f68640f1c8123c5895074ed2d986961a15fd3f8921baf1bd83769831
4
- data.tar.gz: fcf088c5e73c7c6dd5ac23db60a8c14c9be58a4dea16e7aa2d0006ed5f019694
3
+ metadata.gz: 73c2a507e6fe1a6f34ff4a97f4db79c0518f5d352386c82cc69e6c35bfbe075a
4
+ data.tar.gz: dd5c8a8190a2cfa273f07a84fafea7c3422e1a3a4cdd4b6a1d629c465ced350e
5
5
  SHA512:
6
- metadata.gz: ef1c370fd0471c1f50748a6c4775313090b5f676c25ed9976932749149905d80c1c02d574ae8dd553ff7d380ddd7f9b5825f30240ec9f17f45e28ff6e98f2007
7
- data.tar.gz: 365cb6e3fb48e17f1303e76cbd0082e57b0d3d5814f8ff7a2c8c0415fcaa1c3287fedd96ad6c0d94fc2e844d459a07556df38bd5ccd64b6f470c8e75bc860236
6
+ metadata.gz: db867a438a0c6546d3175bf086ec999f905f27bbe663cc3a8758fd43516bb1968843f16800f6bf2f2322356005fd84e7c5915e2a964abb1b6cd8d7ce57f82d2b
7
+ data.tar.gz: 1af4a53d595bf279a43db1e1a3c5d8cdbe5439ef8853f4e829cc7b38115e1632a770c41af401645f427e5b85f7449257edc00f8434e205eee488d5c45cde7908
@@ -1,10 +1,6 @@
1
1
  name: CI
2
2
 
3
- on:
4
- push:
5
- branches: [ master ]
6
- pull_request:
7
- branches: ['**']
3
+ on: [ push, pull_request ]
8
4
 
9
5
  jobs:
10
6
  tests:
@@ -17,6 +13,7 @@ jobs:
17
13
  - 2.5
18
14
  - 2.6
19
15
  - 2.7
16
+ - 3.0
20
17
  - jruby
21
18
  name: Ruby ${{ matrix.ruby }}
22
19
  steps:
data/ChangeLog.md CHANGED
@@ -1,3 +1,13 @@
1
+ ### 0.6.1 / 2021-02-12
2
+
3
+ * Fixed a possible memory leak in {FFI::Hunspell::Dictionary#stem} and
4
+ {FFI::Hunspell::Dictionary#suggest}.
5
+ * Prevent a possible memory leak if {FFI::Hunspell::Dictionary#close} is not
6
+ called, which deallocates the underlying libhunspell handler pointer,
7
+ before the dictionary is garbage collected. Note: if
8
+ {FFI::Hunspell::Dictionary.open} is called with a block, the dictionary object
9
+ will explicitly be closed once the block returns.
10
+
1
11
  ### 0.6.0 / 2020-11-28
2
12
 
3
13
  * Added {FFI::Hunspell::Dictionary#add_dic} which adds an extra dictionary
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2020 Hal Brodigan
1
+ Copyright (c) 2010-2021 Hal Brodigan
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -3,7 +3,6 @@
3
3
  * [Source](https://github.com/postmodern/ffi-hunspell)
4
4
  * [Issues](https://github.com/postmodern/ffi-hunspell/issues)
5
5
  * [Documentation](http://rubydoc.info/gems/ffi-hunspell/frames)
6
- * [Email](postmodern.mod3 at gmail.com)
7
6
 
8
7
  ## Description
9
8
 
@@ -64,11 +63,25 @@ dict.suggest('arbitrage')
64
63
  $ gem install ffi-hunspell
65
64
  ```
66
65
 
66
+ ### libhunspell
67
+
68
+ * Debian / Ubuntu:
69
+
70
+ $ sudo apt install libhunspell-dev hunspell-en-us
71
+
72
+ * RedHat / Fedora:
73
+
74
+ $ sudo dnf install hunspell-devel hunspell-en
75
+
76
+ * macOS:
77
+
78
+ $ brew install hunspell
79
+
67
80
  ## License
68
81
 
69
- Copyright (c) 2010-2020 Hal Brodigan
82
+ Copyright (c) 2010-2021 Hal Brodigan
70
83
 
71
84
  See {file:LICENSE.txt} for license information.
72
85
 
73
86
  [libhunspell]: http://hunspell.github.io/
74
- [ffi]: https://github.com/ffi/ffi
87
+ [ffi]: https://github.com/ffi/ffi#readme
data/ffi-hunspell.gemspec CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |gem|
20
20
  gem.authors = Array(gemspec['authors'])
21
21
  gem.email = gemspec['email']
22
22
  gem.homepage = gemspec['homepage']
23
+ gem.metadata = gemspec['metadata'] if gemspec['metadata']
23
24
 
24
25
  glob = lambda { |patterns| gem.files & Dir[*patterns] }
25
26
 
data/gemspec.yml CHANGED
@@ -7,6 +7,12 @@ email: postmodern.mod3@gmail.com
7
7
  homepage: https://github.com/postmodern/ffi-hunspell#readme
8
8
  has_yard: true
9
9
 
10
+ metadata:
11
+ documentation_uri: https://rubydoc.info/gems/ffi-hunspell
12
+ source_code_uri: https://github.com/postmodern/ffi-hunspell
13
+ bug_tracker_uri: https://github.com/postmodern/ffi-hunspell/issues
14
+ changelog_uri: https://github.com/postmodern/ffi-hunspell/blob/master/ChangeLog.md
15
+
10
16
  requirements: libhunspell >= 1.2.0, <= 1.7.0
11
17
 
12
18
  required_ruby_version: ">= 1.9.1"
@@ -37,9 +37,11 @@ module FFI
37
37
  raise("invalid dic path #{dic_path.inspect}")
38
38
  end
39
39
 
40
- @ptr = if key then Hunspell.Hunspell_create_key(affix_path,dic_path,key)
41
- else Hunspell.Hunspell_create(affix_path,dic_path)
42
- end
40
+ ptr = if key then Hunspell.Hunspell_create_key(affix_path,dic_path,key)
41
+ else Hunspell.Hunspell_create(affix_path,dic_path)
42
+ end
43
+
44
+ @ptr = FFI::AutoPointer.new(ptr,Hunspell.method(:Hunspell_destroy))
43
45
  end
44
46
 
45
47
  #
@@ -207,6 +209,8 @@ module FFI
207
209
 
208
210
  if count > 0
209
211
  stems = ptr.get_array_of_string(0,count)
212
+
213
+ Hunspell.Hunspell_free_list(self,output,count)
210
214
  end
211
215
  end
212
216
 
@@ -231,6 +235,8 @@ module FFI
231
235
 
232
236
  if count > 0
233
237
  suggestions = ptr.get_array_of_string(0,count)
238
+
239
+ Hunspell.Hunspell_free_list(self,output,count)
234
240
  end
235
241
  end
236
242
 
@@ -243,9 +249,11 @@ module FFI
243
249
  # @return [nil]
244
250
  #
245
251
  def close
246
- Hunspell.Hunspell_destroy(self)
252
+ if @ptr
253
+ @ptr.free
254
+ @ptr = nil
255
+ end
247
256
 
248
- @ptr = nil
249
257
  return nil
250
258
  end
251
259
 
@@ -2,6 +2,6 @@ module FFI
2
2
  module Hunspell
3
3
  # ffi-hunspell versiont
4
4
  # @since 0.5.0
5
- VERSION = '0.6.0'
5
+ VERSION = '0.6.1'
6
6
  end
7
7
  end
@@ -58,7 +58,8 @@ describe Hunspell::Dictionary do
58
58
  end
59
59
 
60
60
  describe "#add_dic" do
61
- let(:extra_dic) { File.join(File.dirname(__FILE__),'fixtures/extra.dic') }
61
+ let(:fixtures_dir) { File.expand_path('../fixtures',__FILE__) }
62
+ let(:extra_dic) { File.join(fixtures_dir,'extra.dic') }
62
63
 
63
64
  if FFI::Hunspell.respond_to?(:Hunspell_add_dic)
64
65
  context "when libhunspell supports add_dic" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-hunspell
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Postmodern
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-28 00:00:00.000000000 Z
11
+ date: 2021-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -70,7 +70,11 @@ files:
70
70
  homepage: https://github.com/postmodern/ffi-hunspell#readme
71
71
  licenses:
72
72
  - MIT
73
- metadata: {}
73
+ metadata:
74
+ documentation_uri: https://rubydoc.info/gems/ffi-hunspell
75
+ source_code_uri: https://github.com/postmodern/ffi-hunspell
76
+ bug_tracker_uri: https://github.com/postmodern/ffi-hunspell/issues
77
+ changelog_uri: https://github.com/postmodern/ffi-hunspell/blob/master/ChangeLog.md
74
78
  post_install_message:
75
79
  rdoc_options: []
76
80
  require_paths: