Sha256: f0edf1b0d5260086d1f3998114400ad83ace19f898f13e26cd46b8cefe32748d
Contents?: true
Size: 1.67 KB
Versions: 4
Compression:
Stored size: 1.67 KB
Contents
require 'sanford-protocol' require 'sanford/runner' module Sanford module ServiceHandler def self.constantize(class_name) names = class_name.to_s.split('::').reject{|name| name.empty? } klass = names.inject(Object) do |constant, name| constant.const_get(name) end klass == Object ? false : klass rescue NameError false end def self.included(klass) klass.class_eval do extend ClassMethods end end def initialize(runner) @sanford_runner = runner end def init self.run_callback 'before_init' self.init! self.run_callback 'after_init' end def init! end def run self.run_callback 'before_run' data = self.run! self.run_callback 'after_run' [ 200, data ] end def run! raise NotImplementedError end def inspect reference = '0x0%x' % (self.object_id << 1) "#<#{self.class}:#{reference} @request=#{self.request.inspect}>" end protected def before_init; end def after_init; end def before_run; end def after_run; end # Helpers def run_handler(handler_class, params = nil) handler_class.run(params || {}, self.logger) end def halt(*args); @sanford_runner.halt(*args); end def request; @sanford_runner.request; end def params; self.request.params; end def logger; @sanford_runner.logger; end def run_callback(callback) self.send(callback.to_s) end module ClassMethods def run(params = nil, logger = nil) Sanford.config.runner.run(self, params || {}, logger) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
sanford-0.8.0 | lib/sanford/service_handler.rb |
sanford-0.7.0 | lib/sanford/service_handler.rb |
sanford-0.6.5 | lib/sanford/service_handler.rb |
sanford-0.6.4 | lib/sanford/service_handler.rb |