tbpgr_utils 0.0.127 → 0.0.128
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.
- checksums.yaml +4 -4
- data/README.md +13 -0
- data/lib/open_classes/array/exchange.rb +26 -0
- data/lib/open_classes/array.rb +1 -0
- data/lib/open_classes/kernel/p_evals.rb +4 -1
- data/lib/tbpgr_utils/version.rb +1 -1
- data/spec/open_classes/array/exchange_spec.rb +76 -0
- data/spec/open_classes/kernel/bulk_puts_eval_spec.rb +71 -71
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c715c9b8f8173eefe90a135fb8a85ff91a1b3786
|
4
|
+
data.tar.gz: 5885d3ac9bfc90436e0c2f3a9afe00afc89faf7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1007ac7dff2535a558fd82715fa8871546d2c7f0aa9118020210e58193cba52b51e9abd294c73ac61ec54ae3c3ca4c499d656b650571d2035da25748e646d7ae
|
7
|
+
data.tar.gz: 65db7c3abb9f20f4b41882138b14a068c487d57bf61c923c2460994bfb2a346bf7541f8bb20f85d8868d38c39d6bd810126f4f0c9b7b28cd12c96b58cf7b4ca4
|
data/README.md
CHANGED
@@ -26,6 +26,7 @@ Or install it yourself as:
|
|
26
26
|
|:----------- |:------------ |
|
27
27
|
|[TbpgrUtils Array#>>](#array) |return ArrayContext for each execute |
|
28
28
|
|[TbpgrUtils Array#average](#arrayaverage) |return average |
|
29
|
+
|[TbpgrUtils Array#exchange](#arrayexchange ) |exchange array's elements |
|
29
30
|
|[TbpgrUtils Array#kernel_send](#arraykernel_send) |alias of map {|v|send :some_kernel_method, v} |
|
30
31
|
|[TbpgrUtils Array#sum](#arraysum) |alias of Array#reduce(&:+). |
|
31
32
|
|[TbpgrUtils Array#to_table](#arrayto_table) |Array(Array, Array...) to table format. |
|
@@ -186,6 +187,17 @@ require 'tbpgr_utils'
|
|
186
187
|
|
187
188
|
[back to list](#list)
|
188
189
|
|
190
|
+
### Array#exchange
|
191
|
+
~~~ruby
|
192
|
+
require 'tbpgr_utils'
|
193
|
+
[*1..6].exchange!(1, 5) # => [1, 6, 3, 4, 5, 2]
|
194
|
+
[*1..6].exchange!(1, -1) # => [1, 6, 3, 4, 5, 2]
|
195
|
+
[*1..6].exchange!(1, 6) # => [*1..6]
|
196
|
+
[].exchange!(1, 2) # => []
|
197
|
+
~~~
|
198
|
+
|
199
|
+
[back to list](#list)
|
200
|
+
|
189
201
|
### Array#kernel_send
|
190
202
|
~~~ruby
|
191
203
|
require 'tbpgr_utils'
|
@@ -3637,6 +3649,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
|
|
3637
3649
|
https://github.com/tbpgr/tbpgr_utils_snippets
|
3638
3650
|
|
3639
3651
|
## History
|
3652
|
+
* version 0.0.128 : add Array#exchange, change Kernel#bulk_puts_eval output format(justify)
|
3640
3653
|
* version 0.0.127 : add String#uniq_size
|
3641
3654
|
* version 0.0.126 : add Array#uniq_size
|
3642
3655
|
* version 0.0.125 : add Hash#>>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# Array
|
4
|
+
class Array
|
5
|
+
# exchange arrays elements
|
6
|
+
#
|
7
|
+
# === Example
|
8
|
+
#
|
9
|
+
# [*1..6].exchange!(1, 5) # => [1, 6, 3, 4, 5, 2]
|
10
|
+
# [*1..6].exchange!(1, -1) # => [1, 6, 3, 4, 5, 2]
|
11
|
+
# [*1..6].exchange!(1, 6) # => [*1..6]
|
12
|
+
# [].exchange!(1, 2) # => []
|
13
|
+
#
|
14
|
+
def exchange!(one_index, other_index)
|
15
|
+
return self unless one_index.respond_to? :to_i
|
16
|
+
return self unless other_index.respond_to? :to_i
|
17
|
+
one_index = one_index.to_i
|
18
|
+
other_index = other_index.to_i
|
19
|
+
return self if one_index.abs >= size
|
20
|
+
return self if other_index.abs >= size
|
21
|
+
tmp_one = self[one_index]
|
22
|
+
self[one_index] = self[other_index]
|
23
|
+
self[other_index] = tmp_one
|
24
|
+
self
|
25
|
+
end
|
26
|
+
end
|
data/lib/open_classes/array.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
require 'open_classes/string'
|
2
3
|
|
3
4
|
# Kernel
|
4
5
|
module Kernel
|
@@ -31,7 +32,9 @@ module Kernel
|
|
31
32
|
# "hoge-#{message}1" # => "hoge-msg1"\n
|
32
33
|
# "hoge-#{message}2" # => "hoge-msg2"\n
|
33
34
|
def bulk_puts_eval(binding, codes)
|
34
|
-
|
35
|
+
result = []
|
36
|
+
codes.each_line { |code|result << exec_eval(code.chop, binding) }
|
37
|
+
puts result.join("\n").justify_char '#'
|
35
38
|
end
|
36
39
|
|
37
40
|
private
|
data/lib/tbpgr_utils/version.rb
CHANGED
@@ -0,0 +1,76 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'tbpgr_utils'
|
4
|
+
|
5
|
+
describe Array do
|
6
|
+
context :exchange! do
|
7
|
+
cases = [
|
8
|
+
{
|
9
|
+
case_no: 1,
|
10
|
+
case_title: 'normal case',
|
11
|
+
input: [*1..6],
|
12
|
+
one_index: 1,
|
13
|
+
other_index: 5,
|
14
|
+
expected: [1, 6, 3, 4, 5, 2],
|
15
|
+
},
|
16
|
+
{
|
17
|
+
case_no: 2,
|
18
|
+
case_title: 'minus case',
|
19
|
+
input: [*1..6],
|
20
|
+
one_index: 1,
|
21
|
+
other_index: -1,
|
22
|
+
expected: [1, 6, 3, 4, 5, 2],
|
23
|
+
},
|
24
|
+
{
|
25
|
+
case_no: 3,
|
26
|
+
case_title: 'out of range case',
|
27
|
+
input: [*1..6],
|
28
|
+
one_index: 1,
|
29
|
+
other_index: 6,
|
30
|
+
expected: [*1..6],
|
31
|
+
},
|
32
|
+
{
|
33
|
+
case_no: 4,
|
34
|
+
case_title: 'out of range(minus) case',
|
35
|
+
input: [*1..6],
|
36
|
+
one_index: 1,
|
37
|
+
other_index: -6,
|
38
|
+
expected: [*1..6],
|
39
|
+
},
|
40
|
+
{
|
41
|
+
case_no: 5,
|
42
|
+
case_title: 'empty case',
|
43
|
+
input: [],
|
44
|
+
one_index: 1,
|
45
|
+
other_index: 6,
|
46
|
+
expected: [],
|
47
|
+
},
|
48
|
+
]
|
49
|
+
|
50
|
+
cases.each do |c|
|
51
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
52
|
+
begin
|
53
|
+
case_before c
|
54
|
+
|
55
|
+
# -- given --
|
56
|
+
# nothing
|
57
|
+
|
58
|
+
# -- when/then --
|
59
|
+
actual = c[:input].exchange! c[:one_index], c[:other_index]
|
60
|
+
|
61
|
+
expect(actual).to eq(c[:expected])
|
62
|
+
ensure
|
63
|
+
case_after c
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def case_before(c)
|
68
|
+
# implement each case before
|
69
|
+
end
|
70
|
+
|
71
|
+
def case_after(c)
|
72
|
+
# implement each case after
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -1,71 +1,71 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
require 'open_classes/kernel'
|
4
|
-
require 'test_toolbox'
|
5
|
-
|
6
|
-
describe Kernel do
|
7
|
-
context :bluk_puts_eval do
|
8
|
-
BULK_CODE1 = <<-EOS
|
9
|
-
"hoge-hige1" + "add"
|
10
|
-
"hoge-hige2" + "add"
|
11
|
-
EOS
|
12
|
-
|
13
|
-
BULK_EXPECTED1 = <<-EOS
|
14
|
-
"hoge-hige1" + "add" # => "hoge-hige1add"
|
15
|
-
"hoge-hige2" + "add" # => "hoge-hige2add"
|
16
|
-
EOS
|
17
|
-
|
18
|
-
BULK_CODE2 = <<-EOS
|
19
|
-
"hoge-hige1" + "add" + message
|
20
|
-
"hoge-hige2" + "add" + message
|
21
|
-
EOS
|
22
|
-
|
23
|
-
BULK_EXPECTED2 = <<-EOS
|
24
|
-
"hoge-hige1" + "add" + message # => "hoge-hige1addmsg"
|
25
|
-
"hoge-hige2" + "add" + message # => "hoge-hige2addmsg"
|
26
|
-
EOS
|
27
|
-
|
28
|
-
cases = [
|
29
|
-
{
|
30
|
-
case_no: 1,
|
31
|
-
case_title: 'no bind case',
|
32
|
-
code: BULK_CODE1,
|
33
|
-
expected: BULK_EXPECTED1
|
34
|
-
},
|
35
|
-
{
|
36
|
-
case_no: 2,
|
37
|
-
case_title: 'with bind case',
|
38
|
-
code: BULK_CODE1,
|
39
|
-
bind: 'msg',
|
40
|
-
expected: BULK_EXPECTED1
|
41
|
-
},
|
42
|
-
]
|
43
|
-
|
44
|
-
cases.each do |c|
|
45
|
-
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
46
|
-
begin
|
47
|
-
case_before c
|
48
|
-
|
49
|
-
# -- given --
|
50
|
-
message = c[:bind] if c[:bind]
|
51
|
-
|
52
|
-
# -- when --
|
53
|
-
actual = capture_stdout { bulk_puts_eval binding, c[:code] }
|
54
|
-
|
55
|
-
# -- then --
|
56
|
-
expect(actual).to eq(c[:expected])
|
57
|
-
ensure
|
58
|
-
case_after c
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def case_before(c)
|
63
|
-
# implement each case before
|
64
|
-
end
|
65
|
-
|
66
|
-
def case_after(c)
|
67
|
-
# implement each case after
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'open_classes/kernel'
|
4
|
+
require 'test_toolbox'
|
5
|
+
|
6
|
+
describe Kernel do
|
7
|
+
context :bluk_puts_eval do
|
8
|
+
BULK_CODE1 = <<-EOS
|
9
|
+
"hoge-hige1" + "add"
|
10
|
+
"hoge-hige2" + "add"
|
11
|
+
EOS
|
12
|
+
|
13
|
+
BULK_EXPECTED1 = <<-EOS
|
14
|
+
"hoge-hige1" + "add" # => "hoge-hige1add"
|
15
|
+
"hoge-hige2" + "add" # => "hoge-hige2add"
|
16
|
+
EOS
|
17
|
+
|
18
|
+
BULK_CODE2 = <<-EOS
|
19
|
+
"hoge-hige1" + "add" + message
|
20
|
+
"hoge-hige2" + "add" + message
|
21
|
+
EOS
|
22
|
+
|
23
|
+
BULK_EXPECTED2 = <<-EOS
|
24
|
+
"hoge-hige1" + "add" + message # => "hoge-hige1addmsg"
|
25
|
+
"hoge-hige2" + "add" + message # => "hoge-hige2addmsg"
|
26
|
+
EOS
|
27
|
+
|
28
|
+
cases = [
|
29
|
+
{
|
30
|
+
case_no: 1,
|
31
|
+
case_title: 'no bind case',
|
32
|
+
code: BULK_CODE1,
|
33
|
+
expected: BULK_EXPECTED1
|
34
|
+
},
|
35
|
+
{
|
36
|
+
case_no: 2,
|
37
|
+
case_title: 'with bind case',
|
38
|
+
code: BULK_CODE1,
|
39
|
+
bind: 'msg',
|
40
|
+
expected: BULK_EXPECTED1
|
41
|
+
},
|
42
|
+
]
|
43
|
+
|
44
|
+
cases.each do |c|
|
45
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
46
|
+
begin
|
47
|
+
case_before c
|
48
|
+
|
49
|
+
# -- given --
|
50
|
+
message = c[:bind] if c[:bind]
|
51
|
+
|
52
|
+
# -- when --
|
53
|
+
actual = capture_stdout { bulk_puts_eval binding, c[:code] }
|
54
|
+
|
55
|
+
# -- then --
|
56
|
+
expect(actual).to eq(c[:expected])
|
57
|
+
ensure
|
58
|
+
case_after c
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def case_before(c)
|
63
|
+
# implement each case before
|
64
|
+
end
|
65
|
+
|
66
|
+
def case_after(c)
|
67
|
+
# implement each case after
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.128
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tbpgr
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -136,6 +136,7 @@ files:
|
|
136
136
|
- lib/metasyntactic_variable.rb
|
137
137
|
- lib/open_classes/array.rb
|
138
138
|
- lib/open_classes/array/average.rb
|
139
|
+
- lib/open_classes/array/exchange.rb
|
139
140
|
- lib/open_classes/array/gte_gte.rb
|
140
141
|
- lib/open_classes/array/kernel_send.rb
|
141
142
|
- lib/open_classes/array/sum.rb
|
@@ -277,6 +278,7 @@ files:
|
|
277
278
|
- spec/markdown/ul_spec.rb
|
278
279
|
- spec/metasyntactic_variable_spec.rb
|
279
280
|
- spec/open_classes/array/average_spec.rb
|
281
|
+
- spec/open_classes/array/exchange_spec.rb
|
280
282
|
- spec/open_classes/array/gte_gte_spec.rb
|
281
283
|
- spec/open_classes/array/kernel_send_spec.rb
|
282
284
|
- spec/open_classes/array/sum_spec.rb
|
@@ -434,6 +436,7 @@ test_files:
|
|
434
436
|
- spec/markdown/ul_spec.rb
|
435
437
|
- spec/metasyntactic_variable_spec.rb
|
436
438
|
- spec/open_classes/array/average_spec.rb
|
439
|
+
- spec/open_classes/array/exchange_spec.rb
|
437
440
|
- spec/open_classes/array/gte_gte_spec.rb
|
438
441
|
- spec/open_classes/array/kernel_send_spec.rb
|
439
442
|
- spec/open_classes/array/sum_spec.rb
|