tbpgr_utils 0.0.53 → 0.0.54
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 +51 -0
- data/lib/eval_helper.rb +1 -0
- data/lib/eval_helper/else_code.rb +57 -0
- data/lib/tbpgr_utils/version.rb +1 -1
- data/spec/eval_helper/if_code_after_spec.rb +2 -2
- data/spec/eval_helper/unless_code_spec.rb +64 -0
- data/spec/open_classes/string/to_hatena_heading_spec.rb +61 -0
- metadata +17 -12
data/README.md
CHANGED
@@ -59,6 +59,7 @@ Or install it yourself as:
|
|
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
61
|
|[EvalHelper#if_code_after](#evalhelperif_code_after) |create after-if strings, for eval |
|
62
|
+
|[EvalHelper#unless_code](#evalhelperunless_code_after) |create after-unless strings, for eval |
|
62
63
|
|[TbpgrUtils File.insert_bom](#fileinsert_bom) |insert BOM to UTF-8 File |
|
63
64
|
|[Ghostable module](#ghostable) |help to create ghost method(dynamic method define by ussing method_missing + pattern-method-name) |
|
64
65
|
|[TbpgrUtils Kernel#bulk_define_methods](#kernelbulk_define_methods) |define methods to classes. methods have simple return value. |
|
@@ -1457,6 +1458,55 @@ hash = {
|
|
1457
1458
|
EvalHelperTest.new.hoge(hash) # => return 'default'
|
1458
1459
|
~~~
|
1459
1460
|
|
1461
|
+
|
1462
|
+
[back to list](#list)
|
1463
|
+
|
1464
|
+
### EvalHelper#unless_code
|
1465
|
+
|
1466
|
+
unless case
|
1467
|
+
|
1468
|
+
~~~ruby
|
1469
|
+
class EvalHelperTest
|
1470
|
+
include EvalHelper
|
1471
|
+
|
1472
|
+
def hoge(hash)
|
1473
|
+
msg = hash[:input]
|
1474
|
+
code = unless_code(hash[:unless_cond], hash[:unless_proc], hash[:else_proc])
|
1475
|
+
instance_eval code
|
1476
|
+
end
|
1477
|
+
end
|
1478
|
+
|
1479
|
+
hash = {
|
1480
|
+
input: "not_test",
|
1481
|
+
unless_cond: "msg == 'test'",
|
1482
|
+
unless_proc: "true",
|
1483
|
+
else_proc: "false",
|
1484
|
+
}
|
1485
|
+
EvalHelperTest.new.hoge(hash) # => return true
|
1486
|
+
~~~
|
1487
|
+
|
1488
|
+
else case
|
1489
|
+
|
1490
|
+
~~~ruby
|
1491
|
+
class EvalHelperTest
|
1492
|
+
include EvalHelper
|
1493
|
+
|
1494
|
+
def hoge(hash)
|
1495
|
+
msg = hash[:input]
|
1496
|
+
code = unless_code(hash[:unless_cond], hash[:unless_proc], hash[:else_proc])
|
1497
|
+
instance_eval code
|
1498
|
+
end
|
1499
|
+
end
|
1500
|
+
|
1501
|
+
hash = {
|
1502
|
+
input: "test",
|
1503
|
+
unless_cond: "msg == 'test'",
|
1504
|
+
unless_proc: "true",
|
1505
|
+
else_proc: "false",
|
1506
|
+
}
|
1507
|
+
EvalHelperTest.new.hoge(hash) # => return false
|
1508
|
+
~~~
|
1509
|
+
|
1460
1510
|
[back to list](#list)
|
1461
1511
|
|
1462
1512
|
### MetasyntacticVariable
|
@@ -1966,6 +2016,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
|
|
1966
2016
|
https://github.com/tbpgr/tbpgr_utils_snippets
|
1967
2017
|
|
1968
2018
|
## History
|
2019
|
+
* version 0.0.54 : add EvalHelper#unless_code
|
1969
2020
|
* version 0.0.53 : add EvalHelper#if_code_after
|
1970
2021
|
* version 0.0.52 : add EvalHelper#if_code
|
1971
2022
|
* version 0.0.51 : add String#to_hatena_heading
|
data/lib/eval_helper.rb
CHANGED
@@ -0,0 +1,57 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module EvalHelper
|
4
|
+
# create unless strings, for eval
|
5
|
+
#
|
6
|
+
# ==== Examples
|
7
|
+
#
|
8
|
+
# unless case
|
9
|
+
#
|
10
|
+
# class EvalHelperTest
|
11
|
+
# include EvalHelper
|
12
|
+
#
|
13
|
+
# def hoge(hash)
|
14
|
+
# msg = hash[:input]
|
15
|
+
# code = unless_code(hash[:unless_cond], hash[:unless_proc], hash[:else_proc])
|
16
|
+
# instance_eval code
|
17
|
+
# end
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# hash = {
|
21
|
+
# input: "not_test",
|
22
|
+
# unless_cond: "msg == 'test'",
|
23
|
+
# unless_proc: "true",
|
24
|
+
# else_proc: "false",
|
25
|
+
# }
|
26
|
+
# EvalHelperTest.new.hoge(hash) # => return true
|
27
|
+
#
|
28
|
+
# else case
|
29
|
+
#
|
30
|
+
# class EvalHelperTest
|
31
|
+
# include EvalHelper
|
32
|
+
#
|
33
|
+
# def hoge(hash)
|
34
|
+
# msg = hash[:input]
|
35
|
+
# code = unless_code(hash[:unless_cond], hash[:unless_proc], hash[:else_proc])
|
36
|
+
# instance_eval code
|
37
|
+
# end
|
38
|
+
# end
|
39
|
+
#
|
40
|
+
# hash = {
|
41
|
+
# input: "test",
|
42
|
+
# unless_cond: "msg == 'test'",
|
43
|
+
# unless_proc: "true",
|
44
|
+
# else_proc: "false",
|
45
|
+
# }
|
46
|
+
# EvalHelperTest.new.hoge(hash) # => return false
|
47
|
+
#
|
48
|
+
def unless_code(condition, unless_proc, else_proc)
|
49
|
+
<<-EOS
|
50
|
+
unless #{condition}
|
51
|
+
#{unless_proc}
|
52
|
+
else
|
53
|
+
#{else_proc}
|
54
|
+
end
|
55
|
+
EOS
|
56
|
+
end
|
57
|
+
end
|
data/lib/tbpgr_utils/version.rb
CHANGED
@@ -4,7 +4,7 @@ require 'eval_helper'
|
|
4
4
|
|
5
5
|
describe 'EvalHelper' do
|
6
6
|
context :if_code_after do
|
7
|
-
class
|
7
|
+
class EvalHelperAfterTest
|
8
8
|
include EvalHelper
|
9
9
|
|
10
10
|
def hoge(hash)
|
@@ -40,7 +40,7 @@ describe 'EvalHelper' do
|
|
40
40
|
case_before c
|
41
41
|
|
42
42
|
# -- given --
|
43
|
-
eval_helper =
|
43
|
+
eval_helper = EvalHelperAfterTest.new
|
44
44
|
|
45
45
|
# -- when --
|
46
46
|
actual = eval_helper.hoge(c)
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'eval_helper'
|
4
|
+
|
5
|
+
describe 'EvalHelper' do
|
6
|
+
context :unless_code do
|
7
|
+
class EvalHelperUnlessTest
|
8
|
+
include EvalHelper
|
9
|
+
|
10
|
+
def hoge(hash)
|
11
|
+
msg = hash[:input]
|
12
|
+
code = unless_code(hash[:unless_cond], hash[:unless_proc], hash[:else_proc])
|
13
|
+
instance_eval code
|
14
|
+
end
|
15
|
+
end
|
16
|
+
cases = [
|
17
|
+
{
|
18
|
+
case_no: 1,
|
19
|
+
case_title: 'unless case',
|
20
|
+
input: 'not_test',
|
21
|
+
unless_cond: "msg == 'test'",
|
22
|
+
unless_proc: 'true',
|
23
|
+
else_proc: 'false',
|
24
|
+
expected: true,
|
25
|
+
},
|
26
|
+
{
|
27
|
+
case_no: 2,
|
28
|
+
case_title: 'else case',
|
29
|
+
input: 'test',
|
30
|
+
unless_cond: "msg == 'test'",
|
31
|
+
unless_proc: 'true',
|
32
|
+
else_proc: 'false',
|
33
|
+
expected: false,
|
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 = EvalHelperUnlessTest.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
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'open_classes/string/to_hatena_heading'
|
4
|
+
|
5
|
+
describe String do
|
6
|
+
context :to_hatena_heading do
|
7
|
+
cases = [
|
8
|
+
{
|
9
|
+
case_no: 1,
|
10
|
+
case_title: '> case',
|
11
|
+
input: 'hoge>hige',
|
12
|
+
expected: "*hoge\n**hige",
|
13
|
+
},
|
14
|
+
{
|
15
|
+
case_no: 2,
|
16
|
+
case_title: '+ case',
|
17
|
+
input: 'hoge+hige',
|
18
|
+
expected: "*hoge\n*hige",
|
19
|
+
},
|
20
|
+
{
|
21
|
+
case_no: 3,
|
22
|
+
case_title: '^ case',
|
23
|
+
input: 'hoge>hige^hege',
|
24
|
+
expected: "*hoge\n**hige\n*hege",
|
25
|
+
},
|
26
|
+
{
|
27
|
+
case_no: 4,
|
28
|
+
case_title: 'mix case',
|
29
|
+
input: 'hoge>hige1+hige2^hege',
|
30
|
+
expected: "*hoge\n**hige1\n**hige2\n*hege",
|
31
|
+
},
|
32
|
+
]
|
33
|
+
|
34
|
+
cases.each do |c|
|
35
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
36
|
+
begin
|
37
|
+
case_before c
|
38
|
+
|
39
|
+
# -- given --
|
40
|
+
# nothing
|
41
|
+
|
42
|
+
# -- when --
|
43
|
+
actual = c[:input].to_hatena_heading
|
44
|
+
|
45
|
+
# -- then --
|
46
|
+
expect(actual).to eq(c[:expected])
|
47
|
+
ensure
|
48
|
+
case_after c
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def case_before(c)
|
53
|
+
# implement each case before
|
54
|
+
end
|
55
|
+
|
56
|
+
def case_after(c)
|
57
|
+
# implement each case after
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
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.54
|
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-
|
12
|
+
date: 2014-03-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &26389572 !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: *26389572
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &26389284 !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: *26389284
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &26389056 !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: *26389056
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &26388732 !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: *26388732
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: simplecov
|
60
|
-
requirement: &
|
60
|
+
requirement: &26388432 !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: *26388432
|
69
69
|
description: Utilities
|
70
70
|
email:
|
71
71
|
- tbpgr@tbpgr.jp
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- lib/attributes_initializable.rb
|
87
87
|
- lib/end_erb.rb
|
88
88
|
- lib/eval_helper.rb
|
89
|
+
- lib/eval_helper/else_code.rb
|
89
90
|
- lib/eval_helper/if_code.rb
|
90
91
|
- lib/eval_helper/if_code_after.rb
|
91
92
|
- lib/ghostable.rb
|
@@ -151,6 +152,7 @@ files:
|
|
151
152
|
- spec/attributes_initializable_spec.rb
|
152
153
|
- spec/eval_helper/if_code_after_spec.rb
|
153
154
|
- spec/eval_helper/if_code_spec.rb
|
155
|
+
- spec/eval_helper/unless_code_spec.rb
|
154
156
|
- spec/ghostable_spec.rb
|
155
157
|
- spec/metasyntactic_variable_spec.rb
|
156
158
|
- spec/open_classes/array/together_at_spec.rb
|
@@ -194,6 +196,7 @@ files:
|
|
194
196
|
- spec/open_classes/string/say_spec.rb
|
195
197
|
- spec/open_classes/string/stripe_spec.rb
|
196
198
|
- spec/open_classes/string/surround_spec.rb
|
199
|
+
- spec/open_classes/string/to_hatena_heading_spec.rb
|
197
200
|
- spec/open_classes/string/to_markdown_heading_spec.rb
|
198
201
|
- spec/open_classes/string/to_space2_heading_spec.rb
|
199
202
|
- spec/open_classes/string/to_space4_heading_spec.rb
|
@@ -233,6 +236,7 @@ test_files:
|
|
233
236
|
- spec/attributes_initializable_spec.rb
|
234
237
|
- spec/eval_helper/if_code_after_spec.rb
|
235
238
|
- spec/eval_helper/if_code_spec.rb
|
239
|
+
- spec/eval_helper/unless_code_spec.rb
|
236
240
|
- spec/ghostable_spec.rb
|
237
241
|
- spec/metasyntactic_variable_spec.rb
|
238
242
|
- spec/open_classes/array/together_at_spec.rb
|
@@ -276,6 +280,7 @@ test_files:
|
|
276
280
|
- spec/open_classes/string/say_spec.rb
|
277
281
|
- spec/open_classes/string/stripe_spec.rb
|
278
282
|
- spec/open_classes/string/surround_spec.rb
|
283
|
+
- spec/open_classes/string/to_hatena_heading_spec.rb
|
279
284
|
- spec/open_classes/string/to_markdown_heading_spec.rb
|
280
285
|
- spec/open_classes/string/to_space2_heading_spec.rb
|
281
286
|
- spec/open_classes/string/to_space4_heading_spec.rb
|