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 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