ss_syntax 0.0.2 → 0.0.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a8cf3f9ee2480613402c43f650705e4a292aca0d
4
- data.tar.gz: df1d00eec5cf6f1693e94b3fd17454e83d9fc9bd
3
+ metadata.gz: 1561fe0dc4b71302bcf87ee76f15a7540e7d206a
4
+ data.tar.gz: 8ceb88c9af5f7b90ff7ef1c7b1b1c45f0b33071b
5
5
  SHA512:
6
- metadata.gz: d9e7ef39e26e32d496d7df45dcc7a8c2492e8c352a38703362f3fefc408d500c7f6cabd07520faf6b6403c0f2963e9ad601a1b6bb861d13c010ce1a33b3f5f70
7
- data.tar.gz: 472b1089dfe9d5a673547f24824f10e97ef557d412711b648d77612a98b40aa3ce8352550741a48aab2c89b736995b307e5caf33cf7ae67ead53ce55e4456110
6
+ metadata.gz: 555ed132c7f9af1fed838fc2f945794ab82dd5f483f8aa09de7b60fd5e07b5012d04cc997ef0f86533210294f0be91ee58b479fe71abf952a8a227bf0e369663
7
+ data.tar.gz: 3c009224cdb4943c75a45b159dec39a4838da97928ebaee1fd97b5f73ac949b0661aa2c3e6bffb782ab671a449895a6062100d14271d149f4c6bd368c1dbb67e
data/.travis.yml ADDED
@@ -0,0 +1,2 @@
1
+ rvm:
2
+ - 2.1.5
data/Gemfile.lock CHANGED
@@ -1,16 +1,32 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ss_syntax (0.0.1)
4
+ ss_syntax (0.0.2)
5
5
  slop
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ diff-lcs (1.2.5)
11
+ rake (10.1.0)
12
+ rspec (3.1.0)
13
+ rspec-core (~> 3.1.0)
14
+ rspec-expectations (~> 3.1.0)
15
+ rspec-mocks (~> 3.1.0)
16
+ rspec-core (3.1.7)
17
+ rspec-support (~> 3.1.0)
18
+ rspec-expectations (3.1.2)
19
+ diff-lcs (>= 1.2.0, < 2.0)
20
+ rspec-support (~> 3.1.0)
21
+ rspec-mocks (3.1.3)
22
+ rspec-support (~> 3.1.0)
23
+ rspec-support (3.1.2)
10
24
  slop (3.6.0)
11
25
 
12
26
  PLATFORMS
13
27
  ruby
14
28
 
15
29
  DEPENDENCIES
30
+ rake
31
+ rspec (~> 3.1.0)
16
32
  ss_syntax!
data/README.md CHANGED
@@ -1,4 +1,16 @@
1
1
  # ss記法
