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 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
@@ -3,4 +3,5 @@
3
3
  module EvalHelper
4
4
  require 'eval_helper/if_code'
5
5
  require 'eval_helper/if_code_after'
6
+ require 'eval_helper/else_code'
6
7
  end
@@ -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
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Tbpgr Utilities
4
4
  module TbpgrUtils
5
- VERSION = '0.0.53'
5
+ VERSION = '0.0.54'
6
6
  end
@@ -4,7 +4,7 @@ require 'eval_helper'
4
4
 
5
5
  describe 'EvalHelper' do
6
6
  context :if_code_after do
7
- class EvalHelperTest
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 = EvalHelperTest.new
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.53
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-01 00:00:00.000000000 Z
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: &25911420 !ruby/object:Gem::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: *25911420
24
+ version_requirements: *26389572
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &25911132 !ruby/object:Gem::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: *25911132
35
+ version_requirements: *26389284
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &25910904 !ruby/object:Gem::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: *25910904
46
+ version_requirements: *26389056
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &25910580 !ruby/object:Gem::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: *25910580
57
+ version_requirements: *26388732
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &25910280 !ruby/object:Gem::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: *25910280
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