sliding_window 1.0.0 → 1.1.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.
Files changed (4) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +1 -1
  3. data/lib/sliding_window.rb +6 -5
  4. metadata +43 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7064b873b87732312ca43a607a89453258225da9
4
- data.tar.gz: 7c38068b3bb1c1944f4deacc703f92640cf233eb
2
+ SHA256:
3
+ metadata.gz: 30efdfeae9fdf79d4bba70a9cd915408d3b4ca18f54c958366e169f04d214da5
4
+ data.tar.gz: afd60b5918e18b75a09aef5201841b186657bdf51f269829d60bcc22ed57527e
5
5
  SHA512:
6
- metadata.gz: aecb490e34a82542c0dd7c2b33401c572a0ecd11b9fc84a39bac3359cc2adff7352204f7481bb8923dac891df8de069c5076d03fd0c4d1cf4c8a8cff9338e1a2
7
- data.tar.gz: 9c37dabb5be2dcfd607c0c4c82f8bc6684b5ee3b637b90f96cdc70390170baa43e2578dde6f69b628756a681a4a554c0ff82dae8b0767b665217146d17dd400a
6
+ metadata.gz: fd3619aaaf3b27b1a42d692b775ae6ff2832f4420b6d79bb1b23757474b81f795f0ba8ee0370ef7a1aa6011a2ae2eb1539bebf9eeee14b4dd2806ce6ff8ae2c1
7
+ data.tar.gz: 96b7894a7ffe808448b8c3c3cc02926b227841dd13a4a2d80a6b720d9bc51210f9e2670e60ecfcbdbd7ffc4c0e991b0d38524f9fe6146bce0c50afaf72576124
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Sliding Window [![Build Status](https://travis-ci.org/nathankleyn/sliding_windowsvg)](https://travis-ci.org/nathankleyn/sliding_window) [![RubyGems Version Of gitignore_rb](https://img.shields.io/gem/v/sliding_window.svg)](https://rubygems.org/gems/sliding_window)
1
+ # Sliding Window [![Build Status](https://travis-ci.org/nathankleyn/sliding_window.svg)](https://travis-ci.org/nathankleyn/sliding_window) [![RubyGems Version Of gitignore_rb](https://img.shields.io/gem/v/sliding_window.svg)](https://rubygems.org/gems/sliding_window)
2
2
 
3
3
  Implements the sliding window algorithm. This is useful for traversing phrases during NEL processing.
4
4
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Implementation of the sliding window algorithm.
2
4
  class SlidingWindow
3
5
  include Enumerable
@@ -15,9 +17,9 @@ class SlidingWindow
15
17
  # matches (it can be anything), otherwise `nil`. The objects returned
16
18
  # by this block will be yielded to the enumerable.
17
19
  def initialize(buffer, max_size = 5, &block)
18
- fail('The given buffer must respond to #[] and #size.') unless buffer.respond_to?(:[]) && buffer.respond_to?(:size)
19
- fail('The maximum buffer size must be greater than or equal to one.') if max_size.nil? || max_size < 1
20
- fail('A block is required to indicate whether a window matches anything of interest.') unless block_given?
20
+ raise('The given buffer must respond to #[] and #size.') unless buffer.respond_to?(:[]) && buffer.respond_to?(:size)
21
+ raise('The maximum buffer size must be greater than or equal to one.') if max_size.nil? || max_size < 1
22
+ raise('A block is required to indicate whether a window matches anything of interest.') unless block_given?
21
23
 
22
24
  @buffer = buffer
23
25
  @max_size = max_size
@@ -30,8 +32,7 @@ class SlidingWindow
30
32
  position = (0..@max_size - 1)
31
33
 
32
34
  loop do
33
- window = @buffer[position]
34
- match = @mapper.call(window)
35
+ match = @mapper.call(@buffer[position])
35
36
 
36
37
  if match.nil?
37
38
  position = (position.begin..position.end - 1)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sliding_window
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Kleyn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-11 00:00:00.000000000 Z
11
+ date: 2018-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coveralls
@@ -16,85 +16,112 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.8.2
19
+ version: 0.8.22
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.8.2
26
+ version: 0.8.22
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: filewatcher
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.5.2
33
+ version: '1.1'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 1.1.1
34
37
  type: :development
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
- version: 0.5.2
43
+ version: '1.1'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.1.1
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: pry-byebug
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '3.2'
53
+ version: '3.6'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 3.6.0
48
57
  type: :development
49
58
  prerelease: false
50
59
  version_requirements: !ruby/object:Gem::Requirement
51
60
  requirements:
52
61
  - - "~>"
53
62
  - !ruby/object:Gem::Version
54
- version: '3.2'
63
+ version: '3.6'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 3.6.0
55
67
  - !ruby/object:Gem::Dependency
56
68
  name: rspec
57
69
  requirement: !ruby/object:Gem::Requirement
58
70
  requirements:
59
71
  - - "~>"
60
72
  - !ruby/object:Gem::Version
61
- version: '3.3'
73
+ version: '3.8'
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 3.8.0
62
77
  type: :development
63
78
  prerelease: false
64
79
  version_requirements: !ruby/object:Gem::Requirement
65
80
  requirements:
66
81
  - - "~>"
67
82
  - !ruby/object:Gem::Version
68
- version: '3.3'
83
+ version: '3.8'
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 3.8.0
69
87
  - !ruby/object:Gem::Dependency
70
88
  name: rubocop
71
89
  requirement: !ruby/object:Gem::Requirement
72
90
  requirements:
73
91
  - - "~>"
74
92
  - !ruby/object:Gem::Version
75
- version: 0.34.1
93
+ version: 0.59.2
76
94
  type: :development
77
95
  prerelease: false
78
96
  version_requirements: !ruby/object:Gem::Requirement
79
97
  requirements:
80
98
  - - "~>"
81
99
  - !ruby/object:Gem::Version
82
- version: 0.34.1
100
+ version: 0.59.2
83
101
  - !ruby/object:Gem::Dependency
84
102
  name: rubocop-rspec
85
103
  requirement: !ruby/object:Gem::Requirement
86
104
  requirements:
87
105
  - - "~>"
88
106
  - !ruby/object:Gem::Version
89
- version: 1.3.1
107
+ version: '1.29'
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 1.29.1
90
111
  type: :development
91
112
  prerelease: false
92
113
  version_requirements: !ruby/object:Gem::Requirement
93
114
  requirements:
94
115
  - - "~>"
95
116
  - !ruby/object:Gem::Version
96
- version: 1.3.1
97
- description: Ruby implementation of a sliding window algorithm.
117
+ version: '1.29'
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: 1.29.1
121
+ description: |
122
+ Ruby implementation of a sliding window algorithm, which is useful for NLP
123
+ applications where scanning text in fixed-sized windows which shrink
124
+ smaller when no matches are made is useful.
98
125
  email: nathan@nathankleyn.com
99
126
  executables: []
100
127
  extensions: []
@@ -122,9 +149,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
149
  version: '0'
123
150
  requirements: []
124
151
  rubyforge_project:
125
- rubygems_version: 2.4.5.1
152
+ rubygems_version: 2.7.6
126
153
  signing_key:
127
154
  specification_version: 4
128
155
  summary: Ruby implementation of a sliding window algorithm.
129
156
  test_files: []
130
- has_rdoc: