tbpgr_utils 0.0.36 → 0.0.37

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.
Files changed (53) hide show
  1. data/README.md +40 -1
  2. data/lib/open_classes/array/together.rb +23 -0
  3. data/lib/open_classes/array/together_at.rb +29 -0
  4. data/lib/open_classes/array/together_clear.rb +24 -0
  5. data/lib/open_classes/array/together_compact.rb +44 -0
  6. data/lib/open_classes/array/together_concat.rb +25 -0
  7. data/lib/open_classes/array/together_delete.rb +46 -0
  8. data/lib/open_classes/array/together_delete_at.rb +43 -0
  9. data/lib/open_classes/array/together_delete_if.rb +38 -0
  10. data/lib/open_classes/array/together_empty.rb +31 -0
  11. data/lib/open_classes/array/together_fill.rb +43 -0
  12. data/lib/open_classes/array/together_first.rb +40 -0
  13. data/lib/open_classes/array/together_helper.rb +25 -0
  14. data/lib/open_classes/array/together_include.rb +50 -0
  15. data/lib/open_classes/array/together_index.rb +34 -0
  16. data/lib/open_classes/array/together_insert.rb +34 -0
  17. data/lib/open_classes/array/together_last.rb +40 -0
  18. data/lib/open_classes/array/together_map.rb +87 -0
  19. data/lib/open_classes/array/together_pop.rb +47 -0
  20. data/lib/open_classes/array/together_reduce.rb +59 -0
  21. data/lib/open_classes/array/together_reverse.rb +53 -0
  22. data/lib/open_classes/array/together_sample.rb +49 -0
  23. data/lib/open_classes/array/together_select.rb +50 -0
  24. data/lib/open_classes/array/together_shift.rb +47 -0
  25. data/lib/open_classes/array/together_with_index.rb +24 -0
  26. data/lib/open_classes/array.rb +23 -718
  27. data/lib/tbpgr_utils/version.rb +1 -1
  28. data/spec/open_classes/array/together_at_spec.rb +61 -0
  29. data/spec/open_classes/array/together_clear_spec.rb +51 -0
  30. data/spec/open_classes/array/together_compact_spec.rb +103 -0
  31. data/spec/open_classes/array/together_concat_spec.rb +53 -0
  32. data/spec/open_classes/array/together_delete_at_spec.rb +78 -0
  33. data/spec/open_classes/array/together_delete_if_spec.rb +61 -0
  34. data/spec/open_classes/array/together_delete_spec.rb +80 -0
  35. data/spec/open_classes/array/together_empty_spec.rb +58 -0
  36. data/spec/open_classes/array/together_fill_spec.rb +79 -0
  37. data/spec/open_classes/array/together_first_spec.rb +84 -0
  38. data/spec/open_classes/array/together_include_spec.rb +100 -0
  39. data/spec/open_classes/array/together_index_spec.rb +69 -0
  40. data/spec/open_classes/array/together_insert_spec.rb +65 -0
  41. data/spec/open_classes/array/together_last_spec.rb +84 -0
  42. data/spec/open_classes/array/together_map_spec.rb +171 -0
  43. data/spec/open_classes/array/together_pop_spec.rb +105 -0
  44. data/spec/open_classes/array/together_reduce_spec.rb +100 -0
  45. data/spec/open_classes/array/together_reverse_spec.rb +119 -0
  46. data/spec/open_classes/array/together_select_spec.rb +76 -0
  47. data/spec/open_classes/array/together_shift_spec.rb +105 -0
  48. data/spec/open_classes/array/together_spec.rb +51 -0
  49. data/spec/open_classes/array/together_with_index_spec.rb +51 -0
  50. data/spec/open_classes/together_sample_spec.rb +122 -0
  51. data/spec/spec_helper.rb +1 -1
  52. metadata +82 -14
  53. data/spec/open_classes/array_spec.rb +0 -1699
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Tbpgr Utilities
4
4
  module TbpgrUtils
