tbpgr_utils 0.0.35 → 0.0.36
Sign up to get free protection for your applications and to get access to all the features.
- 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
|