titlekit 1.0.0

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.
Files changed (119) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/.travis.yml +3 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE +22 -0
  6. data/README.md +335 -0
  7. data/Rakefile +8 -0
  8. data/lib/titlekit/have.rb +90 -0
  9. data/lib/titlekit/job.rb +446 -0
  10. data/lib/titlekit/parsers/ass.rb +175 -0
  11. data/lib/titlekit/parsers/ass.treetop +72 -0
  12. data/lib/titlekit/parsers/srt.rb +139 -0
  13. data/lib/titlekit/parsers/srt.treetop +73 -0
  14. data/lib/titlekit/parsers/ssa.rb +201 -0
  15. data/lib/titlekit/parsers/ssa.treetop +72 -0
  16. data/lib/titlekit/specification.rb +131 -0
  17. data/lib/titlekit/utilities.rb +3 -0
  18. data/lib/titlekit/version.rb +3 -0
  19. data/lib/titlekit/want.rb +24 -0
  20. data/lib/titlekit.rb +9 -0
  21. data/spec/ass_spec.rb +113 -0
  22. data/spec/automatic_grouping/automatic_grouping_spec.rb +55 -0
  23. data/spec/automatic_grouping/dual_tracks/expected.srt +15 -0
  24. data/spec/automatic_grouping/dual_tracks/one.srt +11 -0
  25. data/spec/automatic_grouping/dual_tracks/out.srt +15 -0
  26. data/spec/automatic_grouping/dual_tracks/two.srt +11 -0
  27. data/spec/automatic_grouping/single_track/expected.srt +24 -0
  28. data/spec/automatic_grouping/single_track/one.srt +11 -0
  29. data/spec/automatic_grouping/single_track/out.srt +24 -0
  30. data/spec/automatic_grouping/single_track/two.srt +11 -0
  31. data/spec/encoding_detection/a/in.ass +0 -0
  32. data/spec/encoding_detection/b/in.srt +2389 -0
  33. data/spec/encoding_detection/b/out.srt +2389 -0
  34. data/spec/encoding_detection/c/in.srt +5320 -0
  35. data/spec/encoding_detection/c/out.srt +5320 -0
  36. data/spec/encoding_detection/encoding_detection_spec.rb +81 -0
  37. data/spec/files/ass/authentic.ass +0 -0
  38. data/spec/files/ass/hard.ass +37 -0
  39. data/spec/files/ass/simple.ass +28 -0
  40. data/spec/files/srt/authentic.srt +2708 -0
  41. data/spec/files/srt/coordinates.srt +13 -0
  42. data/spec/files/srt/simple.srt +12 -0
  43. data/spec/files/ssa/simple.ssa +26 -0
  44. data/spec/files/try/unsupported-output.try +0 -0
  45. data/spec/files/try/unsupported.try +7 -0
  46. data/spec/format_conversion/ass_srt/expected.srt +2327 -0
  47. data/spec/format_conversion/ass_srt/in.ass +485 -0
  48. data/spec/format_conversion/ass_srt/out.srt +2327 -0
  49. data/spec/format_conversion/format_conversion_spec.rb +112 -0
  50. data/spec/format_conversion/srt_ass/expected.ass +19 -0
  51. data/spec/format_conversion/srt_ass/in.srt +12 -0
  52. data/spec/format_conversion/srt_ass/out.ass +19 -0
  53. data/spec/format_conversion/srt_ssa/expected.ssa +19 -0
  54. data/spec/format_conversion/srt_ssa/in.srt +12 -0
  55. data/spec/format_conversion/srt_ssa/out.ssa +19 -0
  56. data/spec/format_conversion/ssa_srt/expected.srt +9 -0
  57. data/spec/format_conversion/ssa_srt/in.ssa +26 -0
  58. data/spec/format_conversion/ssa_srt/out.srt +9 -0
  59. data/spec/job_spec.rb +162 -0
  60. data/spec/simultaneous_subtitles/dual/ass/expected.ass +22 -0
  61. data/spec/simultaneous_subtitles/dual/ass/out.ass +22 -0
  62. data/spec/simultaneous_subtitles/dual/one.srt +11 -0
  63. data/spec/simultaneous_subtitles/dual/srt/expected.srt +27 -0
  64. data/spec/simultaneous_subtitles/dual/srt/out.srt +27 -0
  65. data/spec/simultaneous_subtitles/dual/ssa/expected.ssa +22 -0
  66. data/spec/simultaneous_subtitles/dual/ssa/out.ssa +22 -0
  67. data/spec/simultaneous_subtitles/dual/two.srt +11 -0
  68. data/spec/simultaneous_subtitles/simultaneous_subtitles_spec.rb +220 -0
  69. data/spec/simultaneous_subtitles/triple/ass/expected.ass +25 -0
  70. data/spec/simultaneous_subtitles/triple/ass/out.ass +25 -0
  71. data/spec/simultaneous_subtitles/triple/one.srt +11 -0
  72. data/spec/simultaneous_subtitles/triple/srt/expected.srt +55 -0
  73. data/spec/simultaneous_subtitles/triple/srt/out.srt +55 -0
  74. data/spec/simultaneous_subtitles/triple/ssa/expected.ssa +25 -0
  75. data/spec/simultaneous_subtitles/triple/ssa/out.ssa +25 -0
  76. data/spec/simultaneous_subtitles/triple/three.srt +11 -0
  77. data/spec/simultaneous_subtitles/triple/two.srt +11 -0
  78. data/spec/simultaneous_subtitles/triple_plus/ass/expected.ass +93 -0
  79. data/spec/simultaneous_subtitles/triple_plus/ass/out.ass +93 -0
  80. data/spec/simultaneous_subtitles/triple_plus/five.srt +11 -0
  81. data/spec/simultaneous_subtitles/triple_plus/four.srt +11 -0
  82. data/spec/simultaneous_subtitles/triple_plus/one.srt +11 -0
  83. data/spec/simultaneous_subtitles/triple_plus/six.srt +11 -0
  84. data/spec/simultaneous_subtitles/triple_plus/srt/expected.srt +149 -0
  85. data/spec/simultaneous_subtitles/triple_plus/srt/out.srt +149 -0
  86. data/spec/simultaneous_subtitles/triple_plus/ssa/expected.ssa +93 -0
  87. data/spec/simultaneous_subtitles/triple_plus/ssa/out.ssa +93 -0
  88. data/spec/simultaneous_subtitles/triple_plus/three.srt +11 -0
  89. data/spec/simultaneous_subtitles/triple_plus/two.srt +11 -0
  90. data/spec/spec_helper.rb +7 -0
  91. data/spec/specifications_spec.rb +138 -0
  92. data/spec/srt_spec.rb +134 -0
  93. data/spec/ssa_spec.rb +90 -0
  94. data/spec/timecode_correction/double_reference/expected.srt +13 -0
  95. data/spec/timecode_correction/double_reference/in.srt +12 -0
  96. data/spec/timecode_correction/double_reference/out.srt +13 -0
  97. data/spec/timecode_correction/framerate/expected.srt +5 -0
  98. data/spec/timecode_correction/framerate/in.srt +4 -0
  99. data/spec/timecode_correction/framerate/out.srt +5 -0
  100. data/spec/timecode_correction/framerate_plus_reference/expected.srt +13 -0
  101. data/spec/timecode_correction/framerate_plus_reference/in.srt +12 -0
  102. data/spec/timecode_correction/framerate_plus_reference/out.srt +13 -0
  103. data/spec/timecode_correction/single_reference/expected.srt +13 -0
  104. data/spec/timecode_correction/single_reference/in.srt +12 -0
  105. data/spec/timecode_correction/single_reference/out.srt +13 -0
  106. data/spec/timecode_correction/timecode_correction_spec.rb +124 -0
  107. data/spec/transcoding/gb2312-ascii/in.srt +12 -0
  108. data/spec/transcoding/iso-8859-1_utf-8/expected.srt +12 -0
  109. data/spec/transcoding/iso-8859-1_utf-8/in.srt +11 -0
  110. data/spec/transcoding/iso-8859-1_utf-8/out.srt +12 -0
  111. data/spec/transcoding/transcoding_spec.rb +116 -0
  112. data/spec/transcoding/utf-8_gbk/expected.srt +12 -0
  113. data/spec/transcoding/utf-8_gbk/in.srt +11 -0
  114. data/spec/transcoding/utf-8_gbk/out.srt +12 -0
  115. data/spec/transcoding/windows-1252_utf-8/expected.srt +12 -0
  116. data/spec/transcoding/windows-1252_utf-8/in.srt +11 -0
  117. data/spec/transcoding/windows-1252_utf-8/out.srt +12 -0
  118. data/titlekit.gemspec +28 -0
  119. metadata +313 -0
