class Rubytus::API

Public Instance Methods

default_options() click to toggle source
# File lib/rubytus/api.rb, line 43
def default_options
  {
    :base_path => ENV[ENV_BASE_PATH] || DEFAULT_BASE_PATH,
    :max_size  => ENV[ENV_MAX_SIZE]  || DEFAULT_MAX_SIZE
  }
end
default_parser(opts, options) click to toggle source
# File lib/rubytus/api.rb, line 50
def default_parser(opts, options)
  opts.separator ""
  opts.separator "TUSD options:"

  args = [
    {
      :name  => :base_path,
      :short => '-b',
      :long  => '--base-path BASE_PATH',
      :desc  => "Url path used for handling uploads (default: #{options[:base_path]})"
    },
    {
      :name  => :max_size,
      :short => '-m',
      :long  => '--max-size MAX_SIZE',
      :desc  => "Maximum bytes may be stored inside storage (default: #{options[:max_size]})"
    }
  ]

  args.each do |arg|
    opts.on(arg[:short], arg[:long], arg[:desc]) do |value|
      options[arg[:name]] = value
    end
  end

  # save into global options
  @options = options
end
default_setup() click to toggle source
# File lib/rubytus/api.rb, line 38
def default_setup
  @options[:max_size]  = validates_max_size(@options[:max_size])
  @options[:base_path] = validates_base_path(@options[:base_path])
end
on_body(env, data) click to toggle source
# File lib/rubytus/api.rb, line 21
def on_body(env, data)
  if env['api.action'] == :patch
    env['api.buffers'] << data
  else
    body = StringIO.new(data)
    env[RACK_INPUT] = body
  end
end
on_headers(env, headers) click to toggle source
# File lib/rubytus/api.rb, line 15
def on_headers(env, headers)
  env['api.options'] = @options
  env['api.headers'] = COMMON_HEADERS.merge({ 'Date' => Time.now.httpdate })
  prepare_headers(env, headers)
end
response(env) click to toggle source
# File lib/rubytus/api.rb, line 30
def response(env)
  status  = STATUS_OK
  headers = env['api.headers']
  body    = []

  [status, headers, body]
end