module Mirador::Processing
Constants
- MAX_KEY_SIZE
Public Class Methods
included(base)
click to toggle source
# File lib/mirador/processing.rb, line 16 def self.included(base) base.extend(ClassMethods) Processing.class_variable_set(:@@max_key_size, MAX_KEY_SIZE) end
Protected Instance Methods
process_argument(arg, idx=0)
click to toggle source
given an argument, e.g., an item in a *args list, return the proper datatype-pair (to be put into a Hash)
# File lib/mirador/processing.rb, line 27 def process_argument arg, idx=0 if arg.is_a?(String) if arg.length < @@max_key_size [arg, arg] else [idx, arg] end elsif arg.respond_to?(:name) and arg.respond_to?(:read) [arg.name, arg] elsif arg.respond_to?(:id) and arg.respond_to?(:data) [arg.id, arg.data] elsif arg.is_a?(Hash) if arg.has_key? :id and arg.has_key? :data [arg[:id], arg[:data]] elsif arg.has_key? 'id' and arg.has_key? 'data' [arg['id'], arg['data']] end else raise ApiError, "Invalid argument: #{ arg }" end end
process_param(k, v)
click to toggle source
given a parameter passed in, assuming that its a id => data mapping, return the correct formatting/check for any fuck ups @arguments:
k - key v - value
@returns:
{ k => v } pair
# File lib/mirador/processing.rb, line 66 def process_param k, v if v.is_a?(File) [ k, v.read ] elsif k.respond_to?(:to_s) and v.is_a?(String) [ k.to_s, v ] else raise ApiError, "Invalid Argument: #{ k } => #{ v }" end end