2
+ [![Build Status](https://travis-ci.org/henteko/ss_syntax_rb.svg?branch=master)](https://travis-ci.org/henteko/ss_syntax_rb)
3
+
4
+ ## インストール
5
+
6
+ ```sh
7
+ gem install ss_syntax
8
+
9
+ # or
10
+
11
+ gem 'ss_syntax'
12
+ bundle install
13
+ ```
2
14
 
3
15
  ## 使い方
4
16
 
@@ -39,8 +51,12 @@ html = SsSyntax::SsSyntax.new(src, :html).parse()
39
51
  男: 今日は眠い
40
52
  1: 今日は眠い
41
53
 
54
+ # 擬音も書ける
55
+ 1: 眠い :zzz
56
+
42
57
  # 結果
43
58
  # 男「今日は眠い」
59
+ # 男「眠い」zzz
44
60
  ```
45
61
 
46
62
  ### 心の声
@@ -50,8 +66,12 @@ html = SsSyntax::SsSyntax.new(src, :html).parse()
50
66
 
51
67
  1_ 女は今日も可愛いなぁ
52
68
 
69
+ # 擬音
70
+ 1_ わかる _ zzz
71
+
53
72
  # 結果
54
73
  # 男(女は今日も可愛いなぁ)
74
+ # 男(わかる)zzz
55
75
  ```
56
76
 
57
77
  ### 地の文
data/Rakefile ADDED
@@ -0,0 +1,5 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+ task default: :spec
data/example/example.ss CHANGED
@@ -7,4 +7,6 @@
7
7
 
8
8
  1: 小倉唯神
9
9
  2_ また男が変なこと言ってる…
10
- 天使: それな
10
+ 天使: それな
11
+ 1: ねむい : zzz
12
+ 天使_ それな _ zzz
@@ -23,7 +23,8 @@ module SsSyntax
23
23
  html_text = ''
24
24
  @parse_text.each_line do |line|
25
25
  line.chomp!
26
- html_text += "<span>#{line}</span><br />"
26
+ html_text += "<p>#{line}</p>" if line != ''
27
+ html_text += "<br />"
27
28
  end
28
29
 
29
30
  html_text
@@ -47,7 +48,7 @@ module SsSyntax
47
48
  when Parses::Type::Remark
48
49
  parse_text += Parses::Remark.get(line, @charactes) + "\n"
49
50
  when Parses::Type::None
50
- parse_text += Parses::None.get(line) + "\n" if line != ''
51
+ parse_text += Parses::None.get(line) + "\n"
51
52
  else
52
53
  raise 'not support type'
53
54
  end
@@ -11,7 +11,7 @@ module SsSyntax
11
11
 
12
12
  def self.get(text)
13
13
  match = text.match(/^\* (.+) (.+)/) || text.match(/^- (.+) (.+)/)
14
- return nil, nil if match == nil
14
+ return nil, nil if match == nil # TODO: raiseしてあげた方がいいかも
15
15
  return match[1], match[2]
16
16
  end
17
17
  end
@@ -10,11 +10,18 @@ module SsSyntax
10
10
  end
11
11
 
12
12
  def self.get(text, characters)
13
- match = text.match(/(.+)_ (.+)/)
14
- key, body = match[1], match[2]
13
+ key, body, gion = '', '', ''
15
14
 
16
- return "#{characters[key]}(#{body})" if characters[key] != nil
17
- return "#{key}(#{body})"
15
+ gion_match = text.match(/(.+)_ (.+) _ (.+)/) # with 擬音
16
+ if gion_match != nil
17
+ key, body, gion = gion_match[1], gion_match[2], gion_match[3]
18
+ else
19
+ match = text.match(/(.+)_ (.+)/)
20
+ key, body = match[1], match[2]
21
+ end
22
+
23
+ return "#{characters[key]}(#{body})#{gion}" if characters[key] != nil
24
+ return "#{key}(#{body})#{gion}"
18
25
  end
19
26
  end
20
27
  end
@@ -10,11 +10,18 @@ module SsSyntax
10
10
  end
11
11
 
12
12
  def self.get(text, characters)
13
- match = text.match(/(.+): (.+)/)
14
- key, body = match[1], match[2]
13
+ key, body, gion = '', '', ''
15
14
 
16
- return "#{characters[key]}「#{body}」" if characters[key] != nil
17
- return "#{key}「#{body}」"
15
+ gion_match = text.match(/(.+): (.+) : (.+)/) # with 擬音
16
+ if gion_match != nil
17
+ key, body, gion = gion_match[1], gion_match[2], gion_match[3]
18
+ else
19
+ match = text.match(/(.+): (.+)/)
20
+ key, body = match[1], match[2]
21
+ end
22
+
23
+ return "#{characters[key]}「#{body}」#{gion}" if characters[key] != nil
24
+ return "#{key}「#{body}」#{gion}"
18
25
  end
19
26
  end
20
27
  end
@@ -1,3 +1,3 @@
1
1
  module SsSyntax
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,6 @@
1
+ require 'ss_syntax'
2
+
3
+ RSpec.configure do |config|
4
+ config.treat_symbols_as_metadata_keys_with_true_values = true
5
+ config.color = true
6
+ end
@@ -0,0 +1,36 @@
1
+ require "spec_helper"
2
+
3
+ describe SsSyntax::Parse do
4
+
5
+ before do
6
+ @text = <<"EOS"
7
+ * 1 hoge
8
+ * 2 fuga
9
+
10
+ # comment
11
+ 1: hoge
12
+ 2_ fuga
13
+ EOS
14
+ end
15
+
16
+ describe '#to_s' do
17
+ it 'default' do
18
+ re_text = <<"EOS"
19
+
20
+ hoge「hoge」
21
+ fuga(fuga)
22
+ EOS
23
+
24
+ expect(SsSyntax::Parse.new(@text).to_s).to eq re_text
25
+ end
26
+ end
27
+
28
+ describe '#to_h' do
29
+ it 'default' do
30
+ re_html = "<br /><p>hoge「hoge」</p><br /><p>fuga(fuga)</p><br />"
31
+
32
+ expect(SsSyntax::Parse.new(@text).to_h).to eq re_html
33
+ end
34
+ end
35
+
36
+ end
@@ -0,0 +1,67 @@
1
+ require "spec_helper"
2
+
3
+ describe SsSyntax::Parses::Character do
4
+
5
+ describe 'self.check' do
6
+ context 'when character' do
7
+ it '*' do
8
+ expect(SsSyntax::Parses::Character.check('* hoge fuga')).to be_truthy
9
+ expect(SsSyntax::Parses::Character.check('* hoge')).to be_truthy
10
+ end
11
+
12
+ it '-' do
13
+ expect(SsSyntax::Parses::Character.check('- hoge fuga')).to be_truthy
14
+ expect(SsSyntax::Parses::Character.check('- hoge')).to be_truthy
15
+ end
16
+ end
17
+
18
+ context 'when not character' do
19
+ it 'comment' do
20
+ expect(SsSyntax::Parses::Character.check('# hoge')).to be_falsey
21
+ end
22
+
23
+ it 'heart voice' do
24
+ expect(SsSyntax::Parses::Character.check('1_ hoge')).to be_falsey
25
+ end
26
+
27
+ it 'remark' do
28
+ expect(SsSyntax::Parses::Character.check('1: hoge')).to be_falsey
29
+ end
30
+
31
+ it 'blank' do
32
+ expect(SsSyntax::Parses::Character.check('')).to be_falsey
33
+ end
34
+ end
35
+ end
36
+
37
+ describe 'self.get' do
38
+ context 'when character' do
39
+ before do
40
+ @cha = 'hoge'
41
+ @cha2 = 'fuga'
42
+ end
43
+
44
+ it '*' do
45
+ expect(SsSyntax::Parses::Character.get("* #{@cha} #{@cha2}")).to match_array [@cha, @cha2]
46
+ end
47
+
48
+ it '-' do
49
+ expect(SsSyntax::Parses::Character.get("- #{@cha} #{@cha2}")).to match_array [@cha, @cha2]
50
+ end
51
+ end
52
+
53
+ context 'when nil' do
54
+ before do
55
+ @cha = 'hoge'
56
+ end
57
+
58
+ it '*' do
59
+ expect(SsSyntax::Parses::Character.get("* #{@cha}")).to match_array [nil, nil]
60
+ end
61
+
62
+ it '-' do
63
+ expect(SsSyntax::Parses::Character.get("- #{@cha}")).to match_array [nil, nil]
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,35 @@
1
+ require "spec_helper"
2
+
3
+ describe SsSyntax::Parses::Comment do
4
+
5
+ describe 'self.check' do
6
+ context 'when comment' do
7
+ it 'default' do
8
+ expect(SsSyntax::Parses::Comment.check('# hoge')).to be_truthy
9
+ end
10
+
11
+ it 'many #' do
12
+ expect(SsSyntax::Parses::Comment.check('## hoge ######')).to be_truthy
13
+ end
14
+ end
15
+
16
+ context 'when not comment' do
17
+ it 'default' do
18
+ expect(SsSyntax::Parses::Comment.check('hoge')).to be_falsey
19
+ end
20
+
21
+ it 'character' do
22
+ expect(SsSyntax::Parses::Comment.check('* hoge')).to be_falsey
23
+ end
24
+
25
+ it 'remark' do
26
+ expect(SsSyntax::Parses::Comment.check('1: hoge')).to be_falsey
27
+ end
28
+
29
+ it 'heart voice' do
30
+ expect(SsSyntax::Parses::Comment.check('1_ hoge')).to be_falsey
31
+ end
32
+ end
33
+ end
34
+
35
+ end
@@ -0,0 +1,63 @@
1
+ require "spec_helper"
2
+
3
+ describe SsSyntax::Parses::HeartVoice do
4
+
5
+ describe 'self.check' do
6
+ context 'when heart voice' do
7
+ it 'default' do
8
+ expect(SsSyntax::Parses::HeartVoice.check('1_ hoge')).to be_truthy
9
+ end
10
+ end
11
+
12
+ context 'when not heart voice' do
13
+ it 'default' do
14
+ expect(SsSyntax::Parses::HeartVoice.check('hoge')).to be_falsey
15
+ end
16
+
17
+ it 'character' do
18
+ expect(SsSyntax::Parses::HeartVoice.check('* hoge')).to be_falsey
19
+ end
20
+
21
+ it 'comment' do
22
+ expect(SsSyntax::Parses::HeartVoice.check('# hoge')).to be_falsey
23
+ end
24
+
25
+ it 'remark' do
26
+ expect(SsSyntax::Parses::HeartVoice.check('1: hoge')).to be_falsey
27
+ end
28
+
29
+ it 'blank' do
30
+ expect(SsSyntax::Parses::HeartVoice.check('')).to be_falsey
31
+ end
32
+ end
33
+ end
34
+
35
+ describe 'self.get' do
36
+ before do
37
+ @characters = {
38
+ '1' => 'hoge'
39
+ }
40
+ end
41
+
42
+ context 'when remark' do
43
+ it 'default' do
44
+ text = '1_ hoge'
45
+ re_text = 'hoge(hoge)'
46
+ expect(SsSyntax::Parses::HeartVoice.get(text, @characters)).to eq re_text
47
+ end
48
+
49
+ it 'with gion' do
50
+ text = '1_ hoge _ zzz'
51
+ re_text = 'hoge(hoge)zzz'
52
+ expect(SsSyntax::Parses::HeartVoice.get(text, @characters)).to eq re_text
53
+ end
54
+
55
+ it 'not character' do
56
+ text = 'fuga_ hoge'
57
+ re_text = 'fuga(hoge)'
58
+ expect(SsSyntax::Parses::HeartVoice.get(text, @characters)).to eq re_text
59
+ end
60
+ end
61
+ end
62
+
63
+ end
@@ -0,0 +1,31 @@
1
+ require "spec_helper"
2
+
3
+ describe SsSyntax::Parses::None do
4
+
5
+ describe 'self.check' do
6
+ context 'always return true' do
7
+ it 'blank' do
8
+ expect(SsSyntax::Parses::None.check('')).to be_truthy
9
+ end
10
+
11
+ it 'default' do
12
+ expect(SsSyntax::Parses::None.check('hoge')).to be_truthy
13
+ end
14
+ end
15
+ end
16
+
17
+ describe 'self.get' do
18
+ context 'always return text' do
19
+ it 'blank' do
20
+ text = ''
21
+ expect(SsSyntax::Parses::None.get(text)).to eq(text)
22
+ end
23
+
24
+ it 'default' do
25
+ text = 'hoge'
26
+ expect(SsSyntax::Parses::None.get(text)).to eq(text)
27
+ end
28
+ end
29
+ end
30
+
31
+ end
@@ -0,0 +1,63 @@
1
+ require "spec_helper"
2
+
3
+ describe SsSyntax::Parses::Remark do
4
+
5
+ describe 'self.check' do
6
+ context 'when remark' do
7
+ it 'default' do
8
+ expect(SsSyntax::Parses::Remark.check('1: hoge')).to be_truthy
9
+ end
10
+ end
11
+
12
+ context 'when not remark' do
13
+ it 'default' do
14
+ expect(SsSyntax::Parses::Remark.check('hoge')).to be_falsey
15
+ end
16
+
17
+ it 'character' do
18
+ expect(SsSyntax::Parses::Remark.check('* hoge')).to be_falsey
19
+ end
20
+
21
+ it 'comment' do
22
+ expect(SsSyntax::Parses::Remark.check('# hoge')).to be_falsey
23
+ end
24
+
25
+ it 'heart voice' do
26
+ expect(SsSyntax::Parses::Remark.check('1_ hoge')).to be_falsey
27
+ end
28
+
29
+ it 'blank' do
30
+ expect(SsSyntax::Parses::Remark.check('')).to be_falsey
31
+ end
32
+ end
33
+ end
34
+
35
+ describe 'self.get' do
36
+ before do
37
+ @characters = {
38
+ '1' => 'hoge'
39
+ }
40
+ end
41
+
42
+ context 'when remark' do
43
+ it 'default' do
44
+ text = '1: hoge'
45
+ re_text = 'hoge「hoge」'
46
+ expect(SsSyntax::Parses::Remark.get(text, @characters)).to eq re_text
47
+ end
48
+
49
+ it 'with gion' do
50
+ text = '1: hoge : zzz'
51
+ re_text = 'hoge「hoge」zzz'
52
+ expect(SsSyntax::Parses::Remark.get(text, @characters)).to eq re_text
53
+ end
54
+
55
+ it 'not character' do
56
+ text = 'fuga: hoge'
57
+ re_text = 'fuga「hoge」'
58
+ expect(SsSyntax::Parses::Remark.get(text, @characters)).to eq re_text
59
+ end
60
+ end
61
+ end
62
+
63
+ end
data/ss_syntax.gemspec CHANGED
@@ -13,7 +13,10 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.files = `git ls-files -z`.split("\x0")
15
15
  s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
16
17
  s.require_paths = ["lib"]
17
18
 
18
19
  s.add_dependency "slop"
20
+ s.add_development_dependency "rake"
21
+ s.add_development_dependency "rspec", "~> 3.1.0"
19
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ss_syntax
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - henteko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-24 00:00:00.000000000 Z
11
+ date: 2014-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: slop
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.1.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.1.0
27
55
  description:
28
56
  email: henteko07@gmail.com
29
57
  executables:
@@ -32,9 +60,11 @@ extensions: []
32
60
  extra_rdoc_files: []
33
61
  files:
34
62
  - ".gitignore"
63
+ - ".travis.yml"
35
64
  - Gemfile
36
65
  - Gemfile.lock
37
66
  - README.md
67
+ - Rakefile
38
68
  - bin/sssy
39
69
  - example/example.rb
40
70
  - example/example.ss
@@ -48,6 +78,13 @@ files:
48
78
  - lib/ss_syntax/parses/remark.rb
49
79
  - lib/ss_syntax/parses/type.rb
50
80
  - lib/ss_syntax/version.rb
81
+ - spec/spec_helper.rb
82
+ - spec/ss_syntax/parse_spec.rb
83
+ - spec/ss_syntax/parses/character_spec.rb
84
+ - spec/ss_syntax/parses/comment_spec.rb
85
+ - spec/ss_syntax/parses/heart_voice_spec.rb
86
+ - spec/ss_syntax/parses/none_spec.rb
87
+ - spec/ss_syntax/parses/remark_spec.rb
51
88
  - ss_syntax.gemspec
52
89
  homepage: https://github.com/henteko/ss_syntax_rb
53
90
  licenses:
@@ -73,4 +110,11 @@ rubygems_version: 2.2.2
73
110
  signing_key:
74
111
  specification_version: 4
75
112
  summary: Short Story Syntax
76
- test_files: []
113
+ test_files:
114
+ - spec/spec_helper.rb
115
+ - spec/ss_syntax/parse_spec.rb
116
+ - spec/ss_syntax/parses/character_spec.rb
117
+ - spec/ss_syntax/parses/comment_spec.rb
118
+ - spec/ss_syntax/parses/heart_voice_spec.rb
119
+ - spec/ss_syntax/parses/none_spec.rb
120
+ - spec/ss_syntax/parses/remark_spec.rb