subtitle_it 2.0.0 → 2.0.1

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: 5e89ad4165e8f6502df504f903bea91ab440fa6c
4
- data.tar.gz: 9f771d45a07d6720aecd20edd763eadc766ef179
3
+ metadata.gz: 6618182f0ae7b04e5195693c1c65f7898b0d80b0
4
+ data.tar.gz: 4721ff41267fbb1c970e6b92c80e082357a37cfb
5
5
  SHA512:
6
- metadata.gz: 4ca034e01f764d55552192df5a5036418699696d7d8b1246ef2ccf345abb83f8866f3c2fc354a0053baf18bf98727e126f7e350b93cdc970800e1282a068c68f
7
- data.tar.gz: f8596dd83734c9271881dac335f93dfe19b3a574e146f42db828c8950b05e9aa4032c44639ac53a33914b41116124caeda67c5950e5b4db8e3fc9aed2edfdd9a
6
+ metadata.gz: 65330e0721ba021eef2d7dd7446e09eb87c9da729af85c8f9da2128fced8a51e4983343cc8060cae0ee9cc6d552d05e7923b479df4a432b40df9a0c798f8ed3f
7
+ data.tar.gz: fbcebf4d10dd6194956d4e47d580c01ac22f909fea474deb357140f74e5c796801b510ee1a24adba8fb4e67ad71fbe99be373c438e9d6bdb9618027aa786c72a
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --tty
2
+ --color
3
+ --format documentation
data/.travis.yml ADDED
@@ -0,0 +1,21 @@
1
+ language: ruby
2
+ bundler_args: --without development
3
+ rvm:
4
+ - 1.9.3
5
+ - 2.2.2
6
+ - ruby-head
7
+ - jruby
8
+ - rbx-2
9
+
10
+ jdk:
11
+ - oraclejdk7
12
+ - openjdk7
13
+
14
+ env: CI="travis" JRUBY_OPTS="--2.0 --server -Xcompile.invokedynamic=false -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -J-Xms512m -J-Xmx1024m"
15
+
16
+ matrix:
17
+ allow_failures:
18
+ - rvm: ruby-head
19
+ - rvm: jruby
20
+
21
+ env: CI="travis"
data/Gemfile CHANGED
@@ -1,3 +1,13 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ group :test do
6
+ gem 'rake'
7
+ gem 'guard'
8
+ gem 'rubocop'
9
+ gem 'guard-rspec'
10
+ gem 'guard-rubocop'
11
+ gem 'rspec', '>= 3.2.0'
12
+ gem 'codeclimate-test-reporter', require: nil
13
+ end
data/Guardfile ADDED
@@ -0,0 +1,16 @@
1
+ #
2
+ # Subtitle It
3
+ #
4
+ ignore(/\/.#.+/)
5
+
6
+ # notification :off
7
+
8
+ guard :rubocop, all_on_start: false, keep_failed: false, notification: false, cli: ['--format', 'emacs'] do
9
+ watch(/^lib\/(.+)\.rb$/)
10
+ end
11
+
12
+ guard :rspec, cmd: 'bundle exec rspec', notification: true do
13
+ watch(/^spec\/.+_spec\.rb$/)
14
+ watch(/^lib\/(.+)\.rb$/) { |m| "spec/#{m[1]}_spec.rb" }
15
+ watch('spec/spec_helper.rb') { 'spec' }
16
+ end
File without changes
data/README.md CHANGED
@@ -5,51 +5,83 @@
5
5
  _(____/___(___(__(___/_(_ __/___(_ __/___(___ _ _/_ __(_ __
6
6
 
7
7
 
8
+ [![Gem Version](https://badge.fury.io/rb/subtitle_it.svg)](http://badge.fury.io/rb/subtitle_it)
9
+ [![Build Status](https://travis-ci.org/nofxx/subtitle_it.svg?branch=master)](https://travis-ci.org/nofxx/subtitle_it)
10
+ [![Dependency Status](https://gemnasium.com/nofxx/subtitle_it.svg)](https://gemnasium.com/nofxx/subtitle_it)
11
+
12
+
8
13
  Ruby tool to download, create, convert and fix subtitles.
9
14
 
10
15
 
11
- # FEATURES
16
+ ## Features
12
17
 
13
- * Automatic Download on the terminal
18
+ * **Automatic Download** on the terminal
14
19
  * To and from: SRT, SUB, XML(TT), YML, MPL2, RSB and ASS.
15
20
  * Fixes delays. (SrtResync)
16
21
  * Compatibility with "sube" (http://github.com/vic/sube)
22
+ * Detects and converts any encoding to `UTF-8`
17
23
 
18
24
 
19
- # SYNOPSIS
25
+ ## Synopsis
20
26
 
21
27
  Download subtitle:
22
28
 
23
- subtitle_it Cool-Video.avi
29
+ subtitle_it Cool-Video.avi
30
+
31
+ This will search all languages for the video.
32
+
33
+ ```
34
+ Found 88 results:
35
+
36
+ 1. Finnish | SRT | Movie / 2015 | 0.0 | FPS 23.976 | 1 CDs | 2015-05-18
37
+ 2. English | SRT | Movie / 2015 | 0.0 | FPS 23.976 | 1 CDs | 2015-05-18
38
+ 3. Romanian | SRT | Movie / 2015 | 0.0 | FPS 23.976 | 1 CDs | 2015-05-18
39
+ 4. Polish | SRT | Movie / 2015 | 0.0 | FPS 23.976 | 1 CDs | 2015-05-18
40
+ 5. Italian | SRT | Movie / 2015 | 0.0 | FPS 23.976 | 1 CDs | 2015-05-18
41
+ 6. Portugues | SRT | Movie / 2015 | 0.0 | FPS 23.976 | 1 CDs | 2015-05-18
42
+ 7. Bulgarian | SRT | Movie / 2015 | 0.0 | FPS 0.000 | 1 CDs | 2015-05-18
43
+ 8. Romanian | SRT | Movie / 2015 | 0.0 | FPS 25.000 | 1 CDs | 2015-05-18
44
+ 9. Japanese | SRT | Movie / 2015 | 0.0 | FPS 23.976 | 1 CDs | 2015-05-18
45
+
46
+ You can choose multiple ones separated with spaces: 1 3 5
47
+ Or a range separated with a hifen: 3-5
48
+ Choose (1..88): _
49
+ ```
24
50
 
25
- This will search all languages for the video. You can filter:
51
+ You can filter by language:
26
52
 
27
- subtitle_it -l Eng Cool-Video.avi
53
+ subtitle_it -l Eng Cool-Video.avi
28
54
 
29
55
  You can use -c option. It convert subtitles to given format:
30
56
 
31
- subtitle_it -l Eng -c srt Cool-Video.avi
57
+ subtitle_it -l Eng -c srt Cool-Video.avi
32
58
 
33
- ## Bash tool
59
+ ### Bash tool
34
60
 
35
61
  Convert a srt to sub:
36
- subtitle_it in.srt out.sub
37
- or
38
- subtitle_it -c sub in.srt
62
+
63
+ subtitle_it in.srt out.sub
64
+
65
+ or
66
+
67
+ subtitle_it -c sub in.srt
39
68
 
40
69
  Add a delay of 1 minute:
41
- subtitle_it -d 60 in.srt
70
+
71
+ subtitle_it -d 60 in.srt
42
72
 
43
73
  Create a template
44
- subtitle_it unexistent.file
74
+
75
+ subtitle_it unexistent.file
45
76
 
46
77
 
47
- # INSTALL
78
+ ## Install
48
79
 
49
- gem install subtitle_it
50
80
 
81
+ gem install subtitle_it
51
82
 
52
- ## THE "Ruby Subtitle" Format - RSB
83
+
84
+ ## The "Ruby Subtitle" Format - RSB
53
85
 
54
86
  It`s just a easy way, proof of concept to edit subtitles.
55
87
  Here is what it looks like:
@@ -67,14 +99,14 @@ Create a template to check it out.
67
99
  ## Automatic Download
68
100
 
69
101
  * OpenSubtitles.org - WORK SubtitleIt Agent
70
- * addic7ed.com - EVIL NOAPI
102
+ * addic7ed.com - `gem install addic7ed`
71
103
  * legendas.tv - EVIL NOAPI
72
104
 
73
105
 
74
106
  *NOAPI = Mechanize playground...
75
107
 
76
108
 
77
- ## DEV
109
+ ## Dev
78
110
 
79
111
  To run tests:
80
112
 
@@ -84,7 +116,11 @@ Documentation => doc
84
116
  Subtitle examples => spec/fixtures
85
117
 
86
118
 
87
- ## SUBTITLE EDITORS
119
+ ## Others
120
+
121
+ Series: https://github.com/michaelbaudino/addic7ed-ruby
122
+
123
+ ## Editors
88
124
 
89
125
  Try those nice editors too, if SubtitleIt does not fit your need:
90
126
 
@@ -105,29 +141,3 @@ Please visit:
105
141
 
106
142
  * http://github.com/nofxx/subtitle_it
107
143
  * Support http://www.podnapisi.net/
108
-
109
- ## LICENSE:
110
-
111
- (The MIT License)
112
-
113
- Copyright (c) 2008 Marcos Piccinini, Giovanni Rapagnani, Warlley Rezende
114
-
115
-
116
- Permission is hereby granted, free of charge, to any person obtaining
117
- a copy of this software and associated documentation files (the
118
- 'Software'), to deal in the Software without restriction, including
119
- without limitation the rights to use, copy, modify, merge, publish,
120
- distribute, sublicense, and/or sell copies of the Software, and to
121
- permit persons to whom the Software is furnished to do so, subject to
122
- the following conditions:
123
-
124
- The above copyright notice and this permission notice shall be
125
- included in all copies or substantial portions of the Software.
126
-
127
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
128
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
129
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
130
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
131
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
132
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
133
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/bin/subtitle_it CHANGED
@@ -29,7 +29,7 @@ BANNER
29
29
 
30
30
  opts.separator " Options are:"
31
31
 
32
- opts.on("-l", "--language [LANGUAGE]", String,
32
+ opts.on("-l", "--language=LANGUAGE", String,
33
33
  "Language to search subtitles for, try it empty to see the supported ones.") do |ol|
34
34
  if ol.nil?
35
35
  puts Subdown.subtitle_languages
@@ -44,6 +44,8 @@ BANNER
44
44
  opts.on("-d", "--delay=DELAY", Float,
45
45
  "Delay to add/remove") { |o| OPTIONS[:delay] = o }
46
46
 
47
+ opts.on("-1", "--first") { OPTIONS[:first] = true }
48
+
47
49
  opts.on("-f", "--force", "Force overwrite") { OPTIONS[:force] = true }
48
50
 
49
51
  opts.on("-h", "--help",
@@ -63,5 +65,5 @@ if ARGV.empty?
63
65
  puts parser
64
66
  exit
65
67
  else
66
- SubtitleIt::Bin.run! ARGV, OPTIONS[:lang], OPTIONS[:format], OPTIONS[:force], OPTIONS[:delay]
68
+ SubtitleIt::Bin.run! ARGV, OPTIONS[:lang], OPTIONS[:format], OPTIONS[:force], OPTIONS[:delay], OPTIONS[:first]
67
69
  end
@@ -13,7 +13,7 @@ module SubtitleIt
13
13
  end
14
14
 
15
15
  class Subdownloader
16
- def run!(movie, lang = nil, dst_format = nil)
16
+ def run!(movie, lang = nil, dst_format = nil, first = false)
17
17
  @movie = Movie.new(movie)
18
18
  @down = Subdown.new
19
19
  @down.log_in!
@@ -22,13 +22,17 @@ module SubtitleIt
22
22
  puts 'No results found.'
23
23
  return
24
24
  end
25
- puts 'You can choose multiple ones separated with spaces '\
26
- 'or a range separated with a hifen.'
27
- puts "Found #{res.size.to_s.yellow} result#{'s' if res.size > 1}:\n"
28
- res.each_with_index { |r, i| puts print_option(r.info, i) }
29
- STDOUT.print "Choose (1-#{res.size}): "
30
- choose = parse_input(STDIN.gets.chomp)
31
- choose = choose.map { |c| res[c.to_i - 1] }
25
+ unless first
26
+ puts "Found #{res.size.to_s.yellow} result#{'s' if res.size > 1}:\n"
27
+ res.each_with_index { |r, i| puts print_option(r.info, i) }
28
+ puts 'You can choose multiple ones separated with spaces: 1 3 5 '
29
+ puts 'Or a range separated with a hifen: 3-5'
30
+ STDOUT.print "Choose (1..#{res.size}): "
31
+ choose = parse_input(STDIN.gets.chomp)
32
+ choose = choose.map { |c| res[c.to_i - 1] }
33
+ else
34
+ choose = [res.first]
35
+ end
32
36
  puts "Downloading #{choose.size} subtitle#{'s' if choose.size > 1}..."
33
37
  choose.each do |sub|
34
38
  down_a_sub(sub, dst_format)
@@ -40,7 +44,7 @@ module SubtitleIt
40
44
  dst_format ||= sub.format
41
45
  dump = @down.download_subtitle(sub)
42
46
  if sub.format != dst_format
43
- subt = Subtitle.new(dump: dump, format: dst_format)
47
+ subt = Subtitle.new(dump: dump, format: sub.format)
44
48
  dump = subt.send :"to_#{dst_format}"
45
49
  end
46
50
  fname = @movie.filename[0..-4] + sub.info['SubLanguageID']
@@ -49,8 +53,9 @@ module SubtitleIt
49
53
 
50
54
  def print_option(r, index)
51
55
  date = Date.parse(r['SubAddDate'])
52
- " #{(index + 1).to_s.yellow}. #{r['LanguageName'][0,3].green}"\
53
- " | #{r['SubFormat'].upcase.blue} | #{r['MovieName'].cyan}"\
56
+ " #{(index + 1).to_s.rjust(2, ' ').yellow}."\
57
+ " #{r['LanguageName'][0, 9].rjust(10, ' ').green}"\
58
+ " | #{r['SubFormat'].upcase.blue} | #{r['MovieName'][0, 20].cyan}"\
54
59
  " / #{r['MovieYear'].cyan} | #{r['SubRating'].yellow}"\
55
60
  " | FPS #{r['MovieFPS']} | #{r['SubSumCD']} CDs | #{date}"
56
61
  end
@@ -69,13 +74,19 @@ module SubtitleIt
69
74
  end
70
75
 
71
76
  class Bin
72
- def self.run!(argv, lang = nil, format = nil, force = false, _delay = nil)
77
+ def self.run!(argv, lang = nil, format = nil, force = false, _delay = nil, first = false)
73
78
  fail unless argv
79
+
80
+ @lang = lang
74
81
  @force = force
75
82
  @format = format
83
+ @first = first
76
84
 
77
85
  # TODO: generate_rsb
78
- return unless File.exist?(argv[0])
86
+ unless File.exist?(argv[0])
87
+ puts "Can't find '#{argv.join}'".yellow
88
+ exit 1
89
+ end
79
90
 
80
91
  @file_in = argv[0]
81
92
  @file_in_ext = Bin.get_extension(@file_in)
@@ -86,7 +97,7 @@ module SubtitleIt
86
97
  end
87
98
 
88
99
  if MOVIE_EXTS.include? @file_in_ext
89
- Subdownloader.new.run!(@file_in, lang, @format)
100
+ Subdownloader.new.run!(@file_in, @lang, @format, @first)
90
101
  elsif SUB_EXTS.include? @file_in_ext
91
102
  Subwork.new.run!(@file_in, @format)
92
103
  else
@@ -8,7 +8,7 @@
8
8
  module Formats
9
9
  include PlatformEndLine
10
10
  def parse_mpl
11
- @raw.to_a.inject([]) do |i, l|
11
+ @raw.lines.inject([]) do |i, l|
12
12
  line_data = l.scan(/^\[([0-9]{1,})\]\[([0-9]{1,})\](.+)$/)
13
13
  line_data = line_data.at 0
14
14
  time_on, time_off, text = line_data
@@ -11,7 +11,7 @@
11
11
  module Formats
12
12
  include PlatformEndLine
13
13
  def parse_rsb
14
- inn = @raw.to_a
14
+ inn = @raw.lines
15
15
  @title = inn.delete_at(0).split(':')[1]
16
16
  @authors = inn.delete_at(0).split(':')[1]
17
17
  @version = inn.delete_at(0).split(':')[1]
@@ -23,8 +23,7 @@ module Formats
23
23
  end
24
24
 
25
25
  def parse_sub
26
- # FIXME: 1.8 and 1.9 way of working
27
- @raw.send(@raw.respond_to?(:lines) ? :lines : :to_a).reduce([]) do |i, l|
26
+ @raw.lines.reduce([]) do |i, l|
28
27
  line_data = l.scan(/^\{([0-9]{1,})\}\{([0-9]{1,})\}(.+)$/)
29
28
  line_data = line_data.at 0
30
29
  time_on, time_off, text = line_data
@@ -13,9 +13,11 @@ module SubtitleIt
13
13
  SUB_EXTS = %w(srt sub smi txt ssa ass mpl xml yml rsb)
14
14
 
15
15
  class Subtitle
16
+ include Comparable
16
17
  include Formats
17
18
  attr_reader :id, :raw, :format, :lines, :style, :info, :filename, :rating, :language, :user, :release_name,
18
19
  :osdb_id, :download_count, :download_url, :original_filename
20
+ attr_writer :style, :lines, :fps
19
21
 
20
22
  def initialize(args = {})
21
23
  # Looks like opensubtitle is the only provider around..
@@ -34,13 +36,10 @@ module SubtitleIt
34
36
  @download_url = @info['SubDownloadLink'].to_s
35
37
  end
36
38
  @fps = args[:fps] || 23.976
37
- parse_dump(args[:dump], args[:format]) if args[:dump]
39
+ return unless dump = args[:dump]
40
+ parse_dump(args[:dump], args[:format])
38
41
  end
39
42
 
40
- attr_writer :style
41
-
42
- attr_writer :fps
43
-
44
43
  def data=(data)
45
44
  @raw = data
46
45
  end
@@ -48,13 +47,24 @@ module SubtitleIt
48
47
  def <=>(other)
49
48
  rating <=> other.rating
50
49
  end
51
- include Comparable
52
50
 
53
51
  private
54
52
 
53
+ # Force subtitles to be UTF-8
54
+ def encode_dump(dump)
55
+ dump = dump.read unless dump.kind_of?(String)
56
+
57
+ enc = CharlockHolmes::EncodingDetector.detect(dump)
58
+ if enc[:encoding] != 'UTF-8'
59
+ puts "Converting `#{enc[:encoding]}` to `UTF-8`".yellow
60
+ dump = CharlockHolmes::Converter.convert dump, enc[:encoding], 'UTF-8'
61
+ end
62
+ dump
63
+ end
64
+
55
65
  def parse_dump(dump, format)
56
66
  fail unless SUB_EXTS.include?(format)
57
- @raw = dump.is_a?(String) ? dump : dump.read
67
+ @raw = encode_dump(dump)
58
68
  @format = format
59
69
  parse_lines!
60
70
  end
@@ -62,7 +72,5 @@ module SubtitleIt
62
72
  def parse_lines!
63
73
  self.lines = send :"parse_#{@format}"
64
74
  end
65
-
66
- attr_writer :lines
67
75
  end
68
76
  end
@@ -1,3 +1,3 @@
1
1
  module SubtitleIt
2
- VERSION = '2.0.0'
2
+ VERSION = '2.0.1'
3
3
  end
data/lib/subtitle_it.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__)) unless
2
2
  $LOAD_PATH.include?(File.dirname(__FILE__)) || $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__)))
3
3
  require 'yaml'
4
+ require 'nokogiri'
5
+ require 'charlock_holmes'
4
6
 
5
7
  require 'subtitle_it/version'
6
8
  require 'subtitle_it/languages'
@@ -22,10 +24,10 @@ class Numeric
22
24
  end
23
25
  end
24
26
 
25
- if RUBY_PLATFORM >= '1.9'
27
+ if RUBY_PLATFORM <= '1.9'
26
28
  class String
27
- def to_a
28
- lines.to_a
29
+ def lines
30
+ to_a
29
31
  end
30
32
  end
31
33
  end
@@ -45,7 +45,7 @@ describe Bin do
45
45
  include BinspecHelper
46
46
 
47
47
  it 'should require ARGV' do
48
- expect { Bin.run!(nil) }.to raise_error
48
+ expect { Bin.run!(nil) }.to raise_error RuntimeError
49
49
  end
50
50
 
51
51
  # Having a hard time testing the command line tool...
@@ -104,7 +104,7 @@ describe Subdownloader do
104
104
 
105
105
  it 'should get extension files' do
106
106
  expect(Bin.get_extension('Lots.of.dots.happen')).to eql('happen')
107
- expect { Bin.get_extension('Nodotstoo') }.to raise_error
107
+ expect { Bin.get_extension('Nodotstoo') }.to raise_error RuntimeError
108
108
  end
109
109
 
110
110
  it 'should swap extensions' do
@@ -44,7 +44,7 @@ describe Subdown do
44
44
  'seconds' => 0.004,
45
45
  'token' => '')
46
46
  @down = Subdown.new
47
- expect { @down.log_in! }.to raise_error
47
+ expect { @down.log_in! }.to raise_error XMLRPC::FaultException
48
48
  expect(@down).not_to be_logged_in
49
49
  end
50
50
 
data/subtitle_it.gemspec CHANGED
@@ -12,9 +12,9 @@ Gem::Specification.new do |s|
12
12
  s.date = Time.now.strftime("%Y-%m-%d")
13
13
  s.default_executable = 'subtitle_it'
14
14
 
15
- s.homepage = 'http://github.com/nofxx/subtitle_it'
15
+ s.homepage = 'http://github.com/nofxx/subtitle_it'
16
16
  s.description = 'Download, edit and create subtitles. Supports various formats.'
17
- s.summary = 'Download, edit and create subtitles.'
17
+ s.summary = 'Download, edit and create subtitles.'
18
18
  s.license = 'MIT'
19
19
 
20
20
  s.files = `git ls-files`.split("\n")
@@ -26,7 +26,5 @@ Gem::Specification.new do |s|
26
26
 
27
27
  s.add_dependency 'colorize'
28
28
  s.add_dependency 'nokogiri'
29
- s.add_development_dependency 'rake', '~> 10.0'
30
- s.add_development_dependency 'rspec', '~> 3.0'
31
- s.add_development_dependency 'rspec-mocks', '~> 3.0'
29
+ s.add_dependency 'charlock_holmes'
32
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: subtitle_it
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcos Piccinini
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-12 00:00:00.000000000 Z
11
+ date: 2015-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -39,47 +39,19 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: charlock_holmes
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '10.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '10.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: '3.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '3.0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec-mocks
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
45
+ - - ">="
74
46
  - !ruby/object:Gem::Version
75
- version: '3.0'
76
- type: :development
47
+ version: '0'
48
+ type: :runtime
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
- - - "~>"
52
+ - - ">="
81
53
  - !ruby/object:Gem::Version
82
- version: '3.0'
54
+ version: '0'
83
55
  description: Download, edit and create subtitles. Supports various formats.
84
56
  email: x@nofxx.com
85
57
  executables:
@@ -88,9 +60,12 @@ extensions: []
88
60
  extra_rdoc_files: []
89
61
  files:
90
62
  - ".gitignore"
63
+ - ".rspec"
64
+ - ".travis.yml"
91
65
  - Gemfile
66
+ - Guardfile
92
67
  - History.txt
93
- - License.txt
68
+ - MIT-LICENSE
94
69
  - README.md
95
70
  - Rakefile
96
71
  - VERSION
@@ -162,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
137
  version: '0'
163
138
  requirements: []
164
139
  rubyforge_project:
165
- rubygems_version: 2.4.5
140
+ rubygems_version: 2.4.5.1
166
141
  signing_key:
167
142
  specification_version: 4
168
143
  summary: Download, edit and create subtitles.
@@ -193,4 +168,3 @@ test_files:
193
168
  - spec/subtitle_it/subtime_spec.rb
194
169
  - spec/subtitle_it/subtitle_spec.rb
195
170
  - spec/subtitle_it_spec.rb
196
- has_rdoc: