Sha256: cd6c1ee228f8e63f78fe2b40f937df910b5a56d13755ac94df89b0d3be9512d8
Contents?: true
Size: 1.84 KB
Versions: 4
Compression:
Stored size: 1.84 KB
Contents
# # Copyright (C) 2012 Christian Meier # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in # the Software without restriction, including without limitation the rights to # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of # the Software, and to permit persons to whom the Software is furnished to do so, # subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # -*- Coding: utf-8 -*- module CubaApi module WriteAspect module ClassMethods def append_aspect( arg ) aspects << arg warn "[CubaAPI] Appended aspect #{arg}" end def prepend_aspect( arg ) aspects.insert( 0, arg ) warn "[CubaAPI] Prepended aspect #{arg}" end def aspects self[ :aspects ] ||= [] end end def write( obj, options = {} ) self.res.status = options[:status] || 200 # make sure we inherit aspects and repsect the order aspects = self.class[ :aspects ] # == CubaAPI ? [] : self.class.superclass[ :aspects ] (aspects + self.class[ :aspects ]).uniq.each do |w| obj = send( w, obj, options ) if obj end res.write obj.to_s end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
cuba-api-0.6.3 | lib/cuba_api/aspects.rb~ |
cuba-api-0.6.2 | lib/cuba_api/aspects.rb~ |
cuba-api-0.6.1 | lib/cuba_api/write_aspect.rb |
cuba-api-0.6.0 | lib/cuba_api/write_aspect.rb |