tbpgr_utils 0.0.47 → 0.0.48
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 +29 -5
- data/lib/open_classes/string/heading_helper.rb +39 -37
- data/lib/open_classes/string/to_space4_heading.rb +33 -0
- data/lib/open_classes/string.rb +1 -0
- data/lib/tbpgr_utils/version.rb +1 -1
- data/spec/open_classes/string/say_spec.rb +83 -71
- data/spec/open_classes/string/to_space4_heading_spec.rb +61 -0
- metadata +15 -12
data/README.md
CHANGED
@@ -78,7 +78,8 @@ Or install it yourself as:
|
|
78
78
|
|[TbpgrUtils String#say](#stringsay) |say string |
|
79
79
|
|[TbpgrUtils String#stripe](#stringstripe) |stripe string |
|
80
80
|
|[TbpgrUtils String#surround](#stringsurround) |surround string |
|
81
|
-
|[TbpgrUtils String#to_space2_heading](#stringto_space2_heading) |create heading string with Emmet-like grammar |
|
81
|
+
|[TbpgrUtils String#to_space2_heading](#stringto_space2_heading) |create space2-format heading string with Emmet-like grammar |
|
82
|
+
|[TbpgrUtils String#to_space4_heading](#stringto_space4_heading) |create space4-format heading string with Emmet-like grammar |
|
82
83
|
|[Templatable module](#templatable) |get result from template + placeholder |
|
83
84
|
|[TemplateMethodable module](#templatemethodable) |for Template Method Pattern |
|
84
85
|
|
@@ -87,7 +88,7 @@ Or install it yourself as:
|
|
87
88
|
require 'tbpgr_utils'
|
88
89
|
|
89
90
|
alpha = %w{one two three}
|
90
|
-
numbers = %w{1
|
91
|
+
numbers = %w{1 4 3}
|
91
92
|
[alpha, numbers].together do |first, second|
|
92
93
|
print "#{first}:#{second}\n" # => output one:1, two:2, three:3
|
93
94
|
end
|
@@ -1656,10 +1657,10 @@ result
|
|
1656
1657
|
> case
|
1657
1658
|
~~~ruby
|
1658
1659
|
require 'tbpgr_utils'
|
1659
|
-
'hoge>hige'.to_space2_heading # => 'hoge\
|
1660
|
+
'hoge>hige'.to_space2_heading # => 'hoge\n hige'
|
1660
1661
|
~~~
|
1661
1662
|
|
1662
|
-
|
1663
|
+
\+ case
|
1663
1664
|
~~~ruby
|
1664
1665
|
require 'tbpgr_utils'
|
1665
1666
|
|
@@ -1669,7 +1670,29 @@ require 'tbpgr_utils'
|
|
1669
1670
|
^ case
|
1670
1671
|
~~~ruby
|
1671
1672
|
require 'tbpgr_utils'
|
1672
|
-
'hoge>hige^hege'.to_space2_heading # => 'hoge\
|
1673
|
+
'hoge>hige^hege'.to_space2_heading # => 'hoge\n hige\nhege'
|
1674
|
+
~~~
|
1675
|
+
|
1676
|
+
[back to list](#list)
|
1677
|
+
|
1678
|
+
### String#to_space4_heading
|
1679
|
+
> case
|
1680
|
+
~~~ruby
|
1681
|
+
require 'tbpgr_utils'
|
1682
|
+
'hoge>hige'.to_space4_heading # => 'hoge\n hige'
|
1683
|
+
~~~
|
1684
|
+
|
1685
|
+
\+ case
|
1686
|
+
~~~ruby
|
1687
|
+
require 'tbpgr_utils'
|
1688
|
+
|
1689
|
+
'hoge+hige'.to_space4_heading # => 'hoge\nhige'
|
1690
|
+
~~~
|
1691
|
+
|
1692
|
+
^ case
|
1693
|
+
~~~ruby
|
1694
|
+
require 'tbpgr_utils'
|
1695
|
+
'hoge>hige^hege'.to_space4_heading # => 'hoge\n hige\nhege'
|
1673
1696
|
~~~
|
1674
1697
|
|
1675
1698
|
[back to list](#list)
|
@@ -1774,6 +1797,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
|
|
1774
1797
|
https://github.com/tbpgr/tbpgr_utils_snippets
|
1775
1798
|
|
1776
1799
|
## History
|
1800
|
+
* version 0.0.48 : add String#to_space4_heading
|
1777
1801
|
* version 0.0.47 : add String#to_space2_heading
|
1778
1802
|
* version 0.0.46 : add String#stripe
|
1779
1803
|
* version 0.0.45 : add String#say
|
@@ -1,37 +1,39 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'active_support/core_ext/object/inclusion'
|
3
|
-
|
4
|
-
# HeadingHelper
|
5
|
-
module HeadingHelper
|
6
|
-
# Space2
|
7
|
-
SPACE2 = ' '
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
self_chars
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
word_ret
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
word
|
31
|
-
word
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'active_support/core_ext/object/inclusion'
|
3
|
+
|
4
|
+
# HeadingHelper
|
5
|
+
module HeadingHelper
|
6
|
+
# Space2
|
7
|
+
SPACE2 = ' '
|
8
|
+
# Space4
|
9
|
+
SPACE4 = ' '
|
10
|
+
|
11
|
+
private
|
12
|
+
def to_heading
|
13
|
+
self_chars = chars
|
14
|
+
level, index, word_ret, ret = 0, 0, [], []
|
15
|
+
self_chars.each_with_index do |v, index|
|
16
|
+
key_word = v.in? %w{> + ^}
|
17
|
+
|
18
|
+
if key_word
|
19
|
+
ret << leveled_word(level, word_ret)
|
20
|
+
level += v == '+' ? 0 : v == '>' ? 1 : -1
|
21
|
+
word_ret = []
|
22
|
+
else
|
23
|
+
word_ret << v
|
24
|
+
end
|
25
|
+
end
|
26
|
+
ret << leveled_word(level, word_ret)
|
27
|
+
end
|
28
|
+
|
29
|
+
def leveled_word(level, words)
|
30
|
+
word = {}
|
31
|
+
word[:level] = level
|
32
|
+
word[:word] = words.join
|
33
|
+
word
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_head(heading, head_char)
|
37
|
+
heading.reduce([]) { |ret, value|ret << "#{head_char * value[:level]}#{value[:word]}" }.join("\n")
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'active_support/core_ext/object/inclusion'
|
3
|
+
require 'open_classes/string/heading_helper'
|
4
|
+
|
5
|
+
class String
|
6
|
+
include HeadingHelper
|
7
|
+
|
8
|
+
# create heading string with Emmet-like grammar.
|
9
|
+
#
|
10
|
+
# ==== Examples
|
11
|
+
#
|
12
|
+
# > case
|
13
|
+
#
|
14
|
+
# 'hoge>hige'.to_space4_heading # => 'hoge\n hige'
|
15
|
+
#
|
16
|
+
# + case
|
17
|
+
#
|
18
|
+
# 'hoge+hige'.to_space4_heading # => 'hoge\nhige'
|
19
|
+
#
|
20
|
+
# ^ case
|
21
|
+
#
|
22
|
+
# 'hoge>hige^hege'.to_space4_heading # => 'hoge\n hige\nhege'
|
23
|
+
#
|
24
|
+
def to_space4_heading
|
25
|
+
heading = to_heading
|
26
|
+
to_space4 heading
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
def to_space4(heading)
|
31
|
+
to_head(heading, SPACE4)
|
32
|
+
end
|
33
|
+
end
|
data/lib/open_classes/string.rb
CHANGED
data/lib/tbpgr_utils/version.rb
CHANGED
@@ -1,71 +1,83 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
require 'tbpgr_utils'
|
4
|
-
|
5
|
-
describe String do
|
6
|
-
context :say do
|
7
|
-
cases = [
|
8
|
-
{
|
9
|
-
case_no: 1,
|
10
|
-
case_title: 'default case',
|
11
|
-
input: 'hoge',
|
12
|
-
expected: "'hoge'"
|
13
|
-
},
|
14
|
-
{
|
15
|
-
case_no: 2,
|
16
|
-
case_title: 'quote case',
|
17
|
-
input: 'hoge',
|
18
|
-
option: :quote,
|
19
|
-
expected: "'hoge'"
|
20
|
-
},
|
21
|
-
{
|
22
|
-
case_no: 3,
|
23
|
-
case_title: 'dquote case',
|
24
|
-
input: 'hoge',
|
25
|
-
option: :dquote,
|
26
|
-
expected: '"hoge"'
|
27
|
-
},
|
28
|
-
{
|
29
|
-
case_no: 4,
|
30
|
-
case_title: 'bracket case',
|
31
|
-
input: 'hoge',
|
32
|
-
option: :bracket,
|
33
|
-
expected: '[hoge]'
|
34
|
-
},
|
35
|
-
{
|
36
|
-
case_no: 5,
|
37
|
-
case_title: 'hyphen case',
|
38
|
-
input: 'hoge',
|
39
|
-
option: :hyphen,
|
40
|
-
expected: '-hoge-'
|
41
|
-
},
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
end
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'tbpgr_utils'
|
4
|
+
|
5
|
+
describe String do
|
6
|
+
context :say do
|
7
|
+
cases = [
|
8
|
+
{
|
9
|
+
case_no: 1,
|
10
|
+
case_title: 'default case',
|
11
|
+
input: 'hoge',
|
12
|
+
expected: "'hoge'"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
case_no: 2,
|
16
|
+
case_title: 'quote case',
|
17
|
+
input: 'hoge',
|
18
|
+
option: :quote,
|
19
|
+
expected: "'hoge'"
|
20
|
+
},
|
21
|
+
{
|
22
|
+
case_no: 3,
|
23
|
+
case_title: 'dquote case',
|
24
|
+
input: 'hoge',
|
25
|
+
option: :dquote,
|
26
|
+
expected: '"hoge"'
|
27
|
+
},
|
28
|
+
{
|
29
|
+
case_no: 4,
|
30
|
+
case_title: 'bracket case',
|
31
|
+
input: 'hoge',
|
32
|
+
option: :bracket,
|
33
|
+
expected: '[hoge]'
|
34
|
+
},
|
35
|
+
{
|
36
|
+
case_no: 5,
|
37
|
+
case_title: 'hyphen case',
|
38
|
+
input: 'hoge',
|
39
|
+
option: :hyphen,
|
40
|
+
expected: '-hoge-'
|
41
|
+
},
|
42
|
+
{
|
43
|
+
case_no: 6,
|
44
|
+
case_title: 'error case',
|
45
|
+
input: 'hoge',
|
46
|
+
option: :invalid,
|
47
|
+
expected: '-hoge-',
|
48
|
+
expect_error: true,
|
49
|
+
},
|
50
|
+
]
|
51
|
+
|
52
|
+
cases.each do |c|
|
53
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
54
|
+
begin
|
55
|
+
case_before c
|
56
|
+
|
57
|
+
# -- given --
|
58
|
+
# nothing
|
59
|
+
|
60
|
+
# -- when --
|
61
|
+
if c[:expect_error]
|
62
|
+
lambda { c[:input].say(c[:option]) }.should raise_error(StandardError)
|
63
|
+
next
|
64
|
+
end
|
65
|
+
actual = c[:option] ? c[:input].say(c[:option]) : c[:input].say
|
66
|
+
|
67
|
+
# -- then --
|
68
|
+
expect(actual).to eq(c[:expected])
|
69
|
+
ensure
|
70
|
+
case_after c
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def case_before(c)
|
75
|
+
# implement each case before
|
76
|
+
end
|
77
|
+
|
78
|
+
def case_after(c)
|
79
|
+
# implement each case after
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'open_classes/string/to_space4_heading'
|
4
|
+
|
5
|
+
describe String do
|
6
|
+
context :to_space4_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\nhige",
|
19
|
+
},
|
20
|
+
{
|
21
|
+
case_no: 3,
|
22
|
+
case_title: '^ case',
|
23
|
+
input: 'hoge>hige^hege',
|
24
|
+
expected: "hoge\n hige\nhege",
|
25
|
+
},
|
26
|
+
{
|
27
|
+
case_no: 4,
|
28
|
+
case_title: 'mix case',
|
29
|
+
input: 'hoge>hige1+hige2^hege',
|
30
|
+
expected: "hoge\n hige1\n hige2\nhege",
|
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_space4_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.48
|
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-
|
12
|
+
date: 2014-02-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &21978132 !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: *21978132
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &21977844 !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: *21977844
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &21977616 !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: *21977616
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &21977292 !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: *21977292
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: simplecov
|
60
|
-
requirement: &
|
60
|
+
requirement: &22267764 !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: *22267764
|
69
69
|
description: Utilities
|
70
70
|
email:
|
71
71
|
- tbpgr@tbpgr.jp
|
@@ -133,6 +133,7 @@ files:
|
|
133
133
|
- lib/open_classes/string/stripe.rb
|
134
134
|
- lib/open_classes/string/surround.rb
|
135
135
|
- lib/open_classes/string/to_space2_heading.rb
|
136
|
+
- lib/open_classes/string/to_space4_heading.rb
|
136
137
|
- lib/tbpgr_utils.rb
|
137
138
|
- lib/tbpgr_utils/version.rb
|
138
139
|
- lib/templatable.rb
|
@@ -186,6 +187,7 @@ files:
|
|
186
187
|
- spec/open_classes/string/stripe_spec.rb
|
187
188
|
- spec/open_classes/string/surround_spec.rb
|
188
189
|
- spec/open_classes/string/to_space2_heading_spec.rb
|
190
|
+
- spec/open_classes/string/to_space4_heading_spec.rb
|
189
191
|
- spec/spec_helper.rb
|
190
192
|
- spec/templatable_spec.rb
|
191
193
|
- spec/template_methodable_spec.rb
|
@@ -263,6 +265,7 @@ test_files:
|
|
263
265
|
- spec/open_classes/string/stripe_spec.rb
|
264
266
|
- spec/open_classes/string/surround_spec.rb
|
265
267
|
- spec/open_classes/string/to_space2_heading_spec.rb
|
268
|
+
- spec/open_classes/string/to_space4_heading_spec.rb
|
266
269
|
- spec/spec_helper.rb
|
267
270
|
- spec/templatable_spec.rb
|
268
271
|
- spec/template_methodable_spec.rb
|