tbpgr_utils 0.0.46 → 0.0.47
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
|
@@ -78,6 +78,7 @@ 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
82
|
|[Templatable module](#templatable) |get result from template + placeholder |
|
|
82
83
|
|[TemplateMethodable module](#templatemethodable) |for Template Method Pattern |
|
|
83
84
|
|
|
@@ -1651,6 +1652,28 @@ result
|
|
|
1651
1652
|
|
|
1652
1653
|
[back to list](#list)
|
|
1653
1654
|
|
|
1655
|
+
### String#to_space2_heading
|
|
1656
|
+
> case
|
|
1657
|
+
~~~ruby
|
|
1658
|
+
require 'tbpgr_utils'
|
|
1659
|
+
'hoge>hige'.to_space2_heading # => 'hoge\nhige'
|
|
1660
|
+
~~~
|
|
1661
|
+
|
|
1662
|
+
+ case
|
|
1663
|
+
~~~ruby
|
|
1664
|
+
require 'tbpgr_utils'
|
|
1665
|
+
|
|
1666
|
+
'hoge+hige'.to_space2_heading # => 'hoge\nhige'
|
|
1667
|
+
~~~
|
|
1668
|
+
|
|
1669
|
+
^ case
|
|
1670
|
+
~~~ruby
|
|
1671
|
+
require 'tbpgr_utils'
|
|
1672
|
+
'hoge>hige^hege'.to_space2_heading # => 'hoge\nhige\nhege'
|
|
1673
|
+
~~~
|
|
1674
|
+
|
|
1675
|
+
[back to list](#list)
|
|
1676
|
+
|
|
1654
1677
|
### Templatable
|
|
1655
1678
|
* include Templatable
|
|
1656
1679
|
* set template by here-document
|
|
@@ -1751,6 +1774,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
|
|
|
1751
1774
|
https://github.com/tbpgr/tbpgr_utils_snippets
|
|
1752
1775
|
|
|
1753
1776
|
## History
|
|
1777
|
+
* version 0.0.47 : add String#to_space2_heading
|
|
1754
1778
|
* version 0.0.46 : add String#stripe
|
|
1755
1779
|
* version 0.0.45 : add String#say
|
|
1756
1780
|
* version 0.0.44 : add EndERB.apply
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'active_support/core_ext/object/inclusion'
|
|
3
|
+
|
|
4
|
+
# HeadingHelper
|
|
5
|
+
module HeadingHelper
|
|
6
|
+
# Space2
|
|
7
|
+
SPACE2 = ' '
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
def to_heading
|
|
11
|
+
self_chars = chars
|
|
12
|
+
level, index, word_ret, ret = 0, 0, [], []
|
|
13
|
+
self_chars.each_with_index do |v, index|
|
|
14
|
+
key_word = v.in? %w{> + ^}
|
|
15
|
+
|
|
16
|
+
if key_word
|
|
17
|
+
ret << leveled_word(level, word_ret)
|
|
18
|
+
level += v == '+' ? 0 : v == '>' ? 1 : -1
|
|
19
|
+
word_ret = []
|
|
20
|
+
else
|
|
21
|
+
word_ret << v
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
ret << leveled_word(level, word_ret)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def leveled_word(level, words)
|
|
28
|
+
word = {}
|
|
29
|
+
word[:level] = level
|
|
30
|
+
word[:word] = words.join
|
|
31
|
+
word
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def to_head(heading, head_char)
|
|
35
|
+
heading.reduce([]) { |ret, value|ret << "#{head_char * value[:level]}#{value[:word]}" }.join("\n")
|
|
36
|
+
end
|
|
37
|
+
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_space2_heading # => 'hoge\n hige'
|
|
15
|
+
#
|
|
16
|
+
# + case
|
|
17
|
+
#
|
|
18
|
+
# 'hoge+hige'.to_space2_heading # => 'hoge\nhige'
|
|
19
|
+
#
|
|
20
|
+
# ^ case
|
|
21
|
+
#
|
|
22
|
+
# 'hoge>hige^hege'.to_space2_heading # => 'hoge\n hige\nhege'
|
|
23
|
+
#
|
|
24
|
+
def to_space2_heading
|
|
25
|
+
heading = to_heading
|
|
26
|
+
to_space2 heading
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
private
|
|
30
|
+
def to_space2(heading)
|
|
31
|
+
to_head(heading, SPACE2)
|
|
32
|
+
end
|
|
33
|
+
end
|
data/lib/open_classes/string.rb
CHANGED
data/lib/tbpgr_utils/version.rb
CHANGED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
require 'open_classes/string/to_space2_heading'
|
|
4
|
+
|
|
5
|
+
describe String do
|
|
6
|
+
context :to_space2_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_space2_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.47
|
|
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-23 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activesupport
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &21746052 !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: *21746052
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: bundler
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &21745680 !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: *21745680
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: rake
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &21745416 !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: *21745416
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: rspec
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &21744960 !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: *21744960
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: simplecov
|
|
60
|
-
requirement: &
|
|
60
|
+
requirement: &21744384 !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: *21744384
|
|
69
69
|
description: Utilities
|
|
70
70
|
email:
|
|
71
71
|
- tbpgr@tbpgr.jp
|
|
@@ -127,10 +127,12 @@ files:
|
|
|
127
127
|
- lib/open_classes/object/my_methods.rb
|
|
128
128
|
- lib/open_classes/object/to_bool.rb
|
|
129
129
|
- lib/open_classes/string.rb
|
|
130
|
+
- lib/open_classes/string/heading_helper.rb
|
|
130
131
|
- lib/open_classes/string/justify_table.rb
|
|
131
132
|
- lib/open_classes/string/say.rb
|
|
132
133
|
- lib/open_classes/string/stripe.rb
|
|
133
134
|
- lib/open_classes/string/surround.rb
|
|
135
|
+
- lib/open_classes/string/to_space2_heading.rb
|
|
134
136
|
- lib/tbpgr_utils.rb
|
|
135
137
|
- lib/tbpgr_utils/version.rb
|
|
136
138
|
- lib/templatable.rb
|
|
@@ -183,6 +185,7 @@ files:
|
|
|
183
185
|
- spec/open_classes/string/say_spec.rb
|
|
184
186
|
- spec/open_classes/string/stripe_spec.rb
|
|
185
187
|
- spec/open_classes/string/surround_spec.rb
|
|
188
|
+
- spec/open_classes/string/to_space2_heading_spec.rb
|
|
186
189
|
- spec/spec_helper.rb
|
|
187
190
|
- spec/templatable_spec.rb
|
|
188
191
|
- spec/template_methodable_spec.rb
|
|
@@ -259,6 +262,7 @@ test_files:
|
|
|
259
262
|
- spec/open_classes/string/say_spec.rb
|
|
260
263
|
- spec/open_classes/string/stripe_spec.rb
|
|
261
264
|
- spec/open_classes/string/surround_spec.rb
|
|
265
|
+
- spec/open_classes/string/to_space2_heading_spec.rb
|
|
262
266
|
- spec/spec_helper.rb
|
|
263
267
|
- spec/templatable_spec.rb
|
|
264
268
|
- spec/template_methodable_spec.rb
|