tbpgr_utils 0.0.52 → 0.0.53

Sign up to get free protection for your applications and to get access to all the features.
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