tbpgr_utils 0.0.49 → 0.0.50
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_markdown_heading](#stringto_markdown_heading) |create markdown-format heading string with Emmet-like grammar |
|
81
82
|
|[TbpgrUtils String#to_space2_heading](#stringto_space2_heading) |create space2-format heading string with Emmet-like grammar |
|
82
83
|
|[TbpgrUtils String#to_space4_heading](#stringto_space4_heading) |create space4-format heading string with Emmet-like grammar |
|
83
84
|
|[TbpgrUtils String#to_tab_heading](#stringto_tab_heading) |create tab-format heading string with Emmet-like grammar |
|
@@ -1654,6 +1655,28 @@ result
|
|
1654
1655
|
|
1655
1656
|
[back to list](#list)
|
1656
1657
|
|
1658
|
+
### String#to_markdown_heading
|
1659
|
+
> case
|
1660
|
+
~~~ruby
|
1661
|
+
require 'tbpgr_utils'
|
1662
|
+
'hoge>hige'.to_markdown_heading # => '# hoge\n## hige'
|
1663
|
+
~~~
|
1664
|
+
|
1665
|
+
\+ case
|
1666
|
+
~~~ruby
|
1667
|
+
require 'tbpgr_utils'
|
1668
|
+
|
1669
|
+
'hoge+hige'.to_markdown_heading # => '# hoge\n# hige'
|
1670
|
+
~~~
|
1671
|
+
|
1672
|
+
^ case
|
1673
|
+
~~~ruby
|
1674
|
+
require 'tbpgr_utils'
|
1675
|
+
'hoge>hige^hege'.to_markdown_heading # => '# hoge\n## hige\n# hege'
|
1676
|
+
~~~
|
1677
|
+
|
1678
|
+
[back to list](#list)
|
1679
|
+
|
1657
1680
|
### String#to_space2_heading
|
1658
1681
|
> case
|
1659
1682
|
~~~ruby
|
@@ -1816,6 +1839,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
|
|
1816
1839
|
https://github.com/tbpgr/tbpgr_utils_snippets
|
1817
1840
|
|
1818
1841
|
## History
|
1842
|
+
* version 0.0.50 : add String#to_markdown_heading
|
1819
1843
|
* version 0.0.49 : add String#to_tab_heading
|
1820
1844
|
* version 0.0.48 : add String#to_space4_heading
|
1821
1845
|
* version 0.0.47 : add String#to_space2_heading
|
data/lib/open_classes/string.rb
CHANGED
@@ -1,34 +1,37 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'active_support/core_ext/object/inclusion'
|
3
|
-
|
4
|
-
# HeadingHelper
|
5
|
-
module HeadingHelper
|
6
|
-
private
|
7
|
-
def to_heading
|
8
|
-
self_chars = chars
|
9
|
-
level, index, word_ret, ret = 0, 0, [], []
|
10
|
-
self_chars.each_with_index do |v, index|
|
11
|
-
key_word = v.in? %w{> + ^}
|
12
|
-
|
13
|
-
if key_word
|
14
|
-
ret << leveled_word(level, word_ret)
|
15
|
-
level += v == '+' ? 0 : v == '>' ? 1 : -1
|
16
|
-
word_ret = []
|
17
|
-
else
|
18
|
-
word_ret << v
|
19
|
-
end
|
20
|
-
end
|
21
|
-
ret << leveled_word(level, word_ret)
|
22
|
-
end
|
23
|
-
|
24
|
-
def leveled_word(level, words)
|
25
|
-
word = {}
|
26
|
-
word[:level] = level
|
27
|
-
word[:word] = words.join
|
28
|
-
word
|
29
|
-
end
|
30
|
-
|
31
|
-
def to_head(heading, head_char)
|
32
|
-
heading.reduce([])
|
33
|
-
|
34
|
-
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'active_support/core_ext/object/inclusion'
|
3
|
+
|
4
|
+
# HeadingHelper
|
5
|
+
module HeadingHelper
|
6
|
+
private
|
7
|
+
def to_heading
|
8
|
+
self_chars = chars
|
9
|
+
level, index, word_ret, ret = 0, 0, [], []
|
10
|
+
self_chars.each_with_index do |v, index|
|
11
|
+
key_word = v.in? %w{> + ^}
|
12
|
+
|
13
|
+
if key_word
|
14
|
+
ret << leveled_word(level, word_ret)
|
15
|
+
level += v == '+' ? 0 : v == '>' ? 1 : -1
|
16
|
+
word_ret = []
|
17
|
+
else
|
18
|
+
word_ret << v
|
19
|
+
end
|
20
|
+
end
|
21
|
+
ret << leveled_word(level, word_ret)
|
22
|
+
end
|
23
|
+
|
24
|
+
def leveled_word(level, words)
|
25
|
+
word = {}
|
26
|
+
word[:level] = level
|
27
|
+
word[:word] = words.join
|
28
|
+
word
|
29
|
+
end
|
30
|
+
|
31
|
+
def to_head(heading, head_char, options = { separator: '', start_level: 0 })
|
32
|
+
heading.reduce([]) do |ret, value|
|
33
|
+
repeat = (value[:level] + options[:start_level])
|
34
|
+
ret << "#{head_char * repeat}#{options[:separator]}#{value[:word]}"
|
35
|
+
end.join("\n")
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,37 @@
|
|
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
|
+
# Markdown
|
8
|
+
MARKDOWN = '#'
|
9
|
+
# Separator
|
10
|
+
SEPARATOR = ' '
|
11
|
+
|
12
|
+
# create heading string with Emmet-like grammar.
|
13
|
+
#
|
14
|
+
# ==== Examples
|
15
|
+
#
|
16
|
+
# > case
|
17
|
+
#
|
18
|
+
# 'hoge>hige'.to_markdown_heading # => '# hoge\n## hige'
|
19
|
+
#
|
20
|
+
# + case
|
21
|
+
#
|
22
|
+
# 'hoge+hige'.to_markdown_heading # => '# hoge\n# hige'
|
23
|
+
#
|
24
|
+
# ^ case
|
25
|
+
#
|
26
|
+
# 'hoge>hige^hege'.to_markdown_heading # => '# hoge\n## hige\n# hege'
|
27
|
+
#
|
28
|
+
def to_markdown_heading
|
29
|
+
heading = to_heading
|
30
|
+
to_markdown heading
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
def to_markdown(heading)
|
35
|
+
to_head(heading, MARKDOWN, separator: SEPARATOR, start_level: 1)
|
36
|
+
end
|
37
|
+
end
|
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_markdown_heading'
|
4
|
+
|
5
|
+
describe String do
|
6
|
+
context :to_markdown_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_markdown_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.50
|
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-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &26014848 !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: *26014848
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &26013732 !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: *26013732
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &26012736 !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: *26012736
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &26011836 !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: *26011836
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: simplecov
|
60
|
-
requirement: &
|
60
|
+
requirement: &22451748 !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: *22451748
|
69
69
|
description: Utilities
|
70
70
|
email:
|
71
71
|
- tbpgr@tbpgr.jp
|
@@ -132,6 +132,7 @@ files:
|
|
132
132
|
- lib/open_classes/string/say.rb
|
133
133
|
- lib/open_classes/string/stripe.rb
|
134
134
|
- lib/open_classes/string/surround.rb
|
135
|
+
- lib/open_classes/string/to_markdown_heading.rb
|
135
136
|
- lib/open_classes/string/to_space2_heading.rb
|
136
137
|
- lib/open_classes/string/to_space4_heading.rb
|
137
138
|
- lib/open_classes/string/to_tab_heading.rb
|
@@ -187,6 +188,7 @@ files:
|
|
187
188
|
- spec/open_classes/string/say_spec.rb
|
188
189
|
- spec/open_classes/string/stripe_spec.rb
|
189
190
|
- spec/open_classes/string/surround_spec.rb
|
191
|
+
- spec/open_classes/string/to_markdown_heading_spec.rb
|
190
192
|
- spec/open_classes/string/to_space2_heading_spec.rb
|
191
193
|
- spec/open_classes/string/to_space4_heading_spec.rb
|
192
194
|
- spec/open_classes/string/to_tab_heading_spec.rb
|
@@ -266,6 +268,7 @@ test_files:
|
|
266
268
|
- spec/open_classes/string/say_spec.rb
|
267
269
|
- spec/open_classes/string/stripe_spec.rb
|
268
270
|
- spec/open_classes/string/surround_spec.rb
|
271
|
+
- spec/open_classes/string/to_markdown_heading_spec.rb
|
269
272
|
- spec/open_classes/string/to_space2_heading_spec.rb
|
270
273
|
- spec/open_classes/string/to_space4_heading_spec.rb
|
271
274
|
- spec/open_classes/string/to_tab_heading_spec.rb
|