5
- VERSION = '0.0.36'
5
+ VERSION = '0.0.37'
6
6
  end
@@ -0,0 +1,61 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_at do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, 3], %w{one two three}],
12
+ index: 2,
13
+ method_name: :together_at,
14
+ expected: [3, 'three'],
15
+ },
16
+ {
17
+ case_no: 2,
18
+ case_title: 'contain nil case',
19
+ inputs: [[1, 2, 3], %w{one two}],
20
+ index: 2,
21
+ method_name: :together_at,
22
+ expected: [3, nil],
23
+ },
24
+ {
25
+ case_no: 3,
26
+ case_title: 'valid case',
27
+ inputs: [[1, 2, 3], %w{one two three}],
28
+ index: 2,
29
+ method_name: :tat,
30
+ expected: [3, 'three'],
31
+ },
32
+ ]
33
+
34
+ cases.each do |c|
35
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
36
+ begin
37
+ case_before c
38
+
39
+ # -- given --
40
+ # nothing
41
+
42
+ # -- when --
43
+ actual = c[:inputs].send c[:method_name], c[:index]
44
+
45
+ # -- then --
46
+ expect(actual).to eq(c[:expected])
47
+ ensure
48
+ case_after c
49
+ end
50
+ end
51
+
52
+ def case_before(c)
53
+ # implement each case before
54
+ end
55
+
56
+ def case_after(c)
57
+ # implement each case after
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,51 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_clear do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, 3], %w{one two three}],
12
+ method_name: :together_clear,
13
+ expected: [[], []],
14
+ },
15
+ {
16
+ case_no: 2,
17
+ case_title: 'valid case',
18
+ inputs: [[1, 2, 3], %w{one two three}],
19
+ method_name: :tclear,
20
+ expected: [[], []],
21
+ },
22
+ ]
23
+
24
+ cases.each do |c|
25
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
26
+ begin
27
+ case_before c
28
+
29
+ # -- given --
30
+ # nothing
31
+
32
+ # -- when --
33
+ actual = c[:inputs].send c[:method_name]
34
+
35
+ # -- then --
36
+ expect(actual).to eq(c[:expected])
37
+ ensure
38
+ case_after c
39
+ end
40
+ end
41
+
42
+ def case_before(c)
43
+ # implement each case before
44
+ end
45
+
46
+ def case_after(c)
47
+ # implement each case after
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,103 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_compact do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, nil, 3], ['a', 'b', 'c', nil, 'd']],
12
+ method_name: :together_compact,
13
+ expected_self: [[1, 2, nil, 3], ['a', 'b', 'c', nil, 'd']],
14
+ expected_ret: [[1, 2, 3], ['a', 'b', 'c', 'd']],
15
+ },
16
+ {
17
+ case_no: 2,
18
+ case_title: 'valid case(use alias tcompact)',
19
+ inputs: [[1, 2, nil, 3], ['a', 'b', 'c', nil, 'd']],
20
+ method_name: :tcompact,
21
+ expected_self: [[1, 2, nil, 3], ['a', 'b', 'c', nil, 'd']],
22
+ expected_ret: [[1, 2, 3], ['a', 'b', 'c', 'd']],
23
+ },
24
+ ]
25
+
26
+ cases.each do |c|
27
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
28
+ begin
29
+ case_before c
30
+
31
+ # -- given --
32
+ # nothing
33
+
34
+ # -- when --
35
+ actual = c[:inputs].send c[:method_name]
36
+
37
+ # -- then --
38
+ expect(c[:inputs]).to eq(c[:expected_self])
39
+ expect(actual).to eq(c[:expected_ret])
40
+ ensure
41
+ case_after c
42
+ end
43
+ end
44
+
45
+ def case_before(c)
46
+ # implement each case before
47
+ end
48
+
49
+ def case_after(c)
50
+ # implement each case after
51
+ end
52
+ end
53
+ end
54
+
55
+ context :together_compact! do
56
+ cases = [
57
+ {
58
+ case_no: 1,
59
+ case_title: 'valid case',
60
+ inputs: [[1, 2, nil, 3], ['a', 'b', 'c', nil, 'd']],
61
+ method_name: :together_compact!,
62
+ expected_self: [[1, 2, 3], ['a', 'b', 'c', 'd']],
63
+ expected_ret: [[1, 2, 3], ['a', 'b', 'c', 'd']],
64
+ },
65
+ {
66
+ case_no: 2,
67
+ case_title: 'valid case(use alias tcompact)',
68
+ inputs: [[1, 2, nil, 3], ['a', 'b', 'c', nil, 'd']],
69
+ method_name: :tcompact!,
70
+ expected_self: [[1, 2, 3], ['a', 'b', 'c', 'd']],
71
+ expected_ret: [[1, 2, 3], ['a', 'b', 'c', 'd']],
72
+ },
73
+ ]
74
+
75
+ cases.each do |c|
76
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
77
+ begin
78
+ case_before c
79
+
80
+ # -- given --
81
+ # nothing
82
+
83
+ # -- when --
84
+ actual = c[:inputs].send c[:method_name]
85
+
86
+ # -- then --
87
+ expect(c[:inputs]).to eq(c[:expected_self])
88
+ expect(actual).to eq(c[:expected_ret])
89
+ ensure
90
+ case_after c
91
+ end
92
+ end
93
+
94
+ def case_before(c)
95
+ # implement each case before
96
+ end
97
+
98
+ def case_after(c)
99
+ # implement each case after
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,53 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_concat do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, 3], %w{one two three}],
12
+ add_list: [4, 5, 6],
13
+ method_name: :together_concat,
14
+ expected: [[1, 2, 3, 4, 5, 6], ['one', 'two', 'three', 4, 5, 6]],
15
+ },
16
+ {
17
+ case_no: 2,
18
+ case_title: 'valid case',
19
+ inputs: [[1, 2, 3], %w{one two three}],
20
+ add_list: [4, 5, 6],
21
+ method_name: :tconcat,
22
+ expected: [[1, 2, 3, 4, 5, 6], ['one', 'two', 'three', 4, 5, 6]],
23
+ },
24
+ ]
25
+
26
+ cases.each do |c|
27
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
28
+ begin
29
+ case_before c
30
+
31
+ # -- given --
32
+ # nothing
33
+
34
+ # -- when --
35
+ c[:inputs].send c[:method_name], c[:add_list]
36
+
37
+ # -- then --
38
+ expect(c[:inputs]).to eq(c[:expected])
39
+ ensure
40
+ case_after c
41
+ end
42
+ end
43
+
44
+ def case_before(c)
45
+ # implement each case before
46
+ end
47
+
48
+ def case_after(c)
49
+ # implement each case after
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,78 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_delete_at do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
12
+ delete_value: 2,
13
+ method_name: :together_delete_at,
14
+ expected: [[1, 2, 4], [2, 3, 5]],
15
+ ret: [3, 4],
16
+ },
17
+ {
18
+ case_no: 2,
19
+ case_title: 'valid case(not exist)',
20
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
21
+ delete_value: 5,
22
+ method_name: :together_delete_at,
23
+ expected: [[1, 2, 3, 4], [2, 3, 4, 5]],
24
+ ret: [nil, nil],
25
+ },
26
+ {
27
+ case_no: 3,
28
+ case_title: 'valid case(minus index)',
29
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
30
+ delete_value: -3,
31
+ method_name: :together_delete_at,
32
+ expected: [[1, 3, 4], [2, 4, 5]],
33
+ ret: [2, 3],
34
+ },
35
+ {
36
+ case_no: 4,
37
+ case_title: 'valid case(use tdelete_at alias)',
38
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
39
+ delete_value: 2,
40
+ method_name: :tdelete_at,
41
+ expected: [[1, 2, 4], [2, 3, 5]],
42
+ ret: [3, 4],
43
+ },
44
+ ]
45
+
46
+ cases.each do |c|
47
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
48
+ begin
49
+ case_before c
50
+
51
+ # -- given --
52
+ # nothing
53
+
54
+ # -- when --
55
+ if c[:has_block]
56
+ actual = c[:inputs].send c[:method_name], c[:delete_value] {c[:block] }
57
+ else
58
+ actual = c[:inputs].send c[:method_name], c[:delete_value]
59
+ end
60
+
61
+ # -- then --
62
+ expect(actual).to eq(c[:ret])
63
+ expect(c[:inputs]).to eq(c[:expected])
64
+ ensure
65
+ case_after c
66
+ end
67
+ end
68
+
69
+ def case_before(c)
70
+ # implement each case before
71
+ end
72
+
73
+ def case_after(c)
74
+ # implement each case after
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,61 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_delete_if do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, 3, 4], [6, 4, 6, 8]],
12
+ delete_block_code: '(first + second).odd?',
13
+ method_name: :together_delete_if,
14
+ expected: [[2, 4], [4, 8]],
15
+ },
16
+ {
17
+ case_no: 2,
18
+ case_title: 'not have delete target value case',
19
+ inputs: [[2, 2, 4, 4], [6, 4, 6, 8]],
20
+ delete_block_code: '(first + second).odd?',
21
+ method_name: :together_delete_if,
22
+ expected: nil,
23
+ },
24
+ {
25
+ case_no: 3,
26
+ case_title: 'valid case(alias tdelete_if)',
27
+ inputs: [[1, 2, 3, 4], [6, 4, 6, 8]],
28
+ delete_block_code: '(first + second).odd?',
29
+ method_name: :tdelete_if,
30
+ expected: [[2, 4], [4, 8]],
31
+ },
32
+ ]
33
+
34
+ cases.each do |c|
35
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
36
+ begin
37
+ case_before c
38
+
39
+ # -- given --
40
+ # nothing
41
+
42
+ # -- when --
43
+ actual = c[:inputs].send c[:method_name] {|first, second|eval c[:delete_block_code], binding }
44
+
45
+ # -- then --
46
+ expect(actual).to eq(c[:expected])
47
+ ensure
48
+ case_after c
49
+ end
50
+ end
51
+
52
+ def case_before(c)
53
+ # implement each case before
54
+ end
55
+
56
+ def case_after(c)
57
+ # implement each case after
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,80 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_delete do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'valid case',
11
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
12
+ delete_value: 2,
13
+ method_name: :together_delete,
14
+ expected: [[1, 3, 4], [3, 4, 5]],
15
+ ret: 2,
16
+ },
17
+ {
18
+ case_no: 2,
19
+ case_title: 'valid case(not exist and block use)',
20
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
21
+ delete_value: 6,
22
+ method_name: :together_delete,
23
+ expected: [[1, 2, 3, 4], [2, 3, 4, 5]],
24
+ ret: :ret,
25
+ has_block: true,
26
+ block: :ret,
27
+ },
28
+ {
29
+ case_no: 3,
30
+ case_title: 'valid case(not exist and block unuse)',
31
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
32
+ delete_value: 6,
33
+ method_name: :together_delete,
34
+ expected: [[1, 2, 3, 4], [2, 3, 4, 5]],
35
+ ret: nil,
36
+ },
37
+ {
38
+ case_no: 4,
39
+ case_title: 'valid case(alias tdelete)',
40
+ inputs: [[1, 2, 3, 4], [2, 3, 4, 5]],
41
+ delete_value: 2,
42
+ method_name: :tdelete,
43
+ expected: [[1, 3, 4], [3, 4, 5]],
44
+ ret: 2,
45
+ },
46
+ ]
47
+
48
+ cases.each do |c|
49
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
50
+ begin
51
+ case_before c
52
+
53
+ # -- given --
54
+ # nothing
55
+
56
+ # -- when --
57
+ if c[:has_block]
58
+ actual = c[:inputs].send c[:method_name], c[:delete_value] {c[:block] }
59
+ else
60
+ actual = c[:inputs].send c[:method_name], c[:delete_value]
61
+ end
62
+
63
+ # -- then --
64
+ expect(actual).to eq(c[:ret])
65
+ expect(c[:inputs]).to eq(c[:expected])
66
+ ensure
67
+ case_after c
68
+ end
69
+ end
70
+
71
+ def case_before(c)
72
+ # implement each case before
73
+ end
74
+
75
+ def case_after(c)
76
+ # implement each case after
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_empty? do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'empty case',
11
+ inputs: [[], []],
12
+ method_name: :together_empty?,
13
+ expected: true,
14
+ },
15
+ {
16
+ case_no: 2,
17
+ case_title: 'not empty case',
18
+ inputs: [[1], []],
19
+ method_name: :together_empty?,
20
+ expected: false,
21
+ },
22
+ {
23
+ case_no: 3,
24
+ case_title: 'empty case(alias tempty?)',
25
+ inputs: [[], []],
26
+ method_name: :tempty?,
27
+ expected: true,
28
+ },
29
+ ]
30
+
31
+ cases.each do |c|
32
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
33
+ begin
34
+ case_before c
35
+
36
+ # -- given --
37
+ # nothing
38
+
39
+ # -- when --
40
+ actual = c[:inputs].send c[:method_name]
41
+
42
+ # -- then --
43
+ expect(actual).to eq(c[:expected])
44
+ ensure
45
+ case_after c
46
+ end
47
+ end
48
+
49
+ def case_before(c)
50
+ # implement each case before
51
+ end
52
+
53
+ def case_after(c)
54
+ # implement each case after
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,79 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'tbpgr_utils'
4
+
5
+ describe Array do
6
+ context :together_fill do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: 'not use block case',
11
+ inputs: [[*1..5], [*6..10]],
12
+ fill_value: 99,
13
+ method_name: :together_fill,
14
+ expected: [[99, 99, 99, 99, 99], [99, 99, 99, 99, 99]],
15
+ has_block: false,
16
+ },
17
+ {
18
+ case_no: 2,
19
+ case_title: 'use block, no args case',
20
+ inputs: [[*1..5], [*6..10]],
21
+ fill_value: nil,
22
+ method_name: :together_fill,
23
+ expected: [[2, 3, 4, 5, 6], [2, 3, 4, 5, 6]],
24
+ block_logic: '(i + 1) + 1',
25
+ has_block: true,
26
+ },
27
+ {
28
+ case_no: 3,
29
+ case_title: 'use block, has args case',
30
+ inputs: [[*1..5], [*6..10]],
31
+ fill_value: 2,
32
+ method_name: :together_fill,
33
+ expected: [[1, 2, 4, 5, 6], [6, 7, 4, 5, 6]],
34
+ block_logic: '(i + 1) + 1',
35
+ has_block: true,
36
+ },
37
+ {
38
+ case_no: 4,
39
+ case_title: 'not use block case(alias tfill)',
40
+ inputs: [[*1..5], [*6..10]],
41
+ fill_value: 99,
42
+ method_name: :tfill,
43
+ expected: [[99, 99, 99, 99, 99], [99, 99, 99, 99, 99]],
44
+ has_block: false,
45
+ },
46
+ ]
47
+
48
+ cases.each do |c|
49
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
50
+ begin
51
+ case_before c
52
+
53
+ # -- given --
54
+ # nothing
55
+
56
+ # -- when --
57
+ if c[:has_block]
58
+ actual = c[:inputs].send c[:method_name], c[:fill_value] {|i|eval c[:block_logic], binding }
59
+ else
60
+ actual = c[:inputs].send c[:method_name], c[:fill_value]
61
+ end
62
+
63
+ # -- then --
64
+ expect(actual).to eq(c[:expected])
65
+ ensure
66
+ case_after c
67
+ end
68
+ end
69
+
70
+ def case_before(c)
71
+ # implement each case before
72
+ end
73
+
74
+ def case_after(c)
75
+ # implement each case after
76
+ end
77
+ end
78
+ end
79
+ end