@@ -0,0 +1,12 @@
1
+ 1
2
+ 00:00:02,364 --> 00:00:07,300
3
+ ¿Cifrado con ISO-8859-1?
4
+
5
+ 2
6
+ 00:00:24,000 --> 00:00:37,800
7
+ ¡Sí claro!
8
+
9
+ 3
10
+ 00:00:34,000 --> 00:00:47,800
11
+ Pues ... ¡Vamos a ver!
12
+
@@ -0,0 +1,116 @@
1
+ require File.join(File.expand_path(__dir__), '../spec_helper')
2
+
3
+ describe Titlekit::Job do
4
+
5
+ describe 'Transcoding' do
6
+
7
+ context 'From ISO-8859-1 to UTF-8' do
8
+ before(:all) do
9
+ @in = File.join(__dir__, 'iso-8859-1_utf-8', 'in.srt')
10
+ @out = File.join(__dir__, 'iso-8859-1_utf-8', 'out.srt')
11
+ @expected = File.join(__dir__, 'iso-8859-1_utf-8', 'expected.srt')
12
+
13
+ File.delete(@out) if File.exist?(@out)
14
+ end
15
+
16
+ it 'runs the job' do
17
+ job = Titlekit::Job.new
18
+
19
+ have = job.have
20
+ have.encoding('ISO-8859-1')
21
+ have.file(@in)
22
+
23
+ want = job.want
24
+ want.encoding('UTF-8')
25
+ want.file(@out)
26
+
27
+ expect(job.run).to be_true
28
+ end
29
+
30
+ it 'delivers the expected output' do
31
+ expect(FileUtils.compare_file(@out, @expected)).to be_true
32
+ end
33
+ end
34
+
35
+ context 'From Windows-1252 to UTF-8' do
36
+ before(:all) do
37
+ @in = File.join(__dir__, 'windows-1252_utf-8', 'in.srt')
38
+ @out = File.join(__dir__, 'windows-1252_utf-8', 'out.srt')
39
+ @expected = File.join(__dir__, 'windows-1252_utf-8', 'expected.srt')
40
+
41
+ File.delete(@out) if File.exist?(@out)
42
+ end
43
+
44
+ it 'runs the job' do
45
+ job = Titlekit::Job.new
46
+
47
+ have = job.have
48
+ have.encoding('Windows-1252')
49
+ have.file(@in)
50
+
51
+ want = job.want
52
+ want.encoding('UTF-8')
53
+ want.file(@out)
54
+
55
+ expect(job.run).to be_true
56
+ end
57
+
58
+ it 'delivers the expected output' do
59
+ expect(FileUtils.compare_file(@out, @expected)).to be_true
60
+ end
61
+ end
62
+
63
+ context 'From UTF-8 to GBK' do
64
+ before(:all) do
65
+ @in = File.join(__dir__, 'utf-8_gbk', 'in.srt')
66
+ @out = File.join(__dir__, 'utf-8_gbk', 'out.srt')
67
+ @expected = File.join(__dir__, 'utf-8_gbk', 'expected.srt')
68
+
69
+ File.delete(@out) if File.exist?(@out)
70
+ end
71
+
72
+ it 'runs the job' do
73
+ job = Titlekit::Job.new
74
+
75
+ have = job.have
76
+ have.encoding('UTF-8')
77
+ have.file(@in)
78
+
79
+ want = job.want
80
+ want.encoding('GBK')
81
+ want.file(@out)
82
+
83
+ expect(job.run).to be_true
84
+ end
85
+
86
+ it 'delivers the expected output' do
87
+ expect(FileUtils.compare_file(@out, @expected)).to be_true
88
+ end
89
+ end
90
+
91
+ context 'From GB2312 to ASCII' do
92
+ before(:all) do
93
+ @in = File.join(__dir__, 'gb2312-ascii', 'in.srt')
94
+ @out = File.join(__dir__, 'gb2312-ascii', 'out.srt')
95
+ @expected = File.join(__dir__, 'gb2312-ascii', 'expected.srt')
96
+
97
+ File.delete(@out) if File.exist?(@out)
98
+ end
99
+
100
+ it 'gracefully aborts the job' do
101
+ job = Titlekit::Job.new
102
+
103
+ have = job.have
104
+ have.encoding('GB2312')
105
+ have.file(@in)
106
+
107
+ want = job.want
108
+ want.encoding('ASCII')
109
+ want.file(@out)
110
+
111
+ expect(job.run).to be_false
112
+ expect(job.report.join).to include('Failure while transcoding')
113
+ end
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,12 @@
1
+ 1
2
+ 00:00:02,364 --> 00:00:07,300
3
+ ����̫ƽȮ�������y����
4
+
5
+ 2
6
+ 00:00:24,000 --> 00:00:37,800
7
+ ����̫ƽȮ�������y����
8
+
9
+ 3
10
+ 00:00:34,000 --> 00:00:47,800
11
+ No chinese skills here, just copy and paste :(
12
+
@@ -0,0 +1,11 @@
1
+ 1
2
+ 00:00:02,364 --> 00:00:07,300
3
+ 寧為太平犬,不做亂世人
4
+
5
+ 2
6
+ 00:00:24,000 --> 00:00:37,800
7
+ 寧為太平犬,不做亂世人
8
+
9
+ 3
10
+ 00:00:34,000 --> 00:00:47,800
11
+ No chinese skills here, just copy and paste :(
@@ -0,0 +1,12 @@
1
+ 1
2
+ 00:00:02,364 --> 00:00:07,300
3
+ ����̫ƽȮ�������y����
4
+
5
+ 2
6
+ 00:00:24,000 --> 00:00:37,800
7
+ ����̫ƽȮ�������y����
8
+
9
+ 3
10
+ 00:00:34,000 --> 00:00:47,800
11
+ No chinese skills here, just copy and paste :(
12
+
@@ -0,0 +1,12 @@
1
+ 1
2
+ 00:00:02,364 --> 00:00:07,300
3
+ Enkodiert mit dem prächtigen Windows-1252?
4
+
5
+ 2
6
+ 00:00:24,000 --> 00:00:37,800
7
+ Jawohl, eine überzeugende Performance!
8
+
9
+ 3
10
+ 00:00:34,000 --> 00:00:47,800
11
+ Aber auch irgendwie öd.
12
+
@@ -0,0 +1,11 @@
1
+ 1
2
+ 00:00:02,364 --> 00:00:07,300
3
+ Enkodiert mit dem pr�chtigen Windows-1252?
4
+
5
+ 2
6
+ 00:00:24,000 --> 00:00:37,800
7
+ Jawohl, eine �berzeugende Performance!
8
+
9
+ 3
10
+ 00:00:34,000 --> 00:00:47,800
11
+ Aber auch irgendwie �d.
@@ -0,0 +1,12 @@
1
+ 1
2
+ 00:00:02,364 --> 00:00:07,300
3
+ Enkodiert mit dem prächtigen Windows-1252?
4
+
5
+ 2
6
+ 00:00:24,000 --> 00:00:37,800
7
+ Jawohl, eine überzeugende Performance!
8
+
9
+ 3
10
+ 00:00:34,000 --> 00:00:47,800
11
+ Aber auch irgendwie öd.
12
+
data/titlekit.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ require File.expand_path('../lib/titlekit/version', __FILE__)
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = 'titlekit'
5
+ spec.summary = 'Featureful Ruby 2 library for SRT / ASS / SSA subtitles'
6
+ spec.description = 'Featureful Ruby 2 library for SRT / ASS / SSA subtitles'
7
+
8
+ spec.homepage = 'https://github.com/simonrepp/titlekit'
9
+
10
+ spec.author = 'Simon Repp'
11
+ spec.email = 'simon@openideas.com'
12
+
13
+ spec.license = 'MIT'
14
+
15
+ spec.add_runtime_dependency('rchardet19')
16
+ spec.add_runtime_dependency('treetop')
17
+
18
+ spec.add_development_dependency('rake')
19
+ spec.add_development_dependency('rspec')
20
+
21
+ spec.platform = Gem::Platform::RUBY
22
+ spec.required_ruby_version = '>= 2.0.0'
23
+ spec.files = `git ls-files`.split($\)
24
+ spec.executables = spec.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
25
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
26
+ spec.require_paths = ['lib']
27
+ spec.version = Titlekit::VERSION
28
+ end
metadata ADDED
@@ -0,0 +1,313 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: titlekit
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Simon Repp
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-06-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rchardet19
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: treetop
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
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: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Featureful Ruby 2 library for SRT / ASS / SSA subtitles
70
+ email: simon@openideas.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - .gitignore
76
+ - .travis.yml
77
+ - Gemfile
78
+ - LICENSE
79
+ - README.md
80
+ - Rakefile
81
+ - lib/titlekit.rb
82
+ - lib/titlekit/have.rb
83
+ - lib/titlekit/job.rb
84
+ - lib/titlekit/parsers/ass.rb
85
+ - lib/titlekit/parsers/ass.treetop
86
+ - lib/titlekit/parsers/srt.rb
87
+ - lib/titlekit/parsers/srt.treetop
88
+ - lib/titlekit/parsers/ssa.rb
89
+ - lib/titlekit/parsers/ssa.treetop
90
+ - lib/titlekit/specification.rb
91
+ - lib/titlekit/utilities.rb
92
+ - lib/titlekit/version.rb
93
+ - lib/titlekit/want.rb
94
+ - spec/ass_spec.rb
95
+ - spec/automatic_grouping/automatic_grouping_spec.rb
96
+ - spec/automatic_grouping/dual_tracks/expected.srt
97
+ - spec/automatic_grouping/dual_tracks/one.srt
98
+ - spec/automatic_grouping/dual_tracks/out.srt
99
+ - spec/automatic_grouping/dual_tracks/two.srt
100
+ - spec/automatic_grouping/single_track/expected.srt
101
+ - spec/automatic_grouping/single_track/one.srt
102
+ - spec/automatic_grouping/single_track/out.srt
103
+ - spec/automatic_grouping/single_track/two.srt
104
+ - spec/encoding_detection/a/in.ass
105
+ - spec/encoding_detection/b/in.srt
106
+ - spec/encoding_detection/b/out.srt
107
+ - spec/encoding_detection/c/in.srt
108
+ - spec/encoding_detection/c/out.srt
109
+ - spec/encoding_detection/encoding_detection_spec.rb
110
+ - spec/files/ass/authentic.ass
111
+ - spec/files/ass/hard.ass
112
+ - spec/files/ass/simple.ass
113
+ - spec/files/srt/authentic.srt
114
+ - spec/files/srt/coordinates.srt
115
+ - spec/files/srt/simple.srt
116
+ - spec/files/ssa/simple.ssa
117
+ - spec/files/try/unsupported-output.try
118
+ - spec/files/try/unsupported.try
119
+ - spec/format_conversion/ass_srt/expected.srt
120
+ - spec/format_conversion/ass_srt/in.ass
121
+ - spec/format_conversion/ass_srt/out.srt
122
+ - spec/format_conversion/format_conversion_spec.rb
123
+ - spec/format_conversion/srt_ass/expected.ass
124
+ - spec/format_conversion/srt_ass/in.srt
125
+ - spec/format_conversion/srt_ass/out.ass
126
+ - spec/format_conversion/srt_ssa/expected.ssa
127
+ - spec/format_conversion/srt_ssa/in.srt
128
+ - spec/format_conversion/srt_ssa/out.ssa
129
+ - spec/format_conversion/ssa_srt/expected.srt
130
+ - spec/format_conversion/ssa_srt/in.ssa
131
+ - spec/format_conversion/ssa_srt/out.srt
132
+ - spec/job_spec.rb
133
+ - spec/simultaneous_subtitles/dual/ass/expected.ass
134
+ - spec/simultaneous_subtitles/dual/ass/out.ass
135
+ - spec/simultaneous_subtitles/dual/one.srt
136
+ - spec/simultaneous_subtitles/dual/srt/expected.srt
137
+ - spec/simultaneous_subtitles/dual/srt/out.srt
138
+ - spec/simultaneous_subtitles/dual/ssa/expected.ssa
139
+ - spec/simultaneous_subtitles/dual/ssa/out.ssa
140
+ - spec/simultaneous_subtitles/dual/two.srt
141
+ - spec/simultaneous_subtitles/simultaneous_subtitles_spec.rb
142
+ - spec/simultaneous_subtitles/triple/ass/expected.ass
143
+ - spec/simultaneous_subtitles/triple/ass/out.ass
144
+ - spec/simultaneous_subtitles/triple/one.srt
145
+ - spec/simultaneous_subtitles/triple/srt/expected.srt
146
+ - spec/simultaneous_subtitles/triple/srt/out.srt
147
+ - spec/simultaneous_subtitles/triple/ssa/expected.ssa
148
+ - spec/simultaneous_subtitles/triple/ssa/out.ssa
149
+ - spec/simultaneous_subtitles/triple/three.srt
150
+ - spec/simultaneous_subtitles/triple/two.srt
151
+ - spec/simultaneous_subtitles/triple_plus/ass/expected.ass
152
+ - spec/simultaneous_subtitles/triple_plus/ass/out.ass
153
+ - spec/simultaneous_subtitles/triple_plus/five.srt
154
+ - spec/simultaneous_subtitles/triple_plus/four.srt
155
+ - spec/simultaneous_subtitles/triple_plus/one.srt
156
+ - spec/simultaneous_subtitles/triple_plus/six.srt
157
+ - spec/simultaneous_subtitles/triple_plus/srt/expected.srt
158
+ - spec/simultaneous_subtitles/triple_plus/srt/out.srt
159
+ - spec/simultaneous_subtitles/triple_plus/ssa/expected.ssa
160
+ - spec/simultaneous_subtitles/triple_plus/ssa/out.ssa
161
+ - spec/simultaneous_subtitles/triple_plus/three.srt
162
+ - spec/simultaneous_subtitles/triple_plus/two.srt
163
+ - spec/spec_helper.rb
164
+ - spec/specifications_spec.rb
165
+ - spec/srt_spec.rb
166
+ - spec/ssa_spec.rb
167
+ - spec/timecode_correction/double_reference/expected.srt
168
+ - spec/timecode_correction/double_reference/in.srt
169
+ - spec/timecode_correction/double_reference/out.srt
170
+ - spec/timecode_correction/framerate/expected.srt
171
+ - spec/timecode_correction/framerate/in.srt
172
+ - spec/timecode_correction/framerate/out.srt
173
+ - spec/timecode_correction/framerate_plus_reference/expected.srt
174
+ - spec/timecode_correction/framerate_plus_reference/in.srt
175
+ - spec/timecode_correction/framerate_plus_reference/out.srt
176
+ - spec/timecode_correction/single_reference/expected.srt
177
+ - spec/timecode_correction/single_reference/in.srt
178
+ - spec/timecode_correction/single_reference/out.srt
179
+ - spec/timecode_correction/timecode_correction_spec.rb
180
+ - spec/transcoding/gb2312-ascii/in.srt
181
+ - spec/transcoding/iso-8859-1_utf-8/expected.srt
182
+ - spec/transcoding/iso-8859-1_utf-8/in.srt
183
+ - spec/transcoding/iso-8859-1_utf-8/out.srt
184
+ - spec/transcoding/transcoding_spec.rb
185
+ - spec/transcoding/utf-8_gbk/expected.srt
186
+ - spec/transcoding/utf-8_gbk/in.srt
187
+ - spec/transcoding/utf-8_gbk/out.srt
188
+ - spec/transcoding/windows-1252_utf-8/expected.srt
189
+ - spec/transcoding/windows-1252_utf-8/in.srt
190
+ - spec/transcoding/windows-1252_utf-8/out.srt
191
+ - titlekit.gemspec
192
+ homepage: https://github.com/simonrepp/titlekit
193
+ licenses:
194
+ - MIT
195
+ metadata: {}
196
+ post_install_message:
197
+ rdoc_options: []
198
+ require_paths:
199
+ - lib
200
+ required_ruby_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - '>='
203
+ - !ruby/object:Gem::Version
204
+ version: 2.0.0
205
+ required_rubygems_version: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - '>='
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ requirements: []
211
+ rubyforge_project:
212
+ rubygems_version: 2.0.3
213
+ signing_key:
214
+ specification_version: 4
215
+ summary: Featureful Ruby 2 library for SRT / ASS / SSA subtitles
216
+ test_files:
217
+ - spec/ass_spec.rb
218
+ - spec/automatic_grouping/automatic_grouping_spec.rb
219
+ - spec/automatic_grouping/dual_tracks/expected.srt
220
+ - spec/automatic_grouping/dual_tracks/one.srt
221
+ - spec/automatic_grouping/dual_tracks/out.srt
222
+ - spec/automatic_grouping/dual_tracks/two.srt
223
+ - spec/automatic_grouping/single_track/expected.srt
224
+ - spec/automatic_grouping/single_track/one.srt
225
+ - spec/automatic_grouping/single_track/out.srt
226
+ - spec/automatic_grouping/single_track/two.srt
227
+ - spec/encoding_detection/a/in.ass
228
+ - spec/encoding_detection/b/in.srt
229
+ - spec/encoding_detection/b/out.srt
230
+ - spec/encoding_detection/c/in.srt
231
+ - spec/encoding_detection/c/out.srt
232
+ - spec/encoding_detection/encoding_detection_spec.rb
233
+ - spec/files/ass/authentic.ass
234
+ - spec/files/ass/hard.ass
235
+ - spec/files/ass/simple.ass
236
+ - spec/files/srt/authentic.srt
237
+ - spec/files/srt/coordinates.srt
238
+ - spec/files/srt/simple.srt
239
+ - spec/files/ssa/simple.ssa
240
+ - spec/files/try/unsupported-output.try
241
+ - spec/files/try/unsupported.try
242
+ - spec/format_conversion/ass_srt/expected.srt
243
+ - spec/format_conversion/ass_srt/in.ass
244
+ - spec/format_conversion/ass_srt/out.srt
245
+ - spec/format_conversion/format_conversion_spec.rb
246
+ - spec/format_conversion/srt_ass/expected.ass
247
+ - spec/format_conversion/srt_ass/in.srt
248
+ - spec/format_conversion/srt_ass/out.ass
249
+ - spec/format_conversion/srt_ssa/expected.ssa
250
+ - spec/format_conversion/srt_ssa/in.srt
251
+ - spec/format_conversion/srt_ssa/out.ssa
252
+ - spec/format_conversion/ssa_srt/expected.srt
253
+ - spec/format_conversion/ssa_srt/in.ssa
254
+ - spec/format_conversion/ssa_srt/out.srt
255
+ - spec/job_spec.rb
256
+ - spec/simultaneous_subtitles/dual/ass/expected.ass
257
+ - spec/simultaneous_subtitles/dual/ass/out.ass
258
+ - spec/simultaneous_subtitles/dual/one.srt
259
+ - spec/simultaneous_subtitles/dual/srt/expected.srt
260
+ - spec/simultaneous_subtitles/dual/srt/out.srt
261
+ - spec/simultaneous_subtitles/dual/ssa/expected.ssa
262
+ - spec/simultaneous_subtitles/dual/ssa/out.ssa
263
+ - spec/simultaneous_subtitles/dual/two.srt
264
+ - spec/simultaneous_subtitles/simultaneous_subtitles_spec.rb
265
+ - spec/simultaneous_subtitles/triple/ass/expected.ass
266
+ - spec/simultaneous_subtitles/triple/ass/out.ass
267
+ - spec/simultaneous_subtitles/triple/one.srt
268
+ - spec/simultaneous_subtitles/triple/srt/expected.srt
269
+ - spec/simultaneous_subtitles/triple/srt/out.srt
270
+ - spec/simultaneous_subtitles/triple/ssa/expected.ssa
271
+ - spec/simultaneous_subtitles/triple/ssa/out.ssa
272
+ - spec/simultaneous_subtitles/triple/three.srt
273
+ - spec/simultaneous_subtitles/triple/two.srt
274
+ - spec/simultaneous_subtitles/triple_plus/ass/expected.ass
275
+ - spec/simultaneous_subtitles/triple_plus/ass/out.ass
276
+ - spec/simultaneous_subtitles/triple_plus/five.srt
277
+ - spec/simultaneous_subtitles/triple_plus/four.srt
278
+ - spec/simultaneous_subtitles/triple_plus/one.srt
279
+ - spec/simultaneous_subtitles/triple_plus/six.srt
280
+ - spec/simultaneous_subtitles/triple_plus/srt/expected.srt
281
+ - spec/simultaneous_subtitles/triple_plus/srt/out.srt
282
+ - spec/simultaneous_subtitles/triple_plus/ssa/expected.ssa
283
+ - spec/simultaneous_subtitles/triple_plus/ssa/out.ssa
284
+ - spec/simultaneous_subtitles/triple_plus/three.srt
285
+ - spec/simultaneous_subtitles/triple_plus/two.srt
286
+ - spec/spec_helper.rb
287
+ - spec/specifications_spec.rb
288
+ - spec/srt_spec.rb
289
+ - spec/ssa_spec.rb
290
+ - spec/timecode_correction/double_reference/expected.srt
291
+ - spec/timecode_correction/double_reference/in.srt
292
+ - spec/timecode_correction/double_reference/out.srt
293
+ - spec/timecode_correction/framerate/expected.srt
294
+ - spec/timecode_correction/framerate/in.srt
295
+ - spec/timecode_correction/framerate/out.srt
296
+ - spec/timecode_correction/framerate_plus_reference/expected.srt
297
+ - spec/timecode_correction/framerate_plus_reference/in.srt
298
+ - spec/timecode_correction/framerate_plus_reference/out.srt
299
+ - spec/timecode_correction/single_reference/expected.srt
300
+ - spec/timecode_correction/single_reference/in.srt
301
+ - spec/timecode_correction/single_reference/out.srt
302
+ - spec/timecode_correction/timecode_correction_spec.rb
303
+ - spec/transcoding/gb2312-ascii/in.srt
304
+ - spec/transcoding/iso-8859-1_utf-8/expected.srt
305
+ - spec/transcoding/iso-8859-1_utf-8/in.srt
306
+ - spec/transcoding/iso-8859-1_utf-8/out.srt
307
+ - spec/transcoding/transcoding_spec.rb
308
+ - spec/transcoding/utf-8_gbk/expected.srt
309
+ - spec/transcoding/utf-8_gbk/in.srt
310
+ - spec/transcoding/utf-8_gbk/out.srt
311
+ - spec/transcoding/windows-1252_utf-8/expected.srt
312
+ - spec/transcoding/windows-1252_utf-8/in.srt
313
+ - spec/transcoding/windows-1252_utf-8/out.srt