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.
- checksums.yaml +5 -5
- data/README.md +1 -1
- data/lib/sliding_window.rb +6 -5
- metadata +43 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 30efdfeae9fdf79d4bba70a9cd915408d3b4ca18f54c958366e169f04d214da5
|
4
|
+
data.tar.gz: afd60b5918e18b75a09aef5201841b186657bdf51f269829d60bcc22ed57527e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd3619aaaf3b27b1a42d692b775ae6ff2832f4420b6d79bb1b23757474b81f795f0ba8ee0370ef7a1aa6011a2ae2eb1539bebf9eeee14b4dd2806ce6ff8ae2c1
|
7
|
+
data.tar.gz: 96b7894a7ffe808448b8c3c3cc02926b227841dd13a4a2d80a6b720d9bc51210f9e2670e60ecfcbdbd7ffc4c0e991b0d38524f9fe6146bce0c50afaf72576124
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Sliding Window [](https://travis-ci.org/nathankleyn/sliding_window) [](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
|
|
data/lib/sliding_window.rb
CHANGED
@@ -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
|
-
|
19
|
-
|
20
|
-
|
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
|
-
|
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.
|
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:
|
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.
|
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.
|
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:
|
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:
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
97
|
-
|
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.
|
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:
|