Class: Fixnames::Option

Inherits:
Object
  • Object
show all
Defined in:
lib/fixnames/option.rb

Constant Summary

SETUP_FILTERS =

filters that MUST run early

[ :expunge ]
FLAG_FILTERS =

filters that only accept a simple boolean on/off

[ :hack_and, :checksums, :banners,
:brackets, :semicolon,
:camelcase, :lowercase,
:fix_dots, :fix_dashes ]
CHAR_FILTERS =

filters that accept character ranges

[ :junkwords, :charstrip, :whitespace]
DEFAULT_FILTER_ORDER =

standard order to apply the filters

[ SETUP_FILTERS,
  FLAG_FILTERS,
  CHAR_FILTERS
].flatten
DEFAULT_DIR_GLOB =
'*'
DEFAULT_MENDSTR =
''
DEFAULT_WHITESPACE =
" \t_"
DEFAULT_BRACKET_CHARACTERS_OPEN =
'[({<'
DEFAULT_BRACKET_CHARACTERS_CLOSE =
'])}>'
DEFAULT_CHARSTRIP =
"[]{}'\",()+!~@#/\\"
DEFAULT_JUNKWORDS =
[ 'x264', 'hdtv', '2hd', '720p', 'dvdrip']
DEFAULT_BANNER_TYPES =
[ 'xxx', 'dvdrip', 'dual_audio',
'xvid', 'h264', 'divx' ]

Class Method Summary (collapse)

Instance Method Summary (collapse)

Class Method Details

+ (Object) mkopt(name, types, default_val)

Creates an option

Parameters:

  • name (String)

    the name of the option to create

  • types (Array)

    a list of classes that are valid

  • default_val (Object)

    the value to set initially



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/fixnames/option.rb', line 36

def self.mkopt(name, types, default_val)
  types = [types] unless types.is_a?(Array)
  var = "@#{name}"

  define_method "valid_for_#{name}?" do |value|
    types.map do |type|
      value.is_a?(type)
    end.reduce(false) do |t,x|
      t || x
    end
  end

  define_method name do |*args|
    unless instance_variable_defined?(var)
      instance_variable_set(var, default_val)
    end
    if args.length == 1
      unless send("valid_for_#{name}?", args[0])
        raise "bad type for option"
      end
      instance_variable_set(var, args[0])
    end
    instance_variable_get(var)
  end

  define_method "#{name}=" do |value|
    unless send("valid_for_#{name}?", value)
      raise "bad type for option"
    end
    instance_variable_set(var, value)
  end
end

Instance Method Details

default: `DEFAULT_BANNER_TYPES`

The list of strings to find for removal in Filters#banners

Parameters:

  • new_value (Array)

Returns:

  • (Array)


139
# File 'lib/fixnames/option.rb', line 139

mkopt :banner_types, Array, DEFAULT_BANNER_TYPES

- ([TrueClass, FalseClass]) banners - ([TrueClass, FalseClass]) banners(new_value) - ([TrueClass, FalseClass]) banners=(new_value)

Note:

Enables Filters#banners

default: `false`

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


109
# File 'lib/fixnames/option.rb', line 109

mkopt :banners,   [TrueClass, FalseClass], false

- (String) bracket_characters_close - (String) bracket_characters_close(new_value) - (String) bracket_characters_close=(new_value)

default: `DEFAULT_BRACKET_CHARACTERS_CLOSE`

What is considered a close bracket in things like #checksums or #brackets

Parameters:

  • new_value (String)

Returns:

  • (String)


152
# File 'lib/fixnames/option.rb', line 152

mkopt :bracket_characters_close, String, DEFAULT_BRACKET_CHARACTERS_CLOSE

- (String) bracket_characters_open - (String) bracket_characters_open(new_value) - (String) bracket_characters_open=(new_value)

default: `DEFAULT_BRACKET_CHARACTERS_OPEN`

What is considered an open bracket in things like #checksums or #brackets

Parameters:

  • new_value (String)

Returns:

  • (String)


148
# File 'lib/fixnames/option.rb', line 148

mkopt :bracket_characters_open,  String, DEFAULT_BRACKET_CHARACTERS_OPEN

- ([TrueClass, FalseClass]) brackets - ([TrueClass, FalseClass]) brackets(new_value) - ([TrueClass, FalseClass]) brackets=(new_value)

Note:

default: `false`

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


112
# File 'lib/fixnames/option.rb', line 112

mkopt :brackets, [TrueClass, FalseClass], false

- ([TrueClass, FalseClass]) camelcase - ([TrueClass, FalseClass]) camelcase(new_value) - ([TrueClass, FalseClass]) camelcase=(new_value)

Note:

default: `false`

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


124
# File 'lib/fixnames/option.rb', line 124

mkopt :camelcase, [TrueClass, FalseClass], false

- (String) charstrip - (String) charstrip(new_value) - (String) charstrip=(new_value)

Note:

Enables Filters#charstrip if non-nil

default: `DEFAULT_CHARSTRIP`

Parameters:

  • new_value (String)

Returns:

  • (String)


133
# File 'lib/fixnames/option.rb', line 133

mkopt :charstrip, String, DEFAULT_CHARSTRIP

- ([TrueClass, FalseClass]) charstrip_allow_brackets - ([TrueClass, FalseClass]) charstrip_allow_brackets(new_value) - ([TrueClass, FalseClass]) charstrip_allow_brackets=(new_value)

default: `false`

Set to true to have Filters#charstrip ignore its default behavior and allow the brackets through. This is potentially ignored if you change #charstrip.

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


144
# File 'lib/fixnames/option.rb', line 144

mkopt :charstrip_allow_brackets, [TrueClass, FalseClass], false

- ([TrueClass, FalseClass]) checksums - ([TrueClass, FalseClass]) checksums(new_value) - ([TrueClass, FalseClass]) checksums=(new_value)

Note:

default: `false`

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


106
# File 'lib/fixnames/option.rb', line 106

mkopt :checksums, [TrueClass, FalseClass], false

- (String) dir_glob - (String) dir_glob(new_value) - (String) dir_glob=(new_value)

default: `DEFAULT_DIR_GLOB`

When #recursive is set, use this pattern to glob each directory for files.

Parameters:

  • new_value (String)

Returns:

  • (String)


90
# File 'lib/fixnames/option.rb', line 90

mkopt :dir_glob, String, DEFAULT_DIR_GLOB

- (String) expunge - (String) expunge(new_value) - (String) expunge=(new_value)

Note:

Enables Filters#expunge

default: `nil`

A generic pattern to remove from all filenames.

Parameters:

  • new_value (String)

Returns:

  • (String)


97
# File 'lib/fixnames/option.rb', line 97

mkopt :expunge, String, nil

- (Array) filter_order - (Array) filter_order(new_value) - (Array) filter_order=(new_value)

default: `DEFAULT_FILTER_ORDER`

The order we should apply the filter to the filename. This order is significant, and can dramatically affect the output.

Parameters:

  • new_value (Array)

Returns:

  • (Array)


157
# File 'lib/fixnames/option.rb', line 157

mkopt :filter_order, Array, DEFAULT_FILTER_ORDER

- ([TrueClass, FalseClass]) fix_dashes - ([TrueClass, FalseClass]) fix_dashes(new_value) - ([TrueClass, FalseClass]) fix_dashes=(new_value)

Note:

default: `false`

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


121
# File 'lib/fixnames/option.rb', line 121

mkopt :fix_dashes, [TrueClass, FalseClass], false

- ([TrueClass, FalseClass]) fix_dots - ([TrueClass, FalseClass]) fix_dots(new_value) - ([TrueClass, FalseClass]) fix_dots=(new_value)

Note:

default: `false`

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


118
# File 'lib/fixnames/option.rb', line 118

mkopt :fix_dots, [TrueClass, FalseClass], false

- ([TrueClass, FalseClass]) hack_and - ([TrueClass, FalseClass]) hack_and(new_value) - ([TrueClass, FalseClass]) hack_and=(new_value)

Note:

default: `false`

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


103
# File 'lib/fixnames/option.rb', line 103

mkopt :hack_and,  [TrueClass, FalseClass], false

- (Array) junkwords - (Array) junkwords(new_value) - (Array) junkwords=(new_value)

Note:

Enables Filters#junkwords if non-nil

default: `DEFAULT_JUNKWORDS`

Parameters:

  • new_value (Array)

Returns:

  • (Array)


130
# File 'lib/fixnames/option.rb', line 130

mkopt :junkwords, Array, DEFAULT_JUNKWORDS

- ([TrueClass, FalseClass]) lowercase - ([TrueClass, FalseClass]) lowercase(new_value) - ([TrueClass, FalseClass]) lowercase=(new_value)

Note:

default: `false`

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


127
# File 'lib/fixnames/option.rb', line 127

mkopt :lowercase, [TrueClass, FalseClass], false

- (String) mendstr - (String) mendstr(new_value) - (String) mendstr=(new_value)

default: `DEFAULT_MENDSTR`

After we #expunge a pattern, it is replaced with this string.

Parameters:

  • new_value (String)

Returns:

  • (String)


100
# File 'lib/fixnames/option.rb', line 100

mkopt :mendstr, String, DEFAULT_MENDSTR

- ([TrueClass, FalseClass]) nocolor - ([TrueClass, FalseClass]) nocolor(new_value) - ([TrueClass, FalseClass]) nocolor=(new_value)

default: `false`

set to turn of the ANSI-color output

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


78
# File 'lib/fixnames/option.rb', line 78

mkopt :nocolor, [TrueClass, FalseClass], false

- ([TrueClass, FalseClass]) pretend - ([TrueClass, FalseClass]) pretend(new_value) - ([TrueClass, FalseClass]) pretend=(new_value)

default: `false`

if set, we just pretend to work, and skip the final move command, so the filesystem is never altered

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


161
# File 'lib/fixnames/option.rb', line 161

mkopt :pretend, [TrueClass, FalseClass], false

- ([TrueClass, FalseClass]) recursive - ([TrueClass, FalseClass]) recursive(new_value) - ([TrueClass, FalseClass]) recursive=(new_value)

default: `false`

Recursively descend into directories if true.

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


93
# File 'lib/fixnames/option.rb', line 93

mkopt :recursive, [TrueClass, FalseClass], false

- ([TrueClass, FalseClass]) semicolon - ([TrueClass, FalseClass]) semicolon(new_value) - ([TrueClass, FalseClass]) semicolon=(new_value)

Note:

default: `false`

Parameters:

  • new_value ([TrueClass, FalseClass])

Returns:

  • ([TrueClass, FalseClass])


115
# File 'lib/fixnames/option.rb', line 115

mkopt :semicolon, [TrueClass, FalseClass], false

- (Integer) verbose - (Integer) verbose(new_value) - (Integer) verbose=(new_value)

default: `0`

Verbosity levels

  • `verbose=0` ; no output

  • `verbose=1` ; only names that change are output

  • `verbose=2` ; all names are output with their change-status

  • `verbose=3` ; all filters are output as they run for debugging. Very noisy.

Parameters:

  • new_value (Integer)

Returns:

  • (Integer)


86
# File 'lib/fixnames/option.rb', line 86

mkopt :verbose, Integer, 0

- (String) whitespace - (String) whitespace(new_value) - (String) whitespace=(new_value)

Note:

Enables Filters#whitespace if non-nil

default: `DEFAULT_WHITESPACE`

Parameters:

  • new_value (String)

Returns:

  • (String)


136
# File 'lib/fixnames/option.rb', line 136

mkopt :whitespace, String, DEFAULT_WHITESPACE