Class: AcceptableApi::Mapper

Inherits:
Object
  • Object
show all
Defined in:
lib/acceptable_api.rb

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass, mime_type, &map_block) ⇒ Mapper

Returns a new instance of Mapper.



61
62
63
64
65
# File 'lib/acceptable_api.rb', line 61

def initialize klass, mime_type, &map_block
  self.klass = klass
  self.mime_type = mime_type
  self.map_block = map_block
end

Class Attribute Details

.mappersObject

Returns the value of attribute mappers.



86
87
88
# File 'lib/acceptable_api.rb', line 86

def mappers
  @mappers
end

Class Method Details

.for(klass) ⇒ Object



80
81
82
83
# File 'lib/acceptable_api.rb', line 80

def self.for klass
  klass_mappers = mappers.select { |m| m.klass == klass }
  Mappers.new klass_mappers
end

.register(klass, mime_type, &map_block) ⇒ Object



91
92
93
94
# File 'lib/acceptable_api.rb', line 91

def self.register klass, mime_type, &map_block
  mapper = Mapper.new klass, mime_type, &map_block
  self.mappers << mapper
end

Instance Method Details

#execute(resource, request) ⇒ Object



67
68
69
70
# File 'lib/acceptable_api.rb', line 67

def execute resource, request
  body = map_block.call resource, request
  [ status, headers, body ]
end

#headersObject



76
77
78
# File 'lib/acceptable_api.rb', line 76

def headers
  { 'Content-Type' => mime_type }
end

#statusObject



72
73
74
# File 'lib/acceptable_api.rb', line 72

def status
  200
end