class Showfix::Cleaner

Constants

AUDIO_FLAGS

en.wikipedia.org/wiki/Pirated_movie_release_types

AUTHOR_FLAGS
FLAGS
SOURCE_FLAGS
VIDEO_FLAGS

Public Class Methods

new(options={}) click to toggle source
# File lib/showfix/cleaner.rb, line 25
def initialize(options={})
  @options = {
    flags: true,
    year: true
    }.merge(options)
end

Public Instance Methods

clean(string) click to toggle source

Perform some cleanup on the filename

# File lib/showfix/cleaner.rb, line 33
def clean(string)

  string = self.unix_friendly(string)

  # Clean trailing/leading periods
  string = self.trim(string)

  if @options[:flags]
    string = self.remove_flags(string)
  end

  if @options[:year]
    string = self.strip_year(string)
  end

  # Clean trailing/leading periods
  string = self.trim(string)

  string
end
remove_flags(string) click to toggle source
# File lib/showfix/cleaner.rb, line 68
def remove_flags(string)
  flags = FLAGS.join('|')
  
  string.gsub(/(\W(#{flags})){2,}/i, '')
    .gsub(/((#{flags})\W){2,}/i, '')
    .gsub(/^((#{flags})\W?){2,}$/i, '')
    .gsub(/\W(#{flags}){1,}$/i, '')
end
strip_year(string) click to toggle source
# File lib/showfix/cleaner.rb, line 77
def strip_year(string)
  string.gsub(/^(?:19|20)\d{2}\D/, '\1')
  string.gsub(/(?:19|20)\d{2}$/, '\1')
end
trim(string) click to toggle source
# File lib/showfix/cleaner.rb, line 54
def trim(string)
  string.strip.gsub(/\A\.+|\.+\Z/, '')
end
unix_friendly(string) click to toggle source

Make unix friendly

# File lib/showfix/cleaner.rb, line 59
def unix_friendly(string)
  string.gsub(/\s+-\s+/, '.')
    .gsub(/[- \(\)]+/, '.')
    .gsub(/'/,'')
    .gsub(/[\[\]]+/,'')
    .gsub(/&/,'.and.')
    .gsub(/\.{2,}/,'.')
end