tbpgr_utils 0.0.52 → 0.0.53

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
@@ -58,6 +58,7 @@ Or install it yourself as:
58
58
  |[AttributesInitializable::ClassMethods.attr_writer init](#attributesinitializableclassmethodsattr_writer_init) |generate attr_writer + initializer |
59
59
  |[EndERB.apply](#enderbapply) |for single template script using __END__ and DATA |
60
60
  |[EvalHelper#if_code](#evalhelperif_code) |create if strings, for eval |
61
+ |[EvalHelper#if_code_after](#evalhelperif_code_after) |create after-if strings, for eval |
61
62
  |[TbpgrUtils File.insert_bom](#fileinsert_bom) |insert BOM to UTF-8 File |
62
63
  |[Ghostable module](#ghostable) |help to create ghost method(dynamic method define by ussing method_missing + pattern-method-name) |
63
64
  |[TbpgrUtils Kernel#bulk_define_methods](#kernelbulk_define_methods) |define methods to classes. methods have simple return value. |
@@ -1405,6 +1406,59 @@ EvalHelperTest.new.hoge(hash) # => return false
1405
1406
 
1406
1407
  [back to list](#list)
1407
1408
 
1409
+ ### EvalHelper#if_code_after
1410
+ if case
1411
+
1412
+ ~~~ruby
1413
+ require 'eval_helper'
1414
+
1415
+ class EvalHelperTest
1416
+ include EvalHelper
1417
+
1418
+ def hoge(hash)
1419
+ msg = hash[:input]
1420
+ code = if_code_after(hash[:if_cond], hash[:if_proc])
1421
+ ret = 'dafault'
1422
+ instance_eval code
1423
+ ret
1424
+ end
1425
+ end
1426
+
1427
+ hash = {
1428
+ input: "test",
1429
+ if_cond: "msg == 'test'",
1430
+ if_proc: "ret = "true"",
1431
+ }
1432
+ EvalHelperTest.new.hoge(hash) # => return 'true'
1433
+ ~~~
1434
+
1435
+ else case
1436
+
1437
+ ~~~ruby
1438
+ require 'eval_helper'
1439
+
1440
+ class EvalHelperTest
1441
+ include EvalHelper
1442
+
1443
+ def hoge(hash)
1444
+ msg = hash[:input]
1445
+ code = if_code_after(hash[:if_cond], hash[:if_proc])
1446
+ ret = 'ret = "true"'
1447
+ instance_eval code
1448
+ ret
1449
+ end
1450
+ end
1451
+
1452
+ hash = {
1453
+ input: "not_test",
1454
+ if_cond: "msg == 'test'",
1455
+ if_proc: "ret = "true"",
1456
+ }
1457
+ EvalHelperTest.new.hoge(hash) # => return 'default'
1458
+ ~~~
1459
+
1460
+ [back to list](#list)
1461
+
1408
1462
  ### MetasyntacticVariable
1409
1463
  * META variable
1410
1464
 
@@ -1912,7 +1966,9 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
1912
1966
  https://github.com/tbpgr/tbpgr_utils_snippets
1913
1967
 
1914
1968
  ## History
1915
- * version 0.0.51 : add EvalHelper#if_code
1969
+ * version 0.0.53 : add EvalHelper#if_code_after
1970
+ * version 0.0.52 : add EvalHelper#if_code
1971
+ * version 0.0.51 : add String#to_hatena_heading
1916
1972
  * version 0.0.50 : add String#to_markdown_heading
1917
1973
  * version 0.0.49 : add String#to_tab_heading
1918
1974
  * version 0.0.48 : add String#to_space4_heading
@@ -0,0 +1,53 @@
1
+ # encoding: utf-8
2
+
3
+ module EvalHelper
4
+ # create if strings, for eval
5
+ #
6
+ # ==== Examples
7
+ #
8
+ # if case
9
+ #
10
+ # class EvalHelperTest
11
+ # include EvalHelper
12
+ #
13
+ # def hoge(hash)
14
+ # msg = hash[:input]
15
+ # code = if_code_after(hash[:if_cond], hash[:if_proc])
16
+ # ret = 'dafault'
17
+ # instance_eval code
18
+ # ret
19
+ # end
20
+ # end
21
+ #
22
+ # hash = {
23
+ # input: "test",
24
+ # if_cond: "msg == 'test'",
25
+ # if_proc: "ret = "true"",
26
+ # }
27
+ # EvalHelperTest.new.hoge(hash) # => return 'true'
28
+ #
29
+ # else case
30
+ #
31
+ # class EvalHelperTest
32
+ # include EvalHelper
33
+ #
34
+ # def hoge(hash)
35
+ # msg = hash[:input]
36
+ # code = if_code_after(hash[:if_cond], hash[:if_proc])
37
+ # ret = 'ret = "true"'
38
+ # instance_eval code
39
+ # ret
40
+ # end
41
+ # end
42
+ #
43
+ # hash = {
44
+ # input: "not_test",
45
+ # if_cond: "msg == 'test'",
46
+ # if_proc: "ret = "true"",
47
+ # }
48
+ # EvalHelperTest.new.hoge(hash) # => return 'default'
49
+ #
50
+ def if_code_after(condition, if_proc)
51
+ "#{if_proc} if #{condition}"
52
+ end
53
+ end
data/lib/eval_helper.rb CHANGED
@@ -2,4 +2,5 @@
2
2
 
3
3
  module EvalHelper
4
4
  require 'eval_helper/if_code'
5
+ require 'eval_helper/if_code_after'
5
6
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Tbpgr Utilities
4
4
  module TbpgrUtils
5
- VERSION = '0.0.52'
5
+ VERSION = '0.0.53'
6
6
  end
@@ -0,0 +1,64 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'eval_helper'
4
+
5
+ describe 'EvalHelper' do
6
+ context :if_code_after do
7
+ class EvalHelperTest
8
+ include EvalHelper
9
+
10
+ def hoge(hash)
11
+ msg = hash[:input]
12
+ code = if_code_after(hash[:if_cond], hash[:if_proc])
13
+ ret = 'dafault'
14
+ instance_eval code
15
+ ret
16
+ end
17
+ end
18
+ cases = [
19
+ {
20
+ case_no: 1,
21
+ case_title: 'if case',
22
+ input: 'test',
23
+ if_cond: "msg == 'test'",
24
+ if_proc: 'ret = "true"',
25
+ expected: 'true',
26
+ },
27
+ {
28
+ case_no: 2,
29
+ case_title: 'else case',
30
+ input: 'not_test',
31
+ if_cond: "msg == 'test'",
32
+ if_proc: 'ret = "true"',
33
+ expected: 'dafault',
34
+ },
35
+ ]
36
+
37
+ cases.each do |c|
38
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
39
+ begin
40
+ case_before c
41
+
42
+ # -- given --
43
+ eval_helper = EvalHelperTest.new
44
+
45
+ # -- when --
46
+ actual = eval_helper.hoge(c)
47
+
48
+ # -- then --
49
+ expect(actual).to eq(c[:expected])
50
+ ensure
51
+ case_after c
52
+ end
53
+ end
54
+
55
+ def case_before(c)
56
+ # implement each case before
57
+ end
58
+
59
+ def case_after(c)
60
+ # implement each case after
61
+ end
62
+ end
63
+ end
64
+ 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.52
4
+ version: 0.0.53
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-28 00:00:00.000000000 Z
12
+ date: 2014-03-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &26331132 !ruby/object:Gem::Requirement
16
+ requirement: &25911420 !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: *26331132
24
+ version_requirements: *25911420
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &26330844 !ruby/object:Gem::Requirement
27
+ requirement: &25911132 !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: *26330844
35
+ version_requirements: *25911132
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &26330616 !ruby/object:Gem::Requirement
38
+ requirement: &25910904 !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: *26330616
46
+ version_requirements: *25910904
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &26330292 !ruby/object:Gem::Requirement
49
+ requirement: &25910580 !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: *26330292
57
+ version_requirements: *25910580
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &26329992 !ruby/object:Gem::Requirement
60
+ requirement: &25910280 !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: *26329992
68
+ version_requirements: *25910280
69
69
  description: Utilities
70
70
  email:
71
71
  - tbpgr@tbpgr.jp
@@ -87,6 +87,7 @@ files:
87
87
  - lib/end_erb.rb
88
88
  - lib/eval_helper.rb
89
89
  - lib/eval_helper/if_code.rb
90
+ - lib/eval_helper/if_code_after.rb
90
91
  - lib/ghostable.rb
91
92
  - lib/metasyntactic_variable.rb
92
93
  - lib/open_classes/array.rb
@@ -148,6 +149,7 @@ files:
148
149
  - rubocop-todo.yml
149
150
  - spec/attributes_hashable_spec.rb
150
151
  - spec/attributes_initializable_spec.rb
152
+ - spec/eval_helper/if_code_after_spec.rb
151
153
  - spec/eval_helper/if_code_spec.rb
152
154
  - spec/ghostable_spec.rb
153
155
  - spec/metasyntactic_variable_spec.rb
@@ -229,6 +231,7 @@ summary: Utilities
229
231
  test_files:
230
232
  - spec/attributes_hashable_spec.rb
231
233
  - spec/attributes_initializable_spec.rb
234
+ - spec/eval_helper/if_code_after_spec.rb
232
235
  - spec/eval_helper/if_code_spec.rb
233
236
  - spec/ghostable_spec.rb
234
237
  - spec/metasyntactic_variable_spec.rb