Class: Fasta::Server::Core::Responder

Inherits:
Object
  • Object
show all
Defined in:
lib/fasta/server/core/responder.rb

Direct Known Subclasses

Read, Write

Constant Summary collapse

DB =
$database

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ Responder

Returns a new instance of Responder.



45
46
47
48
49
50
# File 'lib/fasta/server/core/responder.rb', line 45

def initialize(request)
  $logger.info request
  @request = request
  @params = request.env['router.params']
  @headers = default_response_headers
end

Instance Attribute Details

#headersObject (readonly)

Returns the value of attribute headers.



43
44
45
# File 'lib/fasta/server/core/responder.rb', line 43

def headers
  @headers
end

#paramsObject (readonly)

Returns the value of attribute params.



43
44
45
# File 'lib/fasta/server/core/responder.rb', line 43

def params
  @params
end

#requestObject (readonly)

Returns the value of attribute request.



43
44
45
# File 'lib/fasta/server/core/responder.rb', line 43

def request
  @request
end

Class Method Details

.call(env) ⇒ Object



35
36
37
38
39
40
# File 'lib/fasta/server/core/responder.rb', line 35

def call(env)
  request = Rack::Request.new(env)
  instance = new(request)
  instance.call
  instance.to_rack_array
end

.validate_fields(*fields) ⇒ Object



31
32
33
# File 'lib/fasta/server/core/responder.rb', line 31

def validate_fields(*fields)
  @fields = fields
end

Instance Method Details

#bodyObject



70
71
72
73
74
75
76
# File 'lib/fasta/server/core/responder.rb', line 70

def body
  {
    code: http_response_code,
    result: @body,
    meta: meta
  }
end

#callObject



60
# File 'lib/fasta/server/core/responder.rb', line 60

def call; end

#db_tableObject



52
53
54
# File 'lib/fasta/server/core/responder.rb', line 52

def db_table
  DB[db_table_name]
end

#db_table_nameObject



56
57
58
# File 'lib/fasta/server/core/responder.rb', line 56

def db_table_name
  Object.const_get(self.class.to_s.rpartition('::').first).db_table_name
end

#response_codeObject



66
67
68
# File 'lib/fasta/server/core/responder.rb', line 66

def response_code
  @response_code || default_response_code
end

#to_rack_arrayObject



62
63
64
# File 'lib/fasta/server/core/responder.rb', line 62

def to_rack_array
  [http_response_code, http_response_headers, http_response_body]
end