require "peto/mixin/peto_errorable" module Peto class Foo extend PetoErrorable def self.set_user(user) invalid_type("user", User, user) unless user.class == User raise_errors unless errors.empty? return { :procedure => "set_user", :args => { :user => hashize(user), } } end def self.set_user_error_invalid_user(message) invalid_type("message", String, message) unless message.class == String raise_errors unless errors.empty? return { :procedure => "set_user_error_invalid_user", :args => { :message => hashize(message), } } end def self.hashize(var) return var if [Fixnum, String].include?(var.class) var.to_hash end end end