sixarm_ruby_string_index_after 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ec74bdfd908dd2562859fcf66862eb6c35698d8688d099fe0c0f70f26b062a84
4
+ data.tar.gz: c1fd94f7ac928b9025000fe5bad1ce17c30306d910d19f3196275645c81368c4
5
+ SHA512:
6
+ metadata.gz: a9d983733ab49d9f780d0469c96dab2df8f1627f3538326de8f20c6d481c2a82c137c5f18a3779bb9e95c20b4261b7d0540bd92056babcb2b6217fe983296a22
7
+ data.tar.gz: b64c078a896ceb3053bef91c263f15d25ccc62246084af9b35410514e8f67e7f91aadb884913b9068f9582a616b9998b1ee0aade212a78abda52c1ac623ee294
Binary file
Binary file
@@ -0,0 +1,10 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "rake"
3
+ require "rake/testtask"
4
+
5
+ task :default => [:test]
6
+
7
+ Rake::TestTask.new(:test) do |t|
8
+ t.libs.push("lib", "test")
9
+ t.pattern = "test/**/*.rb"
10
+ end
@@ -0,0 +1,6 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin rdoc
3
+ Please see README
4
+ =end
5
+
6
+ require_relative "sixarm_ruby_string_index_after/string/index_after"
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin rdoc
3
+ String#index_after.
4
+ =end
5
+
6
+ class String
7
+
8
+ # Return the index immediately after the first occurrence
9
+ # of the given substring orpattern (regexp) in str.
10
+ #
11
+ # Return nil if not found.
12
+ #
13
+ # The `target` parameter can be a string or a pattern (regexp).
14
+ #
15
+ # The `offset` parameter specifies the position in the string
16
+ # to begin the search; the default is 0 i.e. the string start.
17
+ #
18
+ # Examples:
19
+ #
20
+ # "hello".index_after("ll") => 4
21
+ #
22
+ # "hello".index_after(/[eo]/) => 2
23
+ #
24
+ def index_after(target, offset = 0)
25
+ i = index(target, offset)
26
+ return nil if nil == i
27
+ length = case target
28
+ when String
29
+ target.length
30
+ when Regexp
31
+ m = match(target, offset)
32
+ m ? m.to_s.length : nil
33
+ else
34
+ raise ArgumentError
35
+ end
36
+ return i + length
37
+ end
38
+
39
+ end
@@ -0,0 +1,42 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "sixarm_ruby_string_index_after_test"
3
+
4
+ describe String do
5
+
6
+ describe "#index_after" do
7
+
8
+ describe "with a target that is a string" do
9
+
10
+ it "find" do
11
+ expect("foogoohoo".index_after("oo")).must_equal 3
12
+ end
13
+
14
+ end
15
+
16
+ describe "with a target that is a string, and an offset" do
17
+
18
+ it "finds" do
19
+ expect("foogoohoo".index_after("oo", 3)).must_equal 6
20
+ end
21
+
22
+ end
23
+
24
+ describe "with a target that is a regexp" do
25
+
26
+ it "finds" do
27
+ expect("foogoohoo".index_after(/oo/)).must_equal 3
28
+ end
29
+
30
+ end
31
+
32
+ describe "with a target that is a regexp, and an offset" do
33
+
34
+ it "finds" do
35
+ expect("foogoohoo".index_after(/oo/, 3)).must_equal 6
36
+ end
37
+
38
+ end
39
+
40
+ end
41
+
42
+ end
metadata ADDED
@@ -0,0 +1,189 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sixarm_ruby_string_index_after
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - SixArm
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIFPDCCAyQCCQDx7Y5LWGuPPzANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJV
14
+ UzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEP
15
+ MA0GA1UECgwGU2l4QXJtMRMwEQYDVQQDDApzaXhhcm0uY29tMB4XDTE4MDExMzIy
16
+ NDYyM1oXDTIwMTAwOTIyNDYyM1owYDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh
17
+ bGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xDzANBgNVBAoMBlNpeEFy
18
+ bTETMBEGA1UEAwwKc2l4YXJtLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
19
+ AgoCggIBAMMPPjYWd77gRmOEkMb+1H9+ckIHlA325OkES2g5Y58hIDzZYTGIxjSP
20
+ 3N7uYx5qR8qZvuO4F1McGJ/NES2robjQcV/aIRXD+5RjbokyYYGJlJujm5c/wZme
21
+ Us7pOzQxc8QcogsdInwQ6O9hTQ4zBdOFZt6YBp5y9ycXVIApBnxJHBU3W6Ir1hl6
22
+ 3v6RYBgHFd3g0dCwuBoaYZE5MU/4q91vc48XhioqXdJlaDyw1ZMyvE+loi+8quVg
23
+ bpUadC/QUZukABYCu6rS6fiRLffmMy/Db7d8b1fP+J1i4bL5atF4xz8c1BDwc2x1
24
+ mXJDUBznMSDpmjAkUwDjh+330tYT/VTioqobCMSLfwgJI2Uqrr8H8N9yeSsOMAup
25
+ nJKnJHXeZPEGAr2LBCcok2KUcdugdYq/0C+ec1bU8BHDDoEOM54rhPKKmCJentO6
26
+ KJRoJfu0ovQj1/BvSksUUWdvhy6jzXviyQq44GKEwsJix6sdNKEpndVDQGOvHPg5
27
+ gcakte7KrpK2Udwy+dK+caHJWXOouHPPFfdZWr5U9DkNjtvvQrwQUsMxECoByKYA
28
+ 7wmX3SwzodtuzAPGzxuwkqwy1RtHAfbrFINFBxP35G/f16x2mtwEpqsdS4LE+c0C
29
+ l3eEQ8xIv3ijKUZek87Uxk7/JH76C3/9tSQeFkt0NkEduHOR1H7RAgMBAAEwDQYJ
30
+ KoZIhvcNAQELBQADggIBALIBNN7zUhFldUaXWGwv6032ZwM2Sm1U8VF8YaH71NLg
31
+ FhlcuJ0JLkGlxT0/68acS0EwoqOEgaHyPx8eodjyDv2MuJlWJGXIgHgLD66Tu0VA
32
+ Wt1sgA823Rl35WVSMqiyoxwsrGFwMtayNrrlpdhB8Ny8CMA2NfKyEJkh4+xlE72a
33
+ D8Eu8NFr9Tt5lHWXdZBI5BhzhQxPPxeIuw0wZ3+kiwxRie7K4XhKsOIrPmu2i6QV
34
+ Yl/663wZgWpqrroSnc3PE3lsuTW7quUvayjtqMTU2qrh7i21oB+/Nn+I6gcxYJZb
35
+ UlK+tvsqoM94U6sFTjw9mDt62MLQGrJtHShS+ZZiGmWj1sKreuwGJnCVDoBk15xa
36
+ oqlvfvLAMBCqlfrHhvGUfbIMgzb9uXNmCjzYMsQxuIgF6IMis6Kq02NBAR91HPMe
37
+ 2RoY7CdBHMxW+O0tgS2xoQbOwb+ti1j4MbsWpCqS9Mteck0Z7jZpRRrUDjXU+/7Z
38
+ RmW9HX0oLIoCBDChCcEKG0Ma4IvHUgjv47f5iYpkXuhifiK4xMG/s+T5Euw3Wg9J
39
+ tzpk/VnZXj7Ek/earx+N/Z+Wtnl2xENm5IF8SFPeI1HFa9NH47pqtxF1YKpNIEVc
40
+ 2xa2BNHSePe7tys/2hbmZuyMu8X5ERmovsabSXB3a+YwtJh5c2jhA21wF7986s0q
41
+ -----END CERTIFICATE-----
42
+ date: 2018-02-06 00:00:00.000000000 Z
43
+ dependencies:
44
+ - !ruby/object:Gem::Dependency
45
+ name: minitest
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 5.11.1
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: '6'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 5.11.1
61
+ - - "<"
62
+ - !ruby/object:Gem::Version
63
+ version: '6'
64
+ - !ruby/object:Gem::Dependency
65
+ name: sixarm_ruby_minitest_extensions
66
+ requirement: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 1.0.8
71
+ - - "<"
72
+ - !ruby/object:Gem::Version
73
+ version: '2'
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 1.0.8
81
+ - - "<"
82
+ - !ruby/object:Gem::Version
83
+ version: '2'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rake
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: 12.3.0
91
+ - - "<"
92
+ - !ruby/object:Gem::Version
93
+ version: '13'
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: 12.3.0
101
+ - - "<"
102
+ - !ruby/object:Gem::Version
103
+ version: '13'
104
+ - !ruby/object:Gem::Dependency
105
+ name: simplecov
106
+ requirement: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 0.10.2
111
+ - - "<"
112
+ - !ruby/object:Gem::Version
113
+ version: '2'
114
+ type: :development
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: 0.10.2
121
+ - - "<"
122
+ - !ruby/object:Gem::Version
123
+ version: '2'
124
+ - !ruby/object:Gem::Dependency
125
+ name: coveralls
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 0.8.21
131
+ - - "<"
132
+ - !ruby/object:Gem::Version
133
+ version: '2'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: 0.8.21
141
+ - - "<"
142
+ - !ruby/object:Gem::Version
143
+ version: '2'
144
+ description: String#index_after method to find the index positon after a match
145
+ email: sixarm@sixarm.com
146
+ executables: []
147
+ extensions: []
148
+ extra_rdoc_files: []
149
+ files:
150
+ - Rakefile
151
+ - lib/sixarm_ruby_string_index_after.rb
152
+ - lib/sixarm_ruby_string_index_after/string/index_after.rb
153
+ - test/sixarm_ruby_string_index_after_test/string/index_after_test.rb
154
+ homepage: http://sixarm.com/
155
+ licenses:
156
+ - Apache-2.0
157
+ - Artistic-2.0
158
+ - BSD-3-Clause
159
+ - CC-BY-NC-SA-4.0
160
+ - AGPL-3.0
161
+ - GPL-2.0
162
+ - GPL-3.0
163
+ - LGPL-3.0
164
+ - MIT
165
+ - MPL-2.0
166
+ - Ruby
167
+ metadata: {}
168
+ post_install_message:
169
+ rdoc_options: []
170
+ require_paths:
171
+ - lib
172
+ required_ruby_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ requirements: []
183
+ rubyforge_project:
184
+ rubygems_version: 2.7.3
185
+ signing_key:
186
+ specification_version: 4
187
+ summary: SixArm.com → Ruby → String#index_after
188
+ test_files:
189
+ - test/sixarm_ruby_string_index_after_test/string/index_after_test.rb
Binary file