class Rubytus::Command

Public Instance Methods

init_options() click to toggle source
# File lib/rubytus/command.rb, line 50
def init_options
  options = default_options
  options[:data_dir] = ENV[ENV_DATA_DIR] || DEFAULT_DATA_DIR
  options
end
on_close(env) click to toggle source
# File lib/rubytus/command.rb, line 36
def on_close(env)
  if env['api.action'] == :patch
    storage.patch_file(env['api.uid'], env['api.buffers'], env['api.offset'])
  end
end
on_headers(env, headers) click to toggle source
Calls superclass method Rubytus::API#on_headers
# File lib/rubytus/command.rb, line 16
def on_headers(env, headers)
  super(env, headers)

  request = Request.new(env)

  begin

    if env['api.action'] == :patch
      uid  = env['api.uid']
      info = storage.read_info(uid)

      validates_offset(request.offset, info.offset)
      validates_length(request.content_length, info.remaining_length)
    end

  rescue PermissionError => e
    error!(STATUS_INTERNAL_ERROR, e.message)
  end
end
options_parser(opts, options) click to toggle source
# File lib/rubytus/command.rb, line 42
def options_parser(opts, options)
  options = init_options.merge(options)
  default_parser(opts, options)
  opts.on('-f', '--data-dir DATA_DIR', "Directory to store uploads, LOCAL storage only (default: #{options[:data_dir]})") do |value|
    options[:data_dir] = value
  end
end
setup() click to toggle source
# File lib/rubytus/command.rb, line 56
def setup
  begin
    default_setup
    @options[:data_dir] = validates_data_dir(@options[:data_dir])
    @options[:storage]  = Storage.new(@options)
  rescue PermissionError, ConfigurationError => e
    puts '[ERROR] ' + e.message
    exit(1)
  end
end

Private Instance Methods

storage() click to toggle source
# File lib/rubytus/command.rb, line 68
def storage
  @options[:storage]
end