lib/deas-json/view_handler.rb in deas-json-0.1.0 vs lib/deas-json/view_handler.rb in deas-json-0.2.0

- old
+ new

@@ -2,10 +2,14 @@ module Deas::Json module ViewHandler + DEF_STATUS = nil + DEF_HEADERS = {}.freeze + DEF_BODY = '{}'.freeze + def self.included(klass) klass.class_eval do include Deas::ViewHandler include InstanceMethods end @@ -21,10 +25,16 @@ private # Some http clients will error when trying to parse an empty body when the # content type is 'json'. This will default the body to a string that # can be parsed to an empty json object - def halt(status, headers = {}, body = '{}') + def halt(*args) + super(DEF_STATUS, DEF_HEADERS, DEF_BODY) if args.empty? + body, headers, status = [ + !args.last.kind_of?(::Hash) && !args.last.kind_of?(::Integer) ? args.pop : DEF_BODY, + args.last.kind_of?(::Hash) ? args.pop : DEF_HEADERS, + args.first.kind_of?(::Integer) ? args.first : DEF_STATUS + ] super(status, headers, body) end end