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 +57 -1
- data/lib/eval_helper/if_code_after.rb +53 -0
- data/lib/eval_helper.rb +1 -0
- data/lib/tbpgr_utils/version.rb +1 -1
- data/spec/eval_helper/if_code_after_spec.rb +64 -0
- metadata +15 -12
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.
|
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
data/lib/tbpgr_utils/version.rb
CHANGED
@@ -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.
|
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-
|
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: &
|
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: *
|
24
|
+
version_requirements: *25911420
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
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: *
|
35
|
+
version_requirements: *25911132
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
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: *
|
46
|
+
version_requirements: *25910904
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
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: *
|
57
|
+
version_requirements: *25910580
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: simplecov
|
60
|
-
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: *
|
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
|