tbpgr_utils 0.0.59 → 0.0.60

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -6,6 +6,7 @@ module EvalHelper
6
6
  require 'eval_helper/require_code'
7
7
  require 'eval_helper/require_relative_code'
8
8
  require 'eval_helper/ternary_operator'
9
+ require 'eval_helper/times_code'
9
10
  require 'eval_helper/unless_code'
10
11
  require 'eval_helper/unless_code_after'
11
12
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Tbpgr Utilities
4
4
  module TbpgrUtils
5
- VERSION = '0.0.59'
5
+ VERSION = '0.0.60'
6
6
  end
@@ -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.59
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-07 00:00:00.000000000 Z
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: &26273352 !ruby/object:Gem::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: *26273352
24
+ version_requirements: *21291072
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &26273064 !ruby/object:Gem::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: *26273064
35
+ version_requirements: *21290784
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &26272836 !ruby/object:Gem::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: *26272836
46
+ version_requirements: *21290556
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &26272512 !ruby/object:Gem::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: *26272512
57
+ version_requirements: *21290232
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &26272212 !ruby/object:Gem::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: *26272212
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