tbpgr_utils 0.0.29 → 0.0.30

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.
data/README.md CHANGED
@@ -32,6 +32,7 @@ Or install it yourself as:
32
32
  |[TbpgrUtils Array#together_empty?](#arraytogether_empty) |together version of Array#empty?. together_empty? has alias :tempty? |
33
33
  |[TbpgrUtils Array#together_fill](#arraytogether_fill) |together version of Array#fill. together_fill has alias :tfill |
34
34
  |[TbpgrUtils Array#together_first](#arraytogether_first) |together version of Array#first. together_first has alias :tfirst |
35
+ |[TbpgrUtils Array#together_include?](#arraytogether_include) |together version of Array#include?. together_include? has alias :tinclude? |
35
36
  |[TbpgrUtils Array#together_map](#arraytogether_mapor-tmap-together_collect-tcollect) |together version of Enumerable#map. together_map has aliases [:tmap, :together_collect, :tcollect] |
36
37
  |[TbpgrUtils Array#together_map!](#arraytogether_map-1or-tmap-1-together_collect-1-tcollect-1) |together version of Enumerable#map!. together_map! has aliases [:tmap!, :together_collect!, :tcollect!] |
37
38
  |[TbpgrUtils Array#together_reduce](#arraytogether_reduceor-treduce-together_inject-tinject) |together version of Enumerable#reduce. together_reduce has aliases [:treduce, :together_inject, :tinject] |
@@ -41,7 +42,7 @@ Or install it yourself as:
41
42
  |[AttributesInitializable::ClassMethods.attr_accessor_init](#attributesinitializableclassmethodsattr_accessor_init) |generate attr_accessor + initializer |
42
43
  |[AttributesInitializable::ClassMethods.attr_reader_init](#attributesinitializableclassmethodsattr_reader_init) |generate attr_reader + initializer |
43
44
  |[AttributesInitializable::ClassMethods.attr_writer init](#attributesinitializableclassmethodsattr_writer_init) |generate attr_writer + initializer |
44
- |[TbpgrUtils File.insert_bom](#fileinsert_bom) |insert BOM to UTF-8 File |
45
+ |[TbpgrUtils File.insert_bom](#fileinsert_bom) |insert BOM to UTF-8 File |
45
46
  |[Ghostable module](#ghostable) |help to create ghost method(dynamic method define by ussing method_missing + pattern-method-name) |
46
47
  |[TbpgrUtils Kernel#bulk_define_methods](#kernelbulk_define_methods) |define methods to classes. methods have simple return value. |
47
48
  |[TestToolbox Kernel#capture_stdout](#kernelcapture_stdout) |capture STDOUT |
@@ -328,6 +329,55 @@ print ret # => [[*1..5], [*6..10]]
328
329
 
329
330
  [back to list](#list)
330
331
 
332
+ ### Array#together_include?
333
+ together_include? is bulk version of Array#include?
334
+
335
+ together_include? has alias :tinclude?
336
+
337
+ both include single ret case
338
+ ~~~ruby
339
+ lists = [[*1..5], [*5..9]]
340
+ ret = lists.together_include? 5
341
+ print ret # => true
342
+ ~~~
343
+
344
+ one include single ret case
345
+ ~~~ruby
346
+ lists = [[*1..5], [*5..9]]
347
+ ret = lists.together_include? 9
348
+ print ret # => true
349
+ ~~~
350
+
351
+ both not include single ret case
352
+ ~~~ruby
353
+ lists = [[*1..5], [*5..9]]
354
+ ret = lists.together_include? 10
355
+ print ret # => false
356
+ ~~~
357
+
358
+ both include multi ret case
359
+ ~~~ruby
360
+ lists = [[*1..5], [*5..9]]
361
+ ret = lists.together_include? 5, true
362
+ print ret # => [true, true]
363
+ ~~~
364
+
365
+ one include multi ret case
366
+ ~~~ruby
367
+ lists = [[*1..5], [*5..9]]
368
+ ret = lists.together_include? 9, true
369
+ print ret # => [false, true]
370
+ ~~~
371
+
372
+ both not include multi ret case
373
+ ~~~ruby
374
+ lists = [[*1..5], [*5..9]]
375
+ ret = lists.together_include? 10, true
376
+ print ret # => [false, false]
377
+ ~~~
378
+
379
+ [back to list](#list)
380
+
331
381
  ### Array#together_map(or tmap, together_collect, tcollect)
332
382
  ~~~ruby
333
383
  require 'tbpgr_utils'
@@ -1071,6 +1121,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
1071
1121
  https://github.com/tbpgr/tbpgr_utils_snippets
1072
1122
 
1073
1123
  ## History
1124
+ * version 0.0.30 : add Array#together_include?(alias tinclude?).
1074
1125
  * version 0.0.29 : add Array#together_first(alias tfirst).
1075
1126
  * version 0.0.28 : add Array#together_fill(alias tfill). add File.insert_bom.
1076
1127
  * version 0.0.27 : add Array#together_empty?(alias tempty?)
@@ -1,484 +1,524 @@
1
- # encoding: utf-8
2
- require 'open_classes/object'
3
- require 'open_classes/module'
4
-
5
- # Array
6
- class Array
7
- # Arrays loop together.
8
- #
9
- # alpha = %w{one two three}
10
- # numbers = %w{1 2 3}
11
- # [alpha, numbers].together do |first, second|
12
- # print "#{first}:#{second}\n" # => output one:1, two:2, three:3
13
- # end
14
- def together
15
- if_not_contain_array_rails_type_error
16
- first.each_with_index do |i_v, i|
17
- eval_each_str = get_args_str_for_together i
18
- instance_eval "yield(#{eval_each_str})"
19
- end
20
- end
21
-
22
- # Arrays loop together with index.
23
- #
24
- # alpha = %w{one two three}
25
- # numbers = %w{1 2 3}
26
- # [alpha, numbers].together_with_index do |first, second, index|
27
- # print "#{index.to_s}:#{first}:#{second}\n" # => output 0:one:1, 1:two:2, 2:three:3
28
- # end
29
- def together_with_index
30
- if_not_contain_array_rails_type_error
31
- first.each_with_index do |i_v, i|
32
- eval_each_str = get_args_str_for_together i, true
33
- instance_eval "yield(#{eval_each_str})"
34
- end
35
- end
36
-
37
- # Arrays together map.
38
- #
39
- # together_map has aliases [:tmap, :together_collect, :tcollect]
40
- #
41
- # if you want to single Array return
42
- # alpha = %w{one two three}
43
- # numbers = %w{1 2 3}
44
- # print [alpha, numbers].together_map do |first, second|
45
- # "#{first}:#{second}\n"
46
- # end # => output one:1, two:2, three:3
47
- #
48
- # if you want to multi Array return
49
- # alpha = %w{one two three}
50
- # numbers = %w{1 2 3}
51
- # print [alpha, numbers].together_map do |first, second|
52
- # ["#{first}:#{second}", "#{second}:#{first}"]
53
- # end # => output [['1:one', '2:two', '3:three'], ['one:1', 'two:2', 'three:3']]
54
- def together_map
55
- if_not_contain_array_rails_type_error
56
- ret = []
57
- first.each_with_index do |i_v, i|
58
- eval_each_str = get_args_str_for_together i
59
- each_ret = instance_eval "yield(#{eval_each_str})"
60
- ret = set_together_each_return_map(ret, each_ret, i)
61
- end
62
- ret
63
- end
64
-
65
-
66
- # Arrays together map!.
67
- #
68
- # together_map! has aliases [:tmap!, :together_collect!, :tcollect!]
69
- #
70
- # if you want to single Array return
71
- # alpha = %w{one two three}
72
- # numbers = %w{1 2 3}
73
- # ary = [alpha, numbers]
74
- # ret = ary.together_map! do |first, second|
75
- # "#{first}:#{second}"
76
- # end
77
- # print ret # => output ['one:1', 'two:2', 'three:3']
78
- # print ary # => output ['one:1', 'two:2', 'three:3']
79
- #
80
- # if you want to multi Array return
81
- # alpha = %w{one two three}
82
- # numbers = %w{1 2 3}
83
- # ary = [alpha, numbers]
84
- # ret = ary.together_map! do |first, second|
85
- # ["#{first}:#{second}", "#{second}:#{first}"]
86
- # end
87
- # print ret # => output [['1:one', '2:two', '3:three'], ['one:1', 'two:2', 'three:3']]
88
- # print ary # => output [['1:one', '2:two', '3:three'], ['one:1', 'two:2', 'three:3']]
89
- def together_map!
90
- if_not_contain_array_rails_type_error
91
- ret = []
92
- first.each_with_index do |i_v, i|
93
- eval_each_str = get_args_str_for_together i
94
- each_ret = instance_eval "yield(#{eval_each_str})"
95
- ret = set_together_each_return_map(ret, each_ret, i)
96
- end
97
- clear
98
- ret.each { |v|self << v }
99
- end
100
-
101
- # Arrays loop together select.
102
- #
103
- # together_select has aliases [:tselect, :together_find_all, :tfindall]
104
- #
105
- # if you want to single Array return
106
- # firsts = [1, 2, 3, 4]
107
- # seconds = [4, 2, 3, 1]
108
- # ret = [firsts, seconds].together_select{|first, second|first == second}
109
- # print ret # => output [[2, 3], [2, 3]]
110
- #
111
- # if you want to multi Array return
112
- # firsts = [1, 2, 3, 4]
113
- # seconds = [4, 2, 3, 1]
114
- # ret = [firsts, seconds].together_select{|first, second|[first.odd?, second.even?]}
115
- # print ret # => output [[1, 3], [4, 2]]
116
- def together_select
117
- if_not_contain_array_rails_type_error
118
- ret = []
119
- first.each_with_index do |i_v, i|
120
- eval_each_str = get_args_str_for_together i
121
- each_ret = instance_eval "yield(#{eval_each_str})"
122
- ret = set_together_each_return_select(ret, each_ret, i)
123
- end
124
- ret
125
- end
126
-
127
- # Arrays loop together reduce.
128
- #
129
- # together_reduce has aliases [:treduce, :together_inject, :tinject]
130
- #
131
- # if you want to single return
132
- # firsts = [1, 2, 3, 4]
133
- # seconds = [4, 2, 3, 1]
134
- # ret = [firsts, seconds].together_reduce{|memo, first, second|memo + first + second}
135
- # print ret # => output 20
136
- #
137
- # if you want to single return with init value
138
- # firsts = [1, 2, 3, 4]
139
- # seconds = [4, 2, 3, 1]
140
- # ret = [firsts, seconds].together_reduce(10){|memo, first, second|memo + first + second}
141
- # print ret # => output 30
142
- #
143
- # if you want to single return with init string value
144
- # firsts = %w{a b c}
145
- # seconds = %w{1 2 3}
146
- # ret = [firsts, seconds].together_reduce('start-'){|memo, first, second|memo + first + second}
147
- # print ret # => output 'start-a1b2c3'
148
- #
149
- # if you want to single return with init Array value
150
- # firsts = [1, 2, 3, 4]
151
- # seconds = [4, 2, 3, 1]
152
- # ret = [firsts, seconds].together_reduce([]){|memo, first, second|memo << first + second}
153
- # print ret # => output [5, 4, 6, 5]
154
- #
155
- # if you want to single return with init Hash value
156
- # firsts = [1, 2, 3, 4]
157
- # seconds = [4, 2, 3, 1]
158
- # ret = [firsts, seconds].together_reduce({}){|memo, first, second|memo[first] = second;memo}
159
- # print ret # => output {1=>4, 2=>2, 3=>3, 4=>1}
160
- def together_reduce(init = nil)
161
- if_not_contain_array_rails_type_error
162
- memo = initial_memo init
163
- first.each_with_index do |i_v, i|
164
- eval_each_str = get_args_str_for_together i
165
- memo = instance_eval "yield(memo, #{eval_each_str})"
166
- end
167
- memo
168
- end
169
-
170
- # Arrays bulk concat.
171
- #
172
- # together_concat has alias :tconcat
173
- #
174
- # alpha = %w{one two three}
175
- # numbers = %w{1 2 3}
176
- # [alpha, numbers].together do |first, second|
177
- # print "#{first}:#{second}\n" # => output one:1, two:2, three:3
178
- # end
179
- def together_concat(other)
180
- if_not_contain_array_rails_type_error
181
- each { |list|list.concat other }
182
- end
183
-
184
- # Arrays bulk at.
185
- #
186
- # together_at has alias :tat
187
- #
188
- # same elements size case
189
- # alpha = %w{one two three}
190
- # numbers = %w{1 2 3}
191
- # [alpha, numbers].together_at 2 # => output ['three', 3]
192
- #
193
- # different elements size case
194
- # alpha = %w{one two three}
195
- # numbers = %w{1 2}
196
- # [alpha, numbers].together_at 2 # => output ['three', nil]
197
- def together_at(index)
198
- if_not_contain_array_rails_type_error
199
- reduce([]) { |ats, list|ats << list.at(index) }
200
- end
201
-
202
- # Arrays bulk clear.
203
- #
204
- # together_clear has alias :tclear
205
- #
206
- # same elements size case
207
- # alpha = %w{one two three}
208
- # numbers = %w{1 2 3}
209
- # [alpha, numbers].together_clear # => output [[],[]]
210
- def together_clear
211
- if_not_contain_array_rails_type_error
212
- each { |list|list.clear }
213
- end
214
-
215
- # Arrays bulk compact.(immutable)
216
- #
217
- # together_compact has alias :tcompact
218
- #
219
- # same elements size case
220
- # alpha = ['a','b','c', nil,'d']
221
- # numbers = [1, 2, nil, 3]
222
- # lists = [alpha, numbers]
223
- # ret = lists.together_compact
224
- # print lists # => output [['a','b','c', nil,'d'], [1, 2, nil, 3]]
225
- # print ret # => output [['a','b','c','d'], [1, 2, 3]]
226
- def together_compact
227
- if_not_contain_array_rails_type_error
228
- reduce([]) { |ret, list|ret << list.compact }
229
- end
230
-
231
- # Arrays bulk compact!.(mutable)
232
- #
233
- # together_compact! has alias :tcompact!
234
- #
235
- # same elements size case
236
- # alpha = ['a','b','c', nil,'d']
237
- # numbers = [1, 2, nil, 3]
238
- # lists = [alpha, numbers]
239
- # ret = lists.together_compact!
240
- # print lists # => output [['a','b','c','d'], [1, 2, 3]]
241
- # print ret # => output [['a','b','c','d'], [1, 2, 3]]
242
- def together_compact!
243
- if_not_contain_array_rails_type_error
244
- each { |list|list.compact! }
245
- end
246
-
247
- # Arrays bulk delete.
248
- #
249
- # together_delete has alias :tdelete
250
- #
251
- # if delete target is exist
252
- # child1 = [1, 2, 3, 4]
253
- # child2 = [2, 3, 4, 5]
254
- # lists = [child1, child2]
255
- # ret = lists.together_delete 2
256
- # print ret # => 2
257
- # print lists # => output [[1, 3, 4], [3, 4, 5]]
258
- #
259
- # if delete target is not exist
260
- # child1 = [1, 2, 3, 4]
261
- # child2 = [2, 3, 4, 5]
262
- # lists = [child1, child2]
263
- # ret = lists.together_delete 6
264
- # print ret # => nil
265
- # print lists # => output [[1, 2, 3, 4], [2, 3, 4, 5]]
266
- #
267
- # if delete target is not exist and use block
268
- # child1 = [1, 2, 3, 4]
269
- # child2 = [2, 3, 4, 5]
270
- # lists = [child1, child2]
271
- # ret = lists.together_delete(6) { 999 }
272
- # print ret # => 999
273
- # print lists # => output [[1, 2, 3, 4], [2, 3, 4, 5]]
274
- def together_delete(value)
275
- if_not_contain_array_rails_type_error
276
- ret = []
277
- each { |list|ret << list.delete(value) }
278
- default_return = block_given? ? yield : nil
279
- ret.compact.size == 0 ? default_return : value
280
- end
281
-
282
- # Arrays bulk delete_at.
283
- #
284
- # together_delete_at has alias :tdelete_at
285
- #
286
- # if delete_at target is exist
287
- # child1 = [1, 2, 3, 4]
288
- # child2 = [2, 3, 4, 5]
289
- # lists = [child1, child2]
290
- # ret = lists.together_delete_at 2
291
- # print ret # => [3, 4]
292
- # print lists # => output [[1, 2, 4], [2, 3, 5]]
293
- #
294
- # if delete_at target is not exist
295
- # child1 = [1, 2, 3, 4]
296
- # child2 = [2, 3, 4, 5]
297
- # lists = [child1, child2]
298
- # ret = lists.together_delete_at 6
299
- # print ret # => [nil, nil]
300
- # print lists # => output [[1, 2, 3, 4], [2, 3, 4, 5]]
301
- #
302
- # if delete_at target is exist(minus index)
303
- # child1 = [1, 2, 3, 4]
304
- # child2 = [2, 3, 4, 5]
305
- # lists = [child1, child2]
306
- # ret = lists.together_delete_at -3
307
- # print ret # => [2, 3]
308
- # print lists # => output [[1, 3, 4], [2, 4, 5]]
309
- def together_delete_at(index)
310
- if_not_contain_array_rails_type_error
311
- reduce([]) { |ret, list|ret << list.delete_at(index) }
312
- end
313
-
314
- # Arrays bulk delete_if.
315
- #
316
- # together_delete_if has alias :tdelete_if
317
- #
318
- # if delete_if target is exist. return self.
319
- # lists = [[1, 2, 3, 4], [6, 4, 6, 8]]
320
- # ret = lists.together_delete_if {|first, second|(first + second).odd?}
321
- # print ret # => [[2, 4], [4, 8]]
322
- #
323
- # if delete_if target is not exist. return nil.
324
- # lists = [[2, 2, 4, 4], [6, 4, 6, 8]]
325
- # ret = lists.together_delete_if {|first, second|(first + second).odd?}
326
- # print ret # => nil
327
- def together_delete_if(&block)
328
- if_not_contain_array_rails_type_error
329
- have_deleted = false
330
- first.each_with_index do |i_v, i|
331
- eval_each_str = get_args_str_for_together i
332
- is_delete = instance_eval "yield(#{eval_each_str})"
333
- if is_delete
334
- each { |e|e.delete_at i }
335
- have_deleted = true
336
- end
337
- end
338
- have_deleted ? self : nil
339
- end
340
-
341
- # Arrays bulk empty?.
342
- #
343
- # together_empty? has alias :tempty?
344
- #
345
- # empty case
346
- # lists = [[], []]
347
- # ret = lists.together_empty?
348
- # print ret # => true
349
- #
350
- # not empty case
351
- # lists = [[1], []]
352
- # ret = lists.together_empty?
353
- # print ret # => false
354
- def together_empty?
355
- if_not_contain_array_rails_type_error
356
- is_empty = true
357
- each { |list|is_empty = is_empty && list.empty? }
358
- is_empty
359
- end
360
-
361
- # Arrays bulk fill.
362
- #
363
- # together_fill has alias :tfill
364
- #
365
- # not use block case
366
- # lists = [[*1..5], [*6..10]]
367
- # ret = lists.together_fill(99)
368
- # print ret # => [[99, 99, 99, 99, 99], [99, 99, 99, 99, 99]]
369
- #
370
- # use block, no args case
371
- # lists = [[*1..5], [*6..10]]
372
- # ret = lists.together_fill { |i|(i + 1) + 1 }
373
- # print ret # => [[2, 3, 4, 5, 6], [2, 3, 4, 5, 6]]
374
- #
375
- # use block, has args case
376
- # lists = [[*1..5], [*6..10]]
377
- # ret = lists.together_fill(2) { |i|(i + 1) + 1 }
378
- # print ret # => [[1, 2, 4, 5, 6], [6, 7, 4, 5, 6]]
379
- def together_fill(fill_value = nil, &block)
380
- if_not_contain_array_rails_type_error
381
- if block
382
- fill_value = 0 if fill_value.nil?
383
- first.each_with_index do |i_v, i|
384
- next if i < fill_value
385
- each { |list|list[i] = yield(i) }
386
- end
387
- else
388
- each { |list|list.fill fill_value }
389
- end
390
- self
391
- end
392
-
393
- # Arrays bulk first.
394
- #
395
- # together_first has alias :tfirst
396
- #
397
- # no args case
398
- # lists = [[*1..5], [*6..10]]
399
- # ret = lists.together_first
400
- # print ret # => [1, 6]
401
- #
402
- # has args 2 case
403
- # lists = [[*1..5], [*6..10]]
404
- # ret = lists.together_first 2
405
- # print ret # => [[1, 2], [6, 7]]
406
- #
407
- # has args 0 case
408
- # lists = [[*1..5], [*6..10]]
409
- # ret = lists.together_first 0
410
- # print ret # => [[], []]
411
- #
412
- # has args over size case
413
- # lists = [[*1..5], [*6..10]]
414
- # ret = lists.together_first 6
415
- # print ret # => [[*1..5], [*6..10]]
416
- def together_first(index = nil)
417
- if_not_contain_array_rails_type_error
418
- each_return = index == 0 ? '[]' : index.nil? ? 'list.first' : 'list[0..index - 1]'
419
- reduce([]) { |ret, list|ret << eval(each_return, binding) }
420
- end
421
-
422
- private
423
-
424
- def if_not_contain_array_rails_type_error
425
- each { |f|fail TypeError, "you have to use [Array1, Array2, ...] | #{f.class} is invalid" unless f.class == Array }
426
- end
427
-
428
- def get_args_for_together(i)
429
- eval_each = []
430
- each_with_index { |j_v, j|eval_each << "self[#{j}][#{i}]" }
431
- eval_each
432
- end
433
-
434
- def get_args_str_for_together(i, with_index = false)
435
- each_eval = with_index ? get_args_for_together(i) << i : get_args_for_together(i)
436
- each_eval.join(',')
437
- end
438
-
439
- def set_together_each_return_map(ret, each_ret, index)
440
- if together_return_multi?(each_ret)
441
- size.times { |i|ret << [] } if index == 0
442
- (0..(size - 1)).each { |i|ret[i] << each_ret[i] }
443
- else
444
- ret << each_ret
445
- end
446
- ret
447
- end
448
-
449
- def set_together_each_return_select(ret, each_ret, index)
450
- unless together_return_multi?(each_ret)
451
- tmp_each_ret = []
452
- size.times { tmp_each_ret << each_ret }
453
- each_ret = tmp_each_ret
454
- end
455
- size.times { |i|ret << [] } if index == 0
456
- (0..(size - 1)).each { |i|ret[i] << self[i][index] if each_ret[i] }
457
- ret
458
- end
459
-
460
- def initial_memo(init)
461
- return init unless init.nil?
462
- first.first.is_a?(Numeric) ? 0 : first.first.is_a?(String) ? '' : nil
463
- end
464
-
465
- def together_return_multi?(list)
466
- (list.class == Array && list.size == size).to_bool
467
- end
468
-
469
- alias_method :tconcat, :together_concat
470
- alias_method :tat, :together_at
471
- alias_method :tclear, :together_clear
472
- alias_method :tcompact, :together_compact
473
- alias_method :tcompact!, :together_compact!
474
- alias_method :tdelete, :together_delete
475
- alias_method :tdelete_at, :together_delete_at
476
- alias_method :tdelete_if, :together_delete_if
477
- alias_method :tempty?, :together_empty?
478
- alias_method :tfill, :together_fill
479
- alias_method :tfirst, :together_first
480
- alias_methods [:together_collect, :tmap, :tcollect], :together_map
481
- alias_methods [:together_collect!, :tmap!, :tcollect!], :together_map!
482
- alias_methods [:together_find_all, :tselect, :tfindall], :together_select
483
- alias_methods [:together_inject, :treduce, :tinject], :together_reduce
484
- end
1
+ # encoding: utf-8
2
+ require 'open_classes/object'
3
+ require 'open_classes/module'
4
+
5
+ # Array
6
+ class Array
7
+ # Arrays loop together.
8
+ #
9
+ # alpha = %w{one two three}
10
+ # numbers = %w{1 2 3}
11
+ # [alpha, numbers].together do |first, second|
12
+ # print "#{first}:#{second}\n" # => output one:1, two:2, three:3
13
+ # end
14
+ def together
15
+ if_not_contain_array_rails_type_error
16
+ first.each_with_index do |i_v, i|
17
+ eval_each_str = get_args_str_for_together i
18
+ instance_eval "yield(#{eval_each_str})"
19
+ end
20
+ end
21
+
22
+ # Arrays loop together with index.
23
+ #
24
+ # alpha = %w{one two three}
25
+ # numbers = %w{1 2 3}
26
+ # [alpha, numbers].together_with_index do |first, second, index|
27
+ # print "#{index.to_s}:#{first}:#{second}\n" # => output 0:one:1, 1:two:2, 2:three:3
28
+ # end
29
+ def together_with_index
30
+ if_not_contain_array_rails_type_error
31
+ first.each_with_index do |i_v, i|
32
+ eval_each_str = get_args_str_for_together i, true
33
+ instance_eval "yield(#{eval_each_str})"
34
+ end
35
+ end
36
+
37
+ # Arrays together map.
38
+ #
39
+ # together_map has aliases [:tmap, :together_collect, :tcollect]
40
+ #
41
+ # if you want to single Array return
42
+ # alpha = %w{one two three}
43
+ # numbers = %w{1 2 3}
44
+ # print [alpha, numbers].together_map do |first, second|
45
+ # "#{first}:#{second}\n"
46
+ # end # => output one:1, two:2, three:3
47
+ #
48
+ # if you want to multi Array return
49
+ # alpha = %w{one two three}
50
+ # numbers = %w{1 2 3}
51
+ # print [alpha, numbers].together_map do |first, second|
52
+ # ["#{first}:#{second}", "#{second}:#{first}"]
53
+ # end # => output [['1:one', '2:two', '3:three'], ['one:1', 'two:2', 'three:3']]
54
+ def together_map
55
+ if_not_contain_array_rails_type_error
56
+ ret = []
57
+ first.each_with_index do |i_v, i|
58
+ eval_each_str = get_args_str_for_together i
59
+ each_ret = instance_eval "yield(#{eval_each_str})"
60
+ ret = set_together_each_return_map(ret, each_ret, i)
61
+ end
62
+ ret
63
+ end
64
+
65
+
66
+ # Arrays together map!.
67
+ #
68
+ # together_map! has aliases [:tmap!, :together_collect!, :tcollect!]
69
+ #
70
+ # if you want to single Array return
71
+ # alpha = %w{one two three}
72
+ # numbers = %w{1 2 3}
73
+ # ary = [alpha, numbers]
74
+ # ret = ary.together_map! do |first, second|
75
+ # "#{first}:#{second}"
76
+ # end
77
+ # print ret # => output ['one:1', 'two:2', 'three:3']
78
+ # print ary # => output ['one:1', 'two:2', 'three:3']
79
+ #
80
+ # if you want to multi Array return
81
+ # alpha = %w{one two three}
82
+ # numbers = %w{1 2 3}
83
+ # ary = [alpha, numbers]
84
+ # ret = ary.together_map! do |first, second|
85
+ # ["#{first}:#{second}", "#{second}:#{first}"]
86
+ # end
87
+ # print ret # => output [['1:one', '2:two', '3:three'], ['one:1', 'two:2', 'three:3']]
88
+ # print ary # => output [['1:one', '2:two', '3:three'], ['one:1', 'two:2', 'three:3']]
89
+ def together_map!
90
+ if_not_contain_array_rails_type_error
91
+ ret = []
92
+ first.each_with_index do |i_v, i|
93
+ eval_each_str = get_args_str_for_together i
94
+ each_ret = instance_eval "yield(#{eval_each_str})"
95
+ ret = set_together_each_return_map(ret, each_ret, i)
96
+ end
97
+ clear
98
+ ret.each { |v|self << v }
99
+ end
100
+
101
+ # Arrays loop together select.
102
+ #
103
+ # together_select has aliases [:tselect, :together_find_all, :tfindall]
104
+ #
105
+ # if you want to single Array return
106
+ # firsts = [1, 2, 3, 4]
107
+ # seconds = [4, 2, 3, 1]
108
+ # ret = [firsts, seconds].together_select{|first, second|first == second}
109
+ # print ret # => output [[2, 3], [2, 3]]
110
+ #
111
+ # if you want to multi Array return
112
+ # firsts = [1, 2, 3, 4]
113
+ # seconds = [4, 2, 3, 1]
114
+ # ret = [firsts, seconds].together_select{|first, second|[first.odd?, second.even?]}
115
+ # print ret # => output [[1, 3], [4, 2]]
116
+ def together_select
117
+ if_not_contain_array_rails_type_error
118
+ ret = []
119
+ first.each_with_index do |i_v, i|
120
+ eval_each_str = get_args_str_for_together i
121
+ each_ret = instance_eval "yield(#{eval_each_str})"
122
+ ret = set_together_each_return_select(ret, each_ret, i)
123
+ end
124
+ ret
125
+ end
126
+
127
+ # Arrays loop together reduce.
128
+ #
129
+ # together_reduce has aliases [:treduce, :together_inject, :tinject]
130
+ #
131
+ # if you want to single return
132
+ # firsts = [1, 2, 3, 4]
133
+ # seconds = [4, 2, 3, 1]
134
+ # ret = [firsts, seconds].together_reduce{|memo, first, second|memo + first + second}
135
+ # print ret # => output 20
136
+ #
137
+ # if you want to single return with init value
138
+ # firsts = [1, 2, 3, 4]
139
+ # seconds = [4, 2, 3, 1]
140
+ # ret = [firsts, seconds].together_reduce(10){|memo, first, second|memo + first + second}
141
+ # print ret # => output 30
142
+ #
143
+ # if you want to single return with init string value
144
+ # firsts = %w{a b c}
145
+ # seconds = %w{1 2 3}
146
+ # ret = [firsts, seconds].together_reduce('start-'){|memo, first, second|memo + first + second}
147
+ # print ret # => output 'start-a1b2c3'
148
+ #
149
+ # if you want to single return with init Array value
150
+ # firsts = [1, 2, 3, 4]
151
+ # seconds = [4, 2, 3, 1]
152
+ # ret = [firsts, seconds].together_reduce([]){|memo, first, second|memo << first + second}
153
+ # print ret # => output [5, 4, 6, 5]
154
+ #
155
+ # if you want to single return with init Hash value
156
+ # firsts = [1, 2, 3, 4]
157
+ # seconds = [4, 2, 3, 1]
158
+ # ret = [firsts, seconds].together_reduce({}){|memo, first, second|memo[first] = second;memo}
159
+ # print ret # => output {1=>4, 2=>2, 3=>3, 4=>1}
160
+ def together_reduce(init = nil)
161
+ if_not_contain_array_rails_type_error
162
+ memo = initial_memo init
163
+ first.each_with_index do |i_v, i|
164
+ eval_each_str = get_args_str_for_together i
165
+ memo = instance_eval "yield(memo, #{eval_each_str})"
166
+ end
167
+ memo
168
+ end
169
+
170
+ # Arrays bulk concat.
171
+ #
172
+ # together_concat has alias :tconcat
173
+ #
174
+ # alpha = %w{one two three}
175
+ # numbers = %w{1 2 3}
176
+ # [alpha, numbers].together do |first, second|
177
+ # print "#{first}:#{second}\n" # => output one:1, two:2, three:3
178
+ # end
179
+ def together_concat(other)
180
+ if_not_contain_array_rails_type_error
181
+ each { |list|list.concat other }
182
+ end
183
+
184
+ # Arrays bulk at.
185
+ #
186
+ # together_at has alias :tat
187
+ #
188
+ # same elements size case
189
+ # alpha = %w{one two three}
190
+ # numbers = %w{1 2 3}
191
+ # [alpha, numbers].together_at 2 # => output ['three', 3]
192
+ #
193
+ # different elements size case
194
+ # alpha = %w{one two three}
195
+ # numbers = %w{1 2}
196
+ # [alpha, numbers].together_at 2 # => output ['three', nil]
197
+ def together_at(index)
198
+ if_not_contain_array_rails_type_error
199
+ reduce([]) { |ats, list|ats << list.at(index) }
200
+ end
201
+
202
+ # Arrays bulk clear.
203
+ #
204
+ # together_clear has alias :tclear
205
+ #
206
+ # same elements size case
207
+ # alpha = %w{one two three}
208
+ # numbers = %w{1 2 3}
209
+ # [alpha, numbers].together_clear # => output [[],[]]
210
+ def together_clear
211
+ if_not_contain_array_rails_type_error
212
+ each { |list|list.clear }
213
+ end
214
+
215
+ # Arrays bulk compact.(immutable)
216
+ #
217
+ # together_compact has alias :tcompact
218
+ #
219
+ # same elements size case
220
+ # alpha = ['a','b','c', nil,'d']
221
+ # numbers = [1, 2, nil, 3]
222
+ # lists = [alpha, numbers]
223
+ # ret = lists.together_compact
224
+ # print lists # => output [['a','b','c', nil,'d'], [1, 2, nil, 3]]
225
+ # print ret # => output [['a','b','c','d'], [1, 2, 3]]
226
+ def together_compact
227
+ if_not_contain_array_rails_type_error
228
+ reduce([]) { |ret, list|ret << list.compact }
229
+ end
230
+
231
+ # Arrays bulk compact!.(mutable)
232
+ #
233
+ # together_compact! has alias :tcompact!
234
+ #
235
+ # same elements size case
236
+ # alpha = ['a','b','c', nil,'d']
237
+ # numbers = [1, 2, nil, 3]
238
+ # lists = [alpha, numbers]
239
+ # ret = lists.together_compact!
240
+ # print lists # => output [['a','b','c','d'], [1, 2, 3]]
241
+ # print ret # => output [['a','b','c','d'], [1, 2, 3]]
242
+ def together_compact!
243
+ if_not_contain_array_rails_type_error
244
+ each { |list|list.compact! }
245
+ end
246
+
247
+ # Arrays bulk delete.
248
+ #
249
+ # together_delete has alias :tdelete
250
+ #
251
+ # if delete target is exist
252
+ # child1 = [1, 2, 3, 4]
253
+ # child2 = [2, 3, 4, 5]
254
+ # lists = [child1, child2]
255
+ # ret = lists.together_delete 2
256
+ # print ret # => 2
257
+ # print lists # => output [[1, 3, 4], [3, 4, 5]]
258
+ #
259
+ # if delete target is not exist
260
+ # child1 = [1, 2, 3, 4]
261
+ # child2 = [2, 3, 4, 5]
262
+ # lists = [child1, child2]
263
+ # ret = lists.together_delete 6
264
+ # print ret # => nil
265
+ # print lists # => output [[1, 2, 3, 4], [2, 3, 4, 5]]
266
+ #
267
+ # if delete target is not exist and use block
268
+ # child1 = [1, 2, 3, 4]
269
+ # child2 = [2, 3, 4, 5]
270
+ # lists = [child1, child2]
271
+ # ret = lists.together_delete(6) { 999 }
272
+ # print ret # => 999
273
+ # print lists # => output [[1, 2, 3, 4], [2, 3, 4, 5]]
274
+ def together_delete(value)
275
+ if_not_contain_array_rails_type_error
276
+ ret = []
277
+ each { |list|ret << list.delete(value) }
278
+ default_return = block_given? ? yield : nil
279
+ ret.compact.size == 0 ? default_return : value
280
+ end
281
+
282
+ # Arrays bulk delete_at.
283
+ #
284
+ # together_delete_at has alias :tdelete_at
285
+ #
286
+ # if delete_at target is exist
287
+ # child1 = [1, 2, 3, 4]
288
+ # child2 = [2, 3, 4, 5]
289
+ # lists = [child1, child2]
290
+ # ret = lists.together_delete_at 2
291
+ # print ret # => [3, 4]
292
+ # print lists # => output [[1, 2, 4], [2, 3, 5]]
293
+ #
294
+ # if delete_at target is not exist
295
+ # child1 = [1, 2, 3, 4]
296
+ # child2 = [2, 3, 4, 5]
297
+ # lists = [child1, child2]
298
+ # ret = lists.together_delete_at 6
299
+ # print ret # => [nil, nil]
300
+ # print lists # => output [[1, 2, 3, 4], [2, 3, 4, 5]]
301
+ #
302
+ # if delete_at target is exist(minus index)
303
+ # child1 = [1, 2, 3, 4]
304
+ # child2 = [2, 3, 4, 5]
305
+ # lists = [child1, child2]
306
+ # ret = lists.together_delete_at -3
307
+ # print ret # => [2, 3]
308
+ # print lists # => output [[1, 3, 4], [2, 4, 5]]
309
+ def together_delete_at(index)
310
+ if_not_contain_array_rails_type_error
311
+ reduce([]) { |ret, list|ret << list.delete_at(index) }
312
+ end
313
+
314
+ # Arrays bulk delete_if.
315
+ #
316
+ # together_delete_if has alias :tdelete_if
317
+ #
318
+ # if delete_if target is exist. return self.
319
+ # lists = [[1, 2, 3, 4], [6, 4, 6, 8]]
320
+ # ret = lists.together_delete_if {|first, second|(first + second).odd?}
321
+ # print ret # => [[2, 4], [4, 8]]
322
+ #
323
+ # if delete_if target is not exist. return nil.
324
+ # lists = [[2, 2, 4, 4], [6, 4, 6, 8]]
325
+ # ret = lists.together_delete_if {|first, second|(first + second).odd?}
326
+ # print ret # => nil
327
+ def together_delete_if(&block)
328
+ if_not_contain_array_rails_type_error
329
+ have_deleted = false
330
+ first.each_with_index do |i_v, i|
331
+ eval_each_str = get_args_str_for_together i
332
+ is_delete = instance_eval "yield(#{eval_each_str})"
333
+ if is_delete
334
+ each { |e|e.delete_at i }
335
+ have_deleted = true
336
+ end
337
+ end
338
+ have_deleted ? self : nil
339
+ end
340
+
341
+ # Arrays bulk empty?.
342
+ #
343
+ # together_empty? has alias :tempty?
344
+ #
345
+ # empty case
346
+ # lists = [[], []]
347
+ # ret = lists.together_empty?
348
+ # print ret # => true
349
+ #
350
+ # not empty case
351
+ # lists = [[1], []]
352
+ # ret = lists.together_empty?
353
+ # print ret # => false
354
+ def together_empty?
355
+ if_not_contain_array_rails_type_error
356
+ is_empty = true
357
+ each { |list|is_empty = is_empty && list.empty? }
358
+ is_empty
359
+ end
360
+
361
+ # Arrays bulk fill.
362
+ #
363
+ # together_fill has alias :tfill
364
+ #
365
+ # not use block case
366
+ # lists = [[*1..5], [*6..10]]
367
+ # ret = lists.together_fill(99)
368
+ # print ret # => [[99, 99, 99, 99, 99], [99, 99, 99, 99, 99]]
369
+ #
370
+ # use block, no args case
371
+ # lists = [[*1..5], [*6..10]]
372
+ # ret = lists.together_fill { |i|(i + 1) + 1 }
373
+ # print ret # => [[2, 3, 4, 5, 6], [2, 3, 4, 5, 6]]
374
+ #
375
+ # use block, has args case
376
+ # lists = [[*1..5], [*6..10]]
377
+ # ret = lists.together_fill(2) { |i|(i + 1) + 1 }
378
+ # print ret # => [[1, 2, 4, 5, 6], [6, 7, 4, 5, 6]]
379
+ def together_fill(fill_value = nil, &block)
380
+ if_not_contain_array_rails_type_error
381
+ if block
382
+ fill_value = 0 if fill_value.nil?
383
+ first.each_with_index do |i_v, i|
384
+ next if i < fill_value
385
+ each { |list|list[i] = yield(i) }
386
+ end
387
+ else
388
+ each { |list|list.fill fill_value }
389
+ end
390
+ self
391
+ end
392
+
393
+ # Arrays bulk first.
394
+ #
395
+ # together_first has alias :tfirst
396
+ #
397
+ # no args case
398
+ # lists = [[*1..5], [*6..10]]
399
+ # ret = lists.together_first
400
+ # print ret # => [1, 6]
401
+ #
402
+ # has args 2 case
403
+ # lists = [[*1..5], [*6..10]]
404
+ # ret = lists.together_first 2
405
+ # print ret # => [[1, 2], [6, 7]]
406
+ #
407
+ # has args 0 case
408
+ # lists = [[*1..5], [*6..10]]
409
+ # ret = lists.together_first 0
410
+ # print ret # => [[], []]
411
+ #
412
+ # has args over size case
413
+ # lists = [[*1..5], [*6..10]]
414
+ # ret = lists.together_first 6
415
+ # print ret # => [[*1..5], [*6..10]]
416
+ def together_first(index = nil)
417
+ if_not_contain_array_rails_type_error
418
+ each_return = index == 0 ? '[]' : index.nil? ? 'list.first' : 'list[0..index - 1]'
419
+ reduce([]) { |ret, list|ret << eval(each_return, binding) }
420
+ end
421
+
422
+ # Arrays bulk include?.
423
+ #
424
+ # together_include? has alias :tinclude?
425
+ #
426
+ # both include single ret case
427
+ # lists = [[*1..5], [*5..9]]
428
+ # ret = lists.together_include? 5
429
+ # print ret # => true
430
+ #
431
+ # one include single ret case
432
+ # lists = [[*1..5], [*5..9]]
433
+ # ret = lists.together_include? 9
434
+ # print ret # => true
435
+ #
436
+ # both not include single ret case
437
+ # lists = [[*1..5], [*5..9]]
438
+ # ret = lists.together_include? 10
439
+ # print ret # => false
440
+ #
441
+ # both include multi ret case
442
+ # lists = [[*1..5], [*5..9]]
443
+ # ret = lists.together_include? 5, true
444
+ # print ret # => [true, true]
445
+ #
446
+ # one include multi ret case
447
+ # lists = [[*1..5], [*5..9]]
448
+ # ret = lists.together_include? 9, true
449
+ # print ret # => [false, true]
450
+ #
451
+ # both not include multi ret case
452
+ # lists = [[*1..5], [*5..9]]
453
+ # ret = lists.together_include? 10, true
454
+ # print ret # => [false, false]
455
+ def together_include?(value, is_multi = false)
456
+ if_not_contain_array_rails_type_error
457
+ return reduce([]) { |ret, list|ret << list.include?(value) } if is_multi
458
+ reduce(false) { |ret, list|ret = ret || list.include?(value) }
459
+ end
460
+
461
+ private
462
+
463
+ def if_not_contain_array_rails_type_error
464
+ each { |f|fail TypeError, "you have to use [Array1, Array2, ...] | #{f.class} is invalid" unless f.class == Array }
465
+ end
466
+
467
+ def get_args_for_together(i)
468
+ eval_each = []
469
+ each_with_index { |j_v, j|eval_each << "self[#{j}][#{i}]" }
470
+ eval_each
471
+ end
472
+
473
+ def get_args_str_for_together(i, with_index = false)
474
+ each_eval = with_index ? get_args_for_together(i) << i : get_args_for_together(i)
475
+ each_eval.join(',')
476
+ end
477
+
478
+ def set_together_each_return_map(ret, each_ret, index)
479
+ if together_return_multi?(each_ret)
480
+ size.times { |i|ret << [] } if index == 0
481
+ (0..(size - 1)).each { |i|ret[i] << each_ret[i] }
482
+ else
483
+ ret << each_ret
484
+ end
485
+ ret
486
+ end
487
+
488
+ def set_together_each_return_select(ret, each_ret, index)
489
+ unless together_return_multi?(each_ret)
490
+ tmp_each_ret = []
491
+ size.times { tmp_each_ret << each_ret }
492
+ each_ret = tmp_each_ret
493
+ end
494
+ size.times { |i|ret << [] } if index == 0
495
+ (0..(size - 1)).each { |i|ret[i] << self[i][index] if each_ret[i] }
496
+ ret
497
+ end
498
+
499
+ def initial_memo(init)
500
+ return init unless init.nil?
501
+ first.first.is_a?(Numeric) ? 0 : first.first.is_a?(String) ? '' : nil
502
+ end
503
+
504
+ def together_return_multi?(list)
505
+ (list.class == Array && list.size == size).to_bool
506
+ end
507
+
508
+ alias_method :tconcat, :together_concat
509
+ alias_method :tat, :together_at
510
+ alias_method :tclear, :together_clear
511
+ alias_method :tcompact, :together_compact
512
+ alias_method :tcompact!, :together_compact!
513
+ alias_method :tdelete, :together_delete
514
+ alias_method :tdelete_at, :together_delete_at
515
+ alias_method :tdelete_if, :together_delete_if
516
+ alias_method :tempty?, :together_empty?
517
+ alias_method :tfill, :together_fill
518
+ alias_method :tfirst, :together_first
519
+ alias_method :tinclude?, :together_include?
520
+ alias_methods [:together_collect, :tmap, :tcollect], :together_map
521
+ alias_methods [:together_collect!, :tmap!, :tcollect!], :together_map!
522
+ alias_methods [:together_find_all, :tselect, :tfindall], :together_select
523
+ alias_methods [:together_inject, :treduce, :tinject], :together_reduce
524
+ end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Tbpgr Utilities
4
4
  module TbpgrUtils
5
- VERSION = '0.0.29'
5
+ VERSION = '0.0.30'
6
6
  end
@@ -1006,7 +1006,6 @@ describe Array do
1006
1006
  end
1007
1007
  end
1008
1008
 
1009
-
1010
1009
  context :together_first do
1011
1010
  cases = [
1012
1011
  {
@@ -1085,4 +1084,99 @@ describe Array do
1085
1084
  end
1086
1085
  end
1087
1086
  end
1087
+
1088
+ context :together_include? do
1089
+ cases = [
1090
+ {
1091
+ case_no: 1,
1092
+ case_title: 'both include single ret case',
1093
+ inputs: [[*1..5], [*5..9]],
1094
+ value: 5,
1095
+ method_name: :together_include?,
1096
+ expected: true,
1097
+ is_multi: false,
1098
+ },
1099
+ {
1100
+ case_no: 2,
1101
+ case_title: 'one include single ret case',
1102
+ inputs: [[*1..5], [*5..9]],
1103
+ value: 9,
1104
+ method_name: :together_include?,
1105
+ expected: true,
1106
+ is_multi: false,
1107
+ },
1108
+ {
1109
+ case_no: 3,
1110
+ case_title: 'both not include single ret case',
1111
+ inputs: [[*1..5], [*5..9]],
1112
+ value: 10,
1113
+ method_name: :together_include?,
1114
+ expected: false,
1115
+ is_multi: false,
1116
+ },
1117
+ {
1118
+ case_no: 4,
1119
+ case_title: 'both include multi ret case',
1120
+ inputs: [[*1..5], [*5..9]],
1121
+ value: 5,
1122
+ method_name: :together_include?,
1123
+ expected: [true, true],
1124
+ is_multi: true,
1125
+ },
1126
+ {
1127
+ case_no: 5,
1128
+ case_title: 'one include multi ret case',
1129
+ inputs: [[*1..5], [*5..9]],
1130
+ value: 9,
1131
+ method_name: :together_include?,
1132
+ expected: [false, true],
1133
+ is_multi: true,
1134
+ },
1135
+ {
1136
+ case_no: 6,
1137
+ case_title: 'both not include multi ret case',
1138
+ inputs: [[*1..5], [*5..9]],
1139
+ value: 10,
1140
+ method_name: :together_include?,
1141
+ expected: [false, false],
1142
+ is_multi: true,
1143
+ },
1144
+ {
1145
+ case_no: 7,
1146
+ case_title: 'both include single ret case(alias tinclude?)',
1147
+ inputs: [[*1..5], [*5..9]],
1148
+ value: 5,
1149
+ method_name: :tinclude?,
1150
+ expected: true,
1151
+ is_multi: false,
1152
+ },
1153
+ ]
1154
+
1155
+ cases.each do |c|
1156
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
1157
+ begin
1158
+ case_before c
1159
+
1160
+ # -- given --
1161
+ # nothing
1162
+
1163
+ # -- when --
1164
+ actual = c[:inputs].send c[:method_name], c[:value], c[:is_multi]
1165
+
1166
+ # -- then --
1167
+ expect(actual).to eq(c[:expected])
1168
+ ensure
1169
+ case_after c
1170
+ end
1171
+ end
1172
+
1173
+ def case_before(c)
1174
+ # implement each case before
1175
+ end
1176
+
1177
+ def case_after(c)
1178
+ # implement each case after
1179
+ end
1180
+ end
1181
+ end
1088
1182
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tbpgr_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.29
4
+ version: 0.0.30
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-05 00:00:00.000000000 Z
12
+ date: 2014-02-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &21487572 !ruby/object:Gem::Requirement
16
+ requirement: &27941640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 4.0.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *21487572
24
+ version_requirements: *27941640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &21487200 !ruby/object:Gem::Requirement
27
+ requirement: &27941196 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.3'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *21487200
35
+ version_requirements: *27941196
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &21486852 !ruby/object:Gem::Requirement
38
+ requirement: &27940872 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *21486852
46
+ version_requirements: *27940872
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &21486384 !ruby/object:Gem::Requirement
49
+ requirement: &29420712 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.14.1
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *21486384
57
+ version_requirements: *29420712
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &21485892 !ruby/object:Gem::Requirement
60
+ requirement: &29420412 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: 0.8.2
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *21485892
68
+ version_requirements: *29420412
69
69
  description: Utilities
70
70
  email:
71
71
  - tbpgr@tbpgr.jp