titlekit 1.0.0

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