class Gyunyu::Command::Export::Option

Constants

FIELD_SEP

Attributes

custom_filter[R]
fields[R]
filter[R]
format[R]
lists[R]
show_filter_list[R]

Public Class Methods

new( argv = [] ) click to toggle source
# File lib/gyunyu/command/export/option.rb, line 12
def initialize( argv = [] )
  @lists         = []
  @filter        = nil
  @custom_filter = nil
  @fields        = []
  @format        = :csv
  @show_filter_list = false

  parser.parse( argv )
end

Public Instance Methods

parser() click to toggle source
# File lib/gyunyu/command/export/option.rb, line 32
def parser
  OptionParser.new do |opt|
    opt.on('-l', '--list LIST') { |list|
      if !@lists.include?( list )
        @lists << list
      end
    }
    opt.on('-f', '--filter FILTER') { |filter|
      @filter = filter if filter.size > 0
    }
    opt.on('-c', '--custom-filter FILTER') { |filter|
      mod = Module.nesting[1].const_get('CustomFilter')
      if mod.filter.has_key?( filter )
        @custom_filter = filter
      else
        raise CustomFilterNotFound
      end
    }
    opt.on('-s', '--custom-filter-list') { |c|
      @show_filter_list = true
    }
    opt.on('-d', '--field FIELD') { |field|
      if field.include?( FIELD_SEP )
        @fields = field.split( FIELD_SEP )
      elsif !@fields.include?( field )
        @fields << field
      end
    }
    opt.on('-o', '--format FORMAT') { |format|
      format.downcase!
      formats = Format.constants.map { |e|
        e.to_s.downcase
      }
      if formats.include?( format )
        @format = format
      else
        raise FormatNotFound
      end
    }
  end
end