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