sliding_window 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: