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.



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

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.



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

def headers
  @headers
end

#paramsObject (readonly)

Returns the value of attribute params.



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

def params
  @params
end

#requestObject (readonly)

Returns the value of attribute request.



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

def request
  @request
end

Class Method Details

.call(env) ⇒ Object



27
28
29
30
31
32
# File 'lib/fasta/server/core/responder.rb', line 27

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

.validate_fields(*fields) ⇒ Object



23
24
25
# File 'lib/fasta/server/core/responder.rb', line 23

def validate_fields(*fields)
  @fields = fields
end

Instance Method Details

#bodyObject



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

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

#callObject



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

def call; end

#db_tableObject



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

def db_table
  DB[db_table_name]
end

#db_table_nameObject



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

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

#response_codeObject



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

def response_code
  @response_code || default_response_code
end

#to_rack_arrayObject



54
55
56
# File 'lib/fasta/server/core/responder.rb', line 54

def to_rack_array
  [http_response_code, http_response_headers, http_response_body]
end