class Praxis::ResponseTemplate

Attributes

block[R]
name[R]

Public Class Methods

new(response_name, &block) click to toggle source
# File lib/praxis/response_template.rb, line 6
def initialize(response_name, &block)
  @name = response_name
  @block = block
end

Public Instance Methods

compile(action=nil, **args) click to toggle source
# File lib/praxis/response_template.rb, line 11
def compile(action=nil, **args)
  # Default media_type to the resource_definition one, if the block has it in
  # its required args but no value is passed (funky, but can help in the common case)
  if block.parameters.any? { |(type, name)| name == :media_type && type == :keyreq } && action
    unless args.has_key? :media_type
      media_type = action.resource_definition.media_type
      unless media_type
        raise Exceptions::InvalidConfiguration.new(
          "Could not default :media_type argument for response template #{@name}." +
           " Resource #{action.resource_definition} does not have an associated mediatype and none was passed"
        )
      end
      args[:media_type] = media_type
    end
  end
  Praxis::ResponseDefinition.new(name, **args, &block)   
end
describe() click to toggle source
# File lib/praxis/response_template.rb, line 29
def describe
  puts "TODO!!!!!!"
end