subshift 0.0.1.pre

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.
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'subshift/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "subshift"
8
+ spec.version = Subshift::VERSION
9
+ spec.authors = ["delba"]
10
+ spec.email = ["delba@users.noreply.github.com"]
11
+ spec.summary = %q{A simple yet robust SRT resync tool}
12
+ spec.homepage = "https://github.com/delba/subshift"
13
+ spec.license = "MIT"
14
+
15
+ spec.files = `git ls-files -z`.split("\x0")
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^test/})
18
+ spec.require_paths = ["lib"]
19
+
20
+ spec.add_development_dependency "bundler", "~> 1.7"
21
+ spec.add_development_dependency "rake", "~> 10.0"
22
+ spec.add_development_dependency "minitest", "~> 5.0"
23
+ spec.required_ruby_version = "~> 2.1"
24
+ end
@@ -0,0 +1,7 @@
1
+ require_relative 'test_helper'
2
+
3
+ class TestEncoding < Minitest::Test
4
+ def test_default_external
5
+ assert_equal Encoding.find('ISO-8859-1'), Encoding.default_external
6
+ end
7
+ end
@@ -0,0 +1,35 @@
1
+ require 'test_helper'
2
+
3
+ class TestFile < Minitest::Test
4
+ def setup
5
+ File.open 'file', 'w' do |f|
6
+ f.puts '1'
7
+ f.puts '2'
8
+ f.puts '3'
9
+ end
10
+ end
11
+
12
+ def teardown
13
+ FileUtils.rm 'file'
14
+
15
+ if File.exist? 'copy'
16
+ FileUtils.rm 'copy'
17
+ end
18
+ end
19
+
20
+ def test_copylines
21
+ File.copylines 'file', 'copy' do |line|
22
+ /1/ === line ? "First line\n": line
23
+ end
24
+
25
+ assert_equal "First line\n2\n3\n", File.read('copy')
26
+ end
27
+
28
+ def test_copylines_on_the_same_file
29
+ File.copylines 'file', 'file' do |line|
30
+ /1/ === line ? "First line\n": line
31
+ end
32
+
33
+ assert_equal "First line\n2\n3\n", File.read('file')
34
+ end
35
+ end
@@ -0,0 +1,5 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'subshift'
3
+
4
+ require 'minitest/autorun'
5
+ require 'minitest/pride'
@@ -0,0 +1,26 @@
1
+ require 'test_helper'
2
+
3
+ class Engine
4
+ attr_reader :power
5
+
6
+ def initialize(power)
7
+ @power = power
8
+ end
9
+ end
10
+
11
+ class Car
12
+ attr_reader :engine
13
+
14
+ delegate :power, to: :engine
15
+
16
+ def initialize
17
+ @engine = Engine.new(123)
18
+ end
19
+ end
20
+
21
+ class TestModule < Minitest::Test
22
+ def test_delegate
23
+ car = Car.new
24
+ assert_equal 123, car.power
25
+ end
26
+ end
@@ -0,0 +1,42 @@
1
+ require 'test_helper'
2
+
3
+ class TestOptions < Minitest::Test
4
+ def test_source
5
+ options = Subshift::Options.new(['sample.srt', '3'])
6
+ assert_equal 'sample.srt', options.source
7
+
8
+ options = Subshift::Options.new(['sample', '3'])
9
+ assert_equal 'sample.srt', options.source
10
+
11
+ options = Subshift::Options.new(['sample.str', '3'])
12
+ assert_equal 'sample.srt', options.source
13
+ end
14
+
15
+ def test_delay
16
+ options = Subshift::Options.new(['sample.srt', '3'])
17
+ assert_equal 3.0, options.delay
18
+
19
+ options = Subshift::Options.new(['sample.srt', '3.5'])
20
+ assert_equal 3.5, options.delay
21
+
22
+ options = Subshift::Options.new(['sample.srt', '-3'])
23
+ assert_equal (-3.0), options.delay
24
+
25
+ options = Subshift::Options.new(['sample.srt', '-3.5'])
26
+ assert_equal (-3.5), options.delay
27
+ end
28
+
29
+ def test_destination
30
+ options = Subshift::Options.new(['sample.srt', '3'])
31
+ assert_equal 'sample.srt', options.destination
32
+
33
+ options = Subshift::Options.new(['sample.srt', '3', '-d', 'delayed.srt'])
34
+ assert_equal 'delayed.srt', options.destination
35
+
36
+ options = Subshift::Options.new(['sample.srt', '3', '-d', 'delayed'])
37
+ assert_equal 'delayed.srt', options.destination
38
+
39
+ options = Subshift::Options.new(['sample.srt', '3', '-d', 'delayed.str'])
40
+ assert_equal 'delayed.srt', options.destination
41
+ end
42
+ end
@@ -0,0 +1,31 @@
1
+ require 'test_helper'
2
+
3
+ class RunnerTest < Minitest::Test
4
+ def teardown
5
+ if File.exist?('sample_delayed.srt')
6
+ FileUtils.rm('sample_delayed.srt')
7
+ end
8
+ end
9
+
10
+ def test_delegators
11
+ runner = Subshift::Runner.new(['sample.srt', '3'])
12
+ options = runner.options
13
+
14
+ assert_equal options.source, runner.source
15
+ assert_equal options.delay, runner.delay
16
+ assert_equal options.destination, runner.destination
17
+ end
18
+
19
+ def test_run
20
+ regexp = String::TIME
21
+ assert_equal '00:00:42,407', regexp.match(File.read('sample.srt'))[0]
22
+ Subshift::Runner.run!(['sample.srt', '3'])
23
+ assert_equal '00:00:45,407', regexp.match(File.read('sample.srt'))[0]
24
+
25
+ # Reset
26
+ runner = Subshift::Runner.run!(['sample.srt', '-3'])
27
+
28
+ runner = Subshift::Runner.run!(['sample.srt', '3', '-d', 'sample_delayed.srt'])
29
+ assert_equal '00:00:45,407', regexp.match(File.read('sample_delayed.srt'))[0]
30
+ end
31
+ end
@@ -0,0 +1,16 @@
1
+ require 'test_helper'
2
+
3
+ class TestString < Minitest::Test
4
+ def test_timeline
5
+ refute '1'.timeline?
6
+ assert '00:00:42,407 --> 00:00:44,932'.timeline?
7
+ refute '<i>"Winner, winner, chicken dinner."</i>'.timeline?
8
+ end
9
+
10
+ def test_shift_times
11
+ assert_equal '00:00:44,407 --> 00:00:46,932', '00:00:42,407 --> 00:00:44,932'.shift_times(2)
12
+ assert_equal '00:00:40,407 --> 00:00:42,932', '00:00:42,407 --> 00:00:44,932'.shift_times(-2)
13
+ assert_equal '00:00:44,907 --> 00:00:47,432', '00:00:42,407 --> 00:00:44,932'.shift_times(2.5)
14
+ assert_equal '00:00:39,907 --> 00:00:42,432', '00:00:42,407 --> 00:00:44,932'.shift_times(-2.5)
15
+ end
16
+ end
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: subshift
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.pre
5
+ platform: ruby
6
+ authors:
7
+ - delba
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
55
+ description:
56
+ email:
57
+ - delba@users.noreply.github.com
58
+ executables:
59
+ - subshift
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - ".travis.yml"
65
+ - Gemfile
66
+ - LICENSE.txt
67
+ - README.md
68
+ - Rakefile
69
+ - bin/subshift
70
+ - lib/patches/encoding.rb
71
+ - lib/patches/file.rb
72
+ - lib/patches/module.rb
73
+ - lib/patches/string.rb
74
+ - lib/subshift.rb
75
+ - lib/subshift/options.rb
76
+ - lib/subshift/runner.rb
77
+ - lib/subshift/version.rb
78
+ - sample.srt
79
+ - subshift.gemspec
80
+ - test/test_encoding.rb
81
+ - test/test_file.rb
82
+ - test/test_helper.rb
83
+ - test/test_module.rb
84
+ - test/test_options.rb
85
+ - test/test_runner.rb
86
+ - test/test_string.rb
87
+ homepage: https://github.com/delba/subshift
88
+ licenses:
89
+ - MIT
90
+ metadata: {}
91
+ post_install_message:
92
+ rdoc_options: []
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '2.1'
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">"
103
+ - !ruby/object:Gem::Version
104
+ version: 1.3.1
105
+ requirements: []
106
+ rubyforge_project:
107
+ rubygems_version: 2.4.5
108
+ signing_key:
109
+ specification_version: 4
110
+ summary: A simple yet robust SRT resync tool
111
+ test_files:
112
+ - test/test_encoding.rb
113
+ - test/test_file.rb
114
+ - test/test_helper.rb
115
+ - test/test_module.rb
116
+ - test/test_options.rb
117
+ - test/test_runner.rb
118
+ - test/test_string.rb
119
+ has_rdoc: