module KojacUtils

Public Instance Methods

model_class_for_key(aKey) click to toggle source
# File lib/kojac/kojac_rails.rb, line 45
def model_class_for_key(aKey)
        resource = aKey.split_kojac_key[0]
        resource.singularize.camelize.constantize rescue nil
end
model_for_key(aKey) click to toggle source
# File lib/kojac/kojac_rails.rb, line 50
def model_for_key(aKey)
        klass = KojacUtils.model_class_for_key(aKey)
        resource,id,assoc = aKey.split_kojac_key
        klass.find(id) rescue nil
end
serializer_for(aObject) click to toggle source
# File lib/kojac/kojac_rails.rb, line 69
def serializer_for(aObject)
        return ::KojacBaseSerializer if aObject.is_a?(Hash)
        return ::ActiveModel::ArraySerializer if aObject.respond_to?(:to_ary)
        return ActiveModel::DefaultSerializer if KojacBaseSerializer::SERIALIZABLE_TYPES.include?(aObject.class)
        return aObject.send(:active_model_serializer) if aObject.respond_to?(:active_model_serializer)
        return aObject.class.send(:active_model_serializer) if aObject.class.respond_to?(:active_model_serializer)
        if sz_class = ActiveModel::Serializer.serializer_for(aObject)
                sz_class
        else
                aObject.respond_to?(:attributes) ? ::KojacBaseSerializer : ActiveModel::DefaultSerializer
        end
end
timestamp() click to toggle source
# File lib/kojac/kojac_rails.rb, line 65
def timestamp
        Time.now.to_ms
end
to_json(aObject,aOptions) click to toggle source
# File lib/kojac/kojac_rails.rb, line 94
def to_json(aObject,aOptions)
        jsono = to_jsono(aObject,aOptions)
        result = jsono.to_json
        result
end
to_jsono(aObject,aOptions=nil) click to toggle source
# File lib/kojac/kojac_rails.rb, line 82
def to_jsono(aObject,aOptions=nil)
        aOptions ||= {}
        if aObject.is_a?(Hash) or aObject.respond_to? :attributes
                serializer_for(aObject).new(aObject,aOptions).serializable_hash
        elsif aObject.respond_to?(:to_ary) && aObject.first  # Array
                item_sz = serializer_for(aObject.first)
          ActiveModel::ArraySerializer.new(aObject,aOptions.merge(each_serializer: item_sz)).as_json(aOptions)
        else
                aObject.as_json(aOptions)
        end
end
upgrade_hashes_to_params(aValue) click to toggle source
# File lib/kojac/kojac_rails.rb, line 56
def upgrade_hashes_to_params(aValue)
        if aValue.is_a? Hash
                aValue = ActionController::Parameters.new(aValue) unless aValue.is_a?(ActionController::Parameters)
        elsif aValue.is_a? Array
                aValue = aValue.map {|v| upgrade_hashes_to_params(v)}
        end
        aValue
end