w-stdlib 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dd99fef38fdca3611556554681e8145c508f0b47c05666715d22fa9d140b7ae4
4
- data.tar.gz: 18bb93cb4afee1643613ffea02ebf9b184c4ac91d91dd1fb4ee36468eded286d
3
+ metadata.gz: c7f832abbc8f5051f91bb28b7387190d1f798fa04f06a0ac7b113501102a86f9
4
+ data.tar.gz: 675259a0db48cf498afd41086e53009f82df0d9158b47ac25d1f5ecfe92ae817
5
5
  SHA512:
6
- metadata.gz: 88b48766ca40cf10a79c0f72e216c7f94e4ee41b562269a75d357e196703d24d3f21a0c5e73033d804878ffafc2a21d8fa162cca6c7b3ebc6e2c9eeb00d6f7c0
7
- data.tar.gz: 87aaddafa3a127c5c037143452d0f13879e891257eb4594ad5e35ccb8c776f18ccdeeef820b7bd7ec844f118b9c76980a75b70ef1bada17454b3f2f9d5274f75
6
+ metadata.gz: 164c5094b4b58236da56fcb5f6011a1c46b576792026140d126f0c6ab7d95b01613bf3a6b5684849be7773e9c7bec3a82b0d52c7222356bbcebd716feee7c03e
7
+ data.tar.gz: a48e11c480814ec22792362da37c81df326bd2fe39473d27c6e84553a74f9ba0bb2b1a5e387938ba35c8367a835daeee1bc8e72408fa7d6a2e21ef7ad56fa46b
@@ -5,6 +5,8 @@ require_relative './string'
5
5
  using StringExt
6
6
 
7
7
  module ArrayExt
8
+ SearchResult = Struct.new(:index, :value)
9
+
8
10
  refine Array do
9
11
  def tail
10
12
  self[1..self.length]
@@ -43,6 +45,25 @@ module ArrayExt
43
45
  each { puts _1.to_s }
44
46
  end
45
47
 
48
+ def search_from(i, direction=1, &blk)
49
+ loop do
50
+ i += direction
51
+ return nil if i < 0 || i > length-1
52
+
53
+ item = self[i]
54
+ return SearchResult.new(i, item) if yield(item)
55
+ end
56
+ end
57
+
58
+ def search_forward(i, &blk)
59
+ search_from(i, 1, &blk)
60
+ end
61
+
62
+ def search_backward(i, &blk)
63
+ search_from(i, -1, &blk)
64
+ end
65
+
66
+
46
67
  def search(str)
47
68
  select do
48
69
  s = block_given? ? yield(_1) : _1.to_s
data/w-stdlib.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |g|
2
2
  g.name = 'w-stdlib'
3
- g.version = '0.0.6'
3
+ g.version = '0.0.7'
4
4
  g.summary = 'Pre-alpha package that contains abstractions that I find useful when scripting. Not suitable for production use. Breaking changes highly likely even with minor version bumps. Use at your own risk'
5
5
  g.description = g.summary
6
6
  g.authors = ['will@btlr.dev']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: w-stdlib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - will@btlr.dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-15 00:00:00.000000000 Z
11
+ date: 2022-02-20 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Pre-alpha package that contains abstractions that I find useful when
14
14
  scripting. Not suitable for production use. Breaking changes highly likely even