ss_syntax 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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