tbpgr_utils 0.0.47 → 0.0.48

Sign up to get free protection for your applications and to get access to all the features.
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 2 3}
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\nhige'
1660
+ 'hoge>hige'.to_space2_heading # => 'hoge\n hige'
1660
1661
  ~~~
1661
1662
 
1662
- + case
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\nhige\nhege'
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
- 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
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
@@ -4,3 +4,4 @@ require 'open_classes/string/say'
4
4
  require 'open_classes/string/stripe'
5
5
  require 'open_classes/string/surround'
6
6
  require 'open_classes/string/to_space2_heading'
7
+ require 'open_classes/string/to_space4_heading'
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Tbpgr Utilities
4
4
  module TbpgrUtils
5
- VERSION = '0.0.47'
5
+ VERSION = '0.0.48'
6
6
  end
@@ -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
- cases.each do |c|
45
- it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
46
- begin
47
- case_before c
48
-
49
- # -- given --
50
- # nothing
51
-
52
- # -- when --
53
- actual = c[:option] ? c[:input].say(c[:option]) : c[:input].say
54
-
55
- # -- then --
56
- expect(actual).to eq(c[:expected])
57
- ensure
58
- case_after c
59
- end
60
- end
61
-
62
- def case_before(c)
63
- # implement each case before
64
- end
65
-
66
- def case_after(c)
67
- # implement each case after
68
- end
69
- end
70
- end
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.47
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-23 00:00:00.000000000 Z
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: &21746052 !ruby/object:Gem::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: *21746052
24
+ version_requirements: *21978132
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &21745680 !ruby/object:Gem::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: *21745680
35
+ version_requirements: *21977844
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &21745416 !ruby/object:Gem::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: *21745416
46
+ version_requirements: *21977616
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &21744960 !ruby/object:Gem::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: *21744960
57
+ version_requirements: *21977292
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &21744384 !ruby/object:Gem::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: *21744384
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