Class: Rubytus::API
- Inherits:
-
Goliath::API
- Object
- Goliath::API
- Rubytus::API
show all
- Includes:
- Goliath::Constants, Constants, Helpers
- Defined in:
- lib/rubytus/api.rb
Constant Summary
Constants included
from Constants
Constants::BASE_PATH_REGEX, Constants::COMMON_HEADERS, Constants::DEFAULT_BASE_PATH, Constants::DEFAULT_DATA_DIR, Constants::DEFAULT_MAX_SIZE, Constants::DEFAULT_STORAGE, Constants::ENV_BASE_PATH, Constants::ENV_DATA_DIR, Constants::ENV_MAX_SIZE, Constants::ENV_STORAGE, Constants::RESOURCE_UID_REGEX, Constants::RESUMABLE_CONTENT_TYPE, Constants::STATUS_BAD_REQUEST, Constants::STATUS_CREATED, Constants::STATUS_FORBIDDEN, Constants::STATUS_INTERNAL_ERROR, Constants::STATUS_NOT_ALLOWED, Constants::STATUS_NOT_FOUND, Constants::STATUS_OK
Instance Method Summary
collapse
Methods included from Helpers
#prepare_headers, #validates_base_path, #validates_length, #validates_max_size, #validates_offset
Methods included from Common
#error!, #generate_uid
Instance Method Details
#default_options ⇒ Object
#default_parser(opts, options) ⇒ Object
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# 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
@options = options
end
|
#default_setup ⇒ Object
38
39
40
41
|
# 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) ⇒ Object
21
22
23
24
25
26
27
28
|
# 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
|
15
16
17
18
19
|
# File 'lib/rubytus/api.rb', line 15
def (env, )
env['api.options'] = @options
env['api.headers'] = COMMON_HEADERS.merge({ 'Date' => Time.now.httpdate })
(env, )
end
|
#response(env) ⇒ Object
30
31
32
33
34
35
36
|
# File 'lib/rubytus/api.rb', line 30
def response(env)
status = STATUS_OK
= env['api.headers']
body = []
[status, , body]
end
|