module JsonApiResource::Conversions

Public Instance Methods

ApiErrors(*args) click to toggle source
# File lib/json_api_resource/conversions.rb, line 3
def ApiErrors(*args)
  case args.first
    when ActiveModel::Errors then args.first
    when Hash then args.first
    when Array then { base: args }
    when String then { base: [args] }
    when NilClass then { base: [[]]}
    else raise TypeError, "Cannot convert #{ args.inspect} to Error"
  end
end
ApiResource(klass, *args) click to toggle source
# File lib/json_api_resource/conversions.rb, line 47
def ApiResource(klass, *args)
  case args.first
    when klass then args.first
    when Hash then klass.new(args.first)
    when klass.client_class then klass.new(args.first.attributes)
    when Array then args.first.map { |attr| ApiResource(klass, attr) }
    else raise TypeError, "Cannot convert #{ args.inspect} to #{klass}"
  end
end
Boolean(*args) click to toggle source
# File lib/json_api_resource/conversions.rb, line 30
def Boolean(*args)
  case args.first
    when FalseClass then args.first
    when TrueClass then args.first
    when String
      if %w(true 1).include?(args.first.downcase)
        true
      elsif %w(false 0).include?(args.first.downcase)
        false
      else
        raise TypeError, "Cannot convert #{ args.inspect} to Boolean"
      end
    when Integer then args.first != 0
    else raise TypeError, "Cannot convert #{ args.inspect} to Boolean"
  end
end
Date(*args) click to toggle source
# File lib/json_api_resource/conversions.rb, line 14
def Date(*args)
  case args.first
    when String then Date.parse(args.first)
    when Date then args.first
    else raise TypeError, "Cannot convert #{ args.inspect} to Date"
  end
end
DateTime(*args) click to toggle source
# File lib/json_api_resource/conversions.rb, line 22
def DateTime(*args)
  case args.first
    when String then DateTime.parse(args.first)
    when DateTime then args.first
    else raise TypeError, "Cannot convert #{ args.inspect} to DateTime"
  end
end