subtitle_it 2.0.0 → 2.0.1

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.
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: