tbpgr_utils 0.0.59 → 0.0.60
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 +58 -0
- data/lib/eval_helper/times_code.rb +60 -0
- data/lib/eval_helper.rb +1 -0
- data/lib/tbpgr_utils/version.rb +1 -1
- data/spec/eval_helper/times_code_spec.rb +63 -0
- metadata +15 -12
data/README.md
CHANGED
@@ -62,6 +62,7 @@ Or install it yourself as:
|
|
62
62
|
|[EvalHelper#if_code_after](#evalhelperif_code_after) |create after-if strings, for eval |
|
63
63
|
|[EvalHelper#require_code](#evalhelperrequire_code) |create require strings, for eval |
|
64
64
|
|[EvalHelper#require_relative_code](#evalhelperrequire_relative_code) |create require_relative strings, for eval |
|
65
|
+
|[EvalHelper#times_code](#evalhelpertimes_code) |create times_code strings, for eval |
|
65
66
|
|[EvalHelper#ternary_operator](#evalhelperternary_operator) |create ternary operator strings, for eval |
|
66
67
|
|[EvalHelper#unless_code](#evalhelperunless_code) |create unless strings, for eval |
|
67
68
|
|[EvalHelper#unless_code_after](#evalhelperunless_code_after) |create after-unless strings, for eval |
|
@@ -1541,6 +1542,62 @@ EvalHelperRequireRelativeTest.new.hoge(args) # => return "require_relative 'tbpg
|
|
1541
1542
|
|
1542
1543
|
[back to list](#list)
|
1543
1544
|
|
1545
|
+
### EvalHelper#times_code
|
1546
|
+
|
1547
|
+
single_line_proc case
|
1548
|
+
~~~ruby
|
1549
|
+
require 'eval_helper'
|
1550
|
+
|
1551
|
+
class EvalHelperTimesTest
|
1552
|
+
include EvalHelper
|
1553
|
+
|
1554
|
+
def hoge(number, proc)
|
1555
|
+
times_code(number, proc)
|
1556
|
+
end
|
1557
|
+
end
|
1558
|
+
|
1559
|
+
hash = {
|
1560
|
+
number: 2,
|
1561
|
+
proc: 'puts "#{i}times"',
|
1562
|
+
}
|
1563
|
+
EvalHelperTimesTest.new.hoge(hash[:number], hash[:proc])
|
1564
|
+
~~~
|
1565
|
+
|
1566
|
+
return
|
1567
|
+
~~~
|
1568
|
+
2.times { |i| puts "#{i}times" }
|
1569
|
+
~~~
|
1570
|
+
|
1571
|
+
multi_line_proc case
|
1572
|
+
~~~ruby
|
1573
|
+
require 'eval_helper'
|
1574
|
+
|
1575
|
+
class EvalHelperTimesTest
|
1576
|
+
include EvalHelper
|
1577
|
+
|
1578
|
+
def hoge(number, proc)
|
1579
|
+
times_code(number, proc)
|
1580
|
+
end
|
1581
|
+
end
|
1582
|
+
|
1583
|
+
hash = {
|
1584
|
+
number: 3,
|
1585
|
+
proc: 'puts "#{i}times"\nputs "#{i*2}times"',
|
1586
|
+
}
|
1587
|
+
EvalHelperTimesTest.new.hoge(hash[:number], hash[:proc])
|
1588
|
+
~~~
|
1589
|
+
|
1590
|
+
return
|
1591
|
+
|
1592
|
+
~~~
|
1593
|
+
3.times do |i|
|
1594
|
+
puts "#{i}times"
|
1595
|
+
puts "#{i*2}times"
|
1596
|
+
end
|
1597
|
+
~~~
|
1598
|
+
|
1599
|
+
[back to list](#list)
|
1600
|
+
|
1544
1601
|
### EvalHelper#ternary_operator
|
1545
1602
|
true case
|
1546
1603
|
|
@@ -2212,6 +2269,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
|
|
2212
2269
|
https://github.com/tbpgr/tbpgr_utils_snippets
|
2213
2270
|
|
2214
2271
|
## History
|
2272
|
+
* version 0.0.60 : add EvalHelper#times_code
|
2215
2273
|
* version 0.0.59 : add EvalHelper Object
|
2216
2274
|
* version 0.0.58 : add EvalHelper#require_relative_code
|
2217
2275
|
* version 0.0.57 : add EvalHelper#require_code
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module EvalHelper
|
4
|
+
# create times logic strings, for eval
|
5
|
+
#
|
6
|
+
# ==== Examples
|
7
|
+
#
|
8
|
+
# single_line_proc case
|
9
|
+
#
|
10
|
+
# class EvalHelperTimesTest
|
11
|
+
# include EvalHelper
|
12
|
+
#
|
13
|
+
# def hoge(number, proc)
|
14
|
+
# times_code(number, proc)
|
15
|
+
# end
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# hash = {
|
19
|
+
# number: 2,
|
20
|
+
# proc: 'puts "#{i}times"',
|
21
|
+
# }
|
22
|
+
# EvalHelperTimesTest.new.hoge(hash[:number], hash[:proc])
|
23
|
+
#
|
24
|
+
# return
|
25
|
+
#
|
26
|
+
# 2.times { |i| puts "#{i}times" }
|
27
|
+
#
|
28
|
+
# multi_line_proc case
|
29
|
+
#
|
30
|
+
# class EvalHelperTimesTest
|
31
|
+
# include EvalHelper
|
32
|
+
#
|
33
|
+
# def hoge(number, proc)
|
34
|
+
# times_code(number, proc)
|
35
|
+
# end
|
36
|
+
# end
|
37
|
+
#
|
38
|
+
# hash = {
|
39
|
+
# number: 3,
|
40
|
+
# proc: 'puts "#{i}times"\nputs "#{i*2}times"',
|
41
|
+
# }
|
42
|
+
# EvalHelperTimesTest.new.hoge(hash[:number], hash[:proc])
|
43
|
+
#
|
44
|
+
# return
|
45
|
+
#
|
46
|
+
# 3.times do |i|
|
47
|
+
# puts "#{i}times"
|
48
|
+
# puts "#{i*2}times"
|
49
|
+
# end
|
50
|
+
#
|
51
|
+
def times_code(number, proc)
|
52
|
+
return "#{number.to_s}.times { |i| #{proc} }" if proc.count('\n') == 0
|
53
|
+
indented = proc.split('\n').reduce([]) { |ret, v|ret << " #{v}" ; ret }.join("\n")
|
54
|
+
<<-EOS
|
55
|
+
#{number.to_s}.times do |i|
|
56
|
+
#{indented}
|
57
|
+
end
|
58
|
+
EOS
|
59
|
+
end
|
60
|
+
end
|
data/lib/eval_helper.rb
CHANGED
data/lib/tbpgr_utils/version.rb
CHANGED
@@ -0,0 +1,63 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'eval_helper'
|
4
|
+
|
5
|
+
describe 'EvalHelper' do
|
6
|
+
context :times_code do
|
7
|
+
class EvalHelperTimesTest
|
8
|
+
include EvalHelper
|
9
|
+
|
10
|
+
def hoge(number, proc)
|
11
|
+
code = times_code(number, proc)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
cases = [
|
15
|
+
{
|
16
|
+
case_no: 1,
|
17
|
+
case_title: 'single_line_proc case',
|
18
|
+
number: 2,
|
19
|
+
proc: 'puts "#{i}times"',
|
20
|
+
expected: '2.times { |i| puts "#{i}times" }'
|
21
|
+
},
|
22
|
+
{
|
23
|
+
case_no: 2,
|
24
|
+
case_title: 'multi_line_proc case',
|
25
|
+
number: 3,
|
26
|
+
proc: 'puts "#{i}times"\nputs "#{i*2}times"',
|
27
|
+
expected: <<-EOS
|
28
|
+
3.times do |i|
|
29
|
+
puts \"\#{i}times\"
|
30
|
+
puts \"\#{i*2}times\"
|
31
|
+
end
|
32
|
+
EOS
|
33
|
+
},
|
34
|
+
]
|
35
|
+
|
36
|
+
cases.each do |c|
|
37
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
38
|
+
begin
|
39
|
+
case_before c
|
40
|
+
|
41
|
+
# -- given --
|
42
|
+
# nothing
|
43
|
+
|
44
|
+
# -- when --
|
45
|
+
actual = EvalHelperTimesTest.new.hoge c[:number], c[:proc]
|
46
|
+
|
47
|
+
# -- then --
|
48
|
+
expect(actual).to eq(c[:expected])
|
49
|
+
ensure
|
50
|
+
case_after c
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def case_before(c)
|
55
|
+
# implement each case before
|
56
|
+
end
|
57
|
+
|
58
|
+
def case_after(c)
|
59
|
+
# implement each case after
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
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.60
|
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-03-
|
12
|
+
date: 2014-03-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &21291072 !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: *21291072
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &21290784 !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: *21290784
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &21290556 !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: *21290556
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &21290232 !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: *21290232
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: simplecov
|
60
|
-
requirement: &
|
60
|
+
requirement: &21289932 !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: *21289932
|
69
69
|
description: Utilities
|
70
70
|
email:
|
71
71
|
- tbpgr@tbpgr.jp
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- lib/eval_helper/require_code.rb
|
92
92
|
- lib/eval_helper/require_relative_code.rb
|
93
93
|
- lib/eval_helper/ternary_operator.rb
|
94
|
+
- lib/eval_helper/times_code.rb
|
94
95
|
- lib/eval_helper/unless_code.rb
|
95
96
|
- lib/eval_helper/unless_code_after.rb
|
96
97
|
- lib/eval_helper_object.rb
|
@@ -160,6 +161,7 @@ files:
|
|
160
161
|
- spec/eval_helper/require_code_spec.rb
|
161
162
|
- spec/eval_helper/require_relative_code_spec.rb
|
162
163
|
- spec/eval_helper/ternary_operator_spec.rb
|
164
|
+
- spec/eval_helper/times_code_spec.rb
|
163
165
|
- spec/eval_helper/unless_code_after_spec.rb
|
164
166
|
- spec/eval_helper/unless_code_spec.rb
|
165
167
|
- spec/ghostable_spec.rb
|
@@ -248,6 +250,7 @@ test_files:
|
|
248
250
|
- spec/eval_helper/require_code_spec.rb
|
249
251
|
- spec/eval_helper/require_relative_code_spec.rb
|
250
252
|
- spec/eval_helper/ternary_operator_spec.rb
|
253
|
+
- spec/eval_helper/times_code_spec.rb
|
251
254
|
- spec/eval_helper/unless_code_after_spec.rb
|
252
255
|
- spec/eval_helper/unless_code_spec.rb
|
253
256
|
- spec/ghostable_spec.rb
|