tbpgr_utils 0.0.35 → 0.0.36
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 +48 -2
- data/lib/open_classes/array.rb +43 -0
- data/lib/tbpgr_utils/version.rb +1 -1
- data/spec/open_classes/array_spec.rb +116 -2
- metadata +12 -12
data/README.md
CHANGED
@@ -40,9 +40,11 @@ Or install it yourself as:
|
|
40
40
|
|[TbpgrUtils Array#together_insert](#arraytogether_insert) |together version of Array#insert. together_insert has alias :tinsert |
|
41
41
|
|[TbpgrUtils Array#together_last](#arraytogether_last) |together version of Array#last. together_last has alias :tlast |
|
42
42
|
|[TbpgrUtils Array#together_map](#arraytogether_mapor-tmap-together_collect-tcollect) |together version of Enumerable#map. together_map has aliases [:tmap, :together_collect, :tcollect] |
|
43
|
-
|[TbpgrUtils Array#together_map!](#
|
44
|
-
|[TbpgrUtils Array#together_pop](#
|
43
|
+
|[TbpgrUtils Array#together_map!](#arraytogether_mapor-tmap-together_collect-tcollect-1) |together version of Enumerable#map!. together_map! has aliases [:tmap!, :together_collect!, :tcollect!] |
|
44
|
+
|[TbpgrUtils Array#together_pop](#arraytogether_popor-tpop) |together version of Array#pop. together_pop has alias :tpop |
|
45
45
|
|[TbpgrUtils Array#together_reduce](#arraytogether_reduceor-treduce-together_inject-tinject) |together version of Enumerable#reduce. together_reduce has aliases [:treduce, :together_inject, :tinject] |
|
46
|
+
|[TbpgrUtils Array#together_reverse](#arraytogether_reverseor-treverse) |together version of Array#reverse. together_reverse has alias :treverse |
|
47
|
+
|[TbpgrUtils Array#together_reverse!](#arraytogether_reverseor-treverse-1) |together version of Array#reverse!. together_reverse! has alias :treverse! |
|
46
48
|
|[TbpgrUtils Array#together_select](#arraytogether_selector-tselect-together_find_all-tfindall) |together version of Enumerable#select. together_select has aliases [:tselect, :together_find_all, :tfindall] |
|
47
49
|
|[TbpgrUtils Array#together_shift](#arraytogether_shift) |together version of Array#shift. together_shift has alias :tshift |
|
48
50
|
|[TbpgrUtils Array#together_with_index](#arraytogether_with_index) |loop all arrays by block with index |
|
@@ -607,6 +609,49 @@ print ret # => output {1=>4, 2=>2, 3=>3, 4=>1}
|
|
607
609
|
|
608
610
|
[back to list](#list)
|
609
611
|
|
612
|
+
### Array#together_reverse(or :treverse)
|
613
|
+
together_reverse has alias :treverse
|
614
|
+
|
615
|
+
not empty case
|
616
|
+
~~~ruby
|
617
|
+
lists = [[1, 2], [5, 6]]
|
618
|
+
ret = lists.together_reverse
|
619
|
+
print ret # => [[2, 1], [6, 5]]
|
620
|
+
print lists # => [[1, 2], [5, 6]]
|
621
|
+
~~~
|
622
|
+
|
623
|
+
one empty case
|
624
|
+
~~~ruby
|
625
|
+
lists = [[1, 2], []]
|
626
|
+
ret = lists.together_reverse
|
627
|
+
print ret # => [[2, 1], []]
|
628
|
+
print lists # => [[1, 2], []]
|
629
|
+
~~~
|
630
|
+
|
631
|
+
|
632
|
+
[back to list](#list)
|
633
|
+
|
634
|
+
### Array#together_reverse!(or :treverse!)
|
635
|
+
together_reverse! has alias :treverse!
|
636
|
+
|
637
|
+
not empty case
|
638
|
+
~~~ruby
|
639
|
+
lists = [[1, 2], [5, 6]]
|
640
|
+
ret = lists.together_reverse!
|
641
|
+
print ret # => [[2, 1], [6, 5]]
|
642
|
+
print lists # => [[2, 1], [6, 5]]
|
643
|
+
~~~
|
644
|
+
|
645
|
+
one empty case
|
646
|
+
~~~ruby
|
647
|
+
lists = [[1, 2], []]
|
648
|
+
ret = lists.together_reverse!
|
649
|
+
print ret # => [[2, 1], []]
|
650
|
+
print lists # => [[2, 1], []]
|
651
|
+
~~~
|
652
|
+
|
653
|
+
[back to list](#list)
|
654
|
+
|
610
655
|
### Array#together_select(or tselect, together_find_all, tfindall)
|
611
656
|
~~~ruby
|
612
657
|
require 'tbpgr_utils'
|
@@ -1286,6 +1331,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
|
|
1286
1331
|
https://github.com/tbpgr/tbpgr_utils_snippets
|
1287
1332
|
|
1288
1333
|
## History
|
1334
|
+
* version 0.0.36 : add Array#together_reverse,Array#together_reverse!(alias treverse, alias treverse!).
|
1289
1335
|
* version 0.0.35 : add Array#together_pop(alias tpop).
|
1290
1336
|
* version 0.0.34 : add Array#together_last(alias tlast).
|
1291
1337
|
* version 0.0.33 : add Array#together_shift(alias tshift).
|
data/lib/open_classes/array.rb
CHANGED
@@ -605,6 +605,47 @@ class Array
|
|
605
605
|
end
|
606
606
|
end
|
607
607
|
|
608
|
+
# Arrays bulk reverse.
|
609
|
+
#
|
610
|
+
# together_reverse has alias :treverse
|
611
|
+
#
|
612
|
+
# not empty case
|
613
|
+
# lists = [[1, 2], [5, 6]]
|
614
|
+
# ret = lists.together_reverse
|
615
|
+
# print ret # => [[2, 1], [6, 5]]
|
616
|
+
# print lists # => [[1, 2], [5, 6]]
|
617
|
+
#
|
618
|
+
# one empty case
|
619
|
+
# lists = [[1, 2], []]
|
620
|
+
# ret = lists.together_reverse
|
621
|
+
# print ret # => [[2, 1], []]
|
622
|
+
# print lists # => [[1, 2], []]
|
623
|
+
def together_reverse
|
624
|
+
if_not_contain_array_rails_type_error
|
625
|
+
reduce([]) { |ret, list|ret << list.reverse }
|
626
|
+
end
|
627
|
+
|
628
|
+
|
629
|
+
# Arrays bulk reverse!.
|
630
|
+
#
|
631
|
+
# together_reverse! has alias :treverse!
|
632
|
+
#
|
633
|
+
# not empty case
|
634
|
+
# lists = [[1, 2], [5, 6]]
|
635
|
+
# ret = lists.together_reverse!
|
636
|
+
# print ret # => [[2, 1], [6, 5]]
|
637
|
+
# print lists # => [[2, 1], [6, 5]]
|
638
|
+
#
|
639
|
+
# one empty case
|
640
|
+
# lists = [[1, 2], []]
|
641
|
+
# ret = lists.together_reverse!
|
642
|
+
# print ret # => [[2, 1], []]
|
643
|
+
# print lists # => [[2, 1], []]
|
644
|
+
def together_reverse!
|
645
|
+
if_not_contain_array_rails_type_error
|
646
|
+
reduce([]) { |ret, list|ret << list.reverse! }
|
647
|
+
end
|
648
|
+
|
608
649
|
private
|
609
650
|
|
610
651
|
def if_not_contain_array_rails_type_error
|
@@ -669,6 +710,8 @@ class Array
|
|
669
710
|
alias_method :tinsert, :together_insert
|
670
711
|
alias_method :tshift, :together_shift
|
671
712
|
alias_method :tpop, :together_pop
|
713
|
+
alias_method :treverse, :together_reverse
|
714
|
+
alias_method :treverse!, :together_reverse!
|
672
715
|
alias_methods [:together_collect, :tmap, :tcollect], :together_map
|
673
716
|
alias_methods [:together_collect!, :tmap!, :tcollect!], :together_map!
|
674
717
|
alias_methods [:together_find_all, :tselect, :tfindall], :together_select
|
data/lib/tbpgr_utils/version.rb
CHANGED
@@ -1544,8 +1544,8 @@ describe Array do
|
|
1544
1544
|
case_title: 'not empty case(alias tpop)',
|
1545
1545
|
inputs: [[1, 2], [5, 6]],
|
1546
1546
|
method_name: 'tpop',
|
1547
|
-
expected_ret: [
|
1548
|
-
expected_self: [[
|
1547
|
+
expected_ret: [2, 6],
|
1548
|
+
expected_self: [[1], [5]],
|
1549
1549
|
},
|
1550
1550
|
]
|
1551
1551
|
|
@@ -1582,4 +1582,118 @@ describe Array do
|
|
1582
1582
|
end
|
1583
1583
|
end
|
1584
1584
|
end
|
1585
|
+
|
1586
|
+
context :together_reverse do
|
1587
|
+
cases = [
|
1588
|
+
{
|
1589
|
+
case_no: 1,
|
1590
|
+
case_title: 'not empty case',
|
1591
|
+
inputs: [[1, 2], [5, 6]],
|
1592
|
+
method_name: 'together_reverse',
|
1593
|
+
expected_ret: [[2, 1], [6, 5]],
|
1594
|
+
expected_self: [[1, 2], [5, 6]],
|
1595
|
+
},
|
1596
|
+
{
|
1597
|
+
case_no: 2,
|
1598
|
+
case_title: 'one empty case',
|
1599
|
+
inputs: [[1, 2], []],
|
1600
|
+
method_name: 'together_reverse',
|
1601
|
+
expected_ret: [[2, 1], []],
|
1602
|
+
expected_self: [[1, 2], []],
|
1603
|
+
},
|
1604
|
+
{
|
1605
|
+
case_no: 3,
|
1606
|
+
case_title: 'not empty case(alias treverse)',
|
1607
|
+
inputs: [[1, 2], [5, 6]],
|
1608
|
+
method_name: 'treverse',
|
1609
|
+
expected_ret: [[2, 1], [6, 5]],
|
1610
|
+
expected_self: [[1, 2], [5, 6]],
|
1611
|
+
},
|
1612
|
+
]
|
1613
|
+
|
1614
|
+
cases.each do |c|
|
1615
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
1616
|
+
begin
|
1617
|
+
case_before c
|
1618
|
+
|
1619
|
+
# -- given --
|
1620
|
+
# nothing
|
1621
|
+
|
1622
|
+
# -- when --
|
1623
|
+
actual = c[:inputs].send c[:method_name]
|
1624
|
+
|
1625
|
+
# -- then --
|
1626
|
+
expect(actual).to eq(c[:expected_ret])
|
1627
|
+
expect(c[:inputs]).to eq(c[:expected_self])
|
1628
|
+
ensure
|
1629
|
+
case_after c
|
1630
|
+
end
|
1631
|
+
end
|
1632
|
+
|
1633
|
+
def case_before(c)
|
1634
|
+
# implement each case before
|
1635
|
+
end
|
1636
|
+
|
1637
|
+
def case_after(c)
|
1638
|
+
# implement each case after
|
1639
|
+
end
|
1640
|
+
end
|
1641
|
+
end
|
1642
|
+
|
1643
|
+
context :together_reverse! do
|
1644
|
+
cases = [
|
1645
|
+
{
|
1646
|
+
case_no: 1,
|
1647
|
+
case_title: 'not empty case',
|
1648
|
+
inputs: [[1, 2], [5, 6]],
|
1649
|
+
method_name: 'together_reverse!',
|
1650
|
+
expected_ret: [[2, 1], [6, 5]],
|
1651
|
+
expected_self: [[2, 1], [6, 5]],
|
1652
|
+
},
|
1653
|
+
{
|
1654
|
+
case_no: 2,
|
1655
|
+
case_title: 'one empty case',
|
1656
|
+
inputs: [[1, 2], []],
|
1657
|
+
method_name: 'together_reverse!',
|
1658
|
+
expected_ret: [[2, 1], []],
|
1659
|
+
expected_self: [[2, 1], []],
|
1660
|
+
},
|
1661
|
+
{
|
1662
|
+
case_no: 3,
|
1663
|
+
case_title: 'not empty case(alias treverse!)',
|
1664
|
+
inputs: [[1, 2], [5, 6]],
|
1665
|
+
method_name: 'treverse!',
|
1666
|
+
expected_ret: [[2, 1], [6, 5]],
|
1667
|
+
expected_self: [[2, 1], [6, 5]],
|
1668
|
+
},
|
1669
|
+
]
|
1670
|
+
|
1671
|
+
cases.each do |c|
|
1672
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
1673
|
+
begin
|
1674
|
+
case_before c
|
1675
|
+
|
1676
|
+
# -- given --
|
1677
|
+
# nothing
|
1678
|
+
|
1679
|
+
# -- when --
|
1680
|
+
actual = c[:inputs].send c[:method_name]
|
1681
|
+
|
1682
|
+
# -- then --
|
1683
|
+
expect(actual).to eq(c[:expected_ret])
|
1684
|
+
expect(c[:inputs]).to eq(c[:expected_self])
|
1685
|
+
ensure
|
1686
|
+
case_after c
|
1687
|
+
end
|
1688
|
+
end
|
1689
|
+
|
1690
|
+
def case_before(c)
|
1691
|
+
# implement each case before
|
1692
|
+
end
|
1693
|
+
|
1694
|
+
def case_after(c)
|
1695
|
+
# implement each case after
|
1696
|
+
end
|
1697
|
+
end
|
1698
|
+
end
|
1585
1699
|
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.
|
4
|
+
version: 0.0.36
|
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-
|
12
|
+
date: 2014-02-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &28783776 !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: *
|
24
|
+
version_requirements: *28783776
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &28783488 !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: *
|
35
|
+
version_requirements: *28783488
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &28783260 !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: *
|
46
|
+
version_requirements: *28783260
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &28782936 !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: *
|
57
|
+
version_requirements: *28782936
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: simplecov
|
60
|
-
requirement: &
|
60
|
+
requirement: &28782636 !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: *
|
68
|
+
version_requirements: *28782636
|
69
69
|
description: Utilities
|
70
70
|
email:
|
71
71
|
- tbpgr@tbpgr.jp
|