def generate_snake_method_body(api, options, &def_block)
      if def_block
        if options[:fails]
          ->(*args, &block){ (res = def_block.(api, *args, &block)) == options[:fails] ? nil: res }
        elsif options[:boolean]
          ->(*args, &block){ def_block.(api, *args, &block) != 0 }
        else
          ->(*args, &block){ def_block.(api, *args, &block) }
        end
      else
        if options[:fails]
          ->(*args, &block){ (res = block ? block[api.call(*args)] : api.call(*args)) == options[:fails] ? nil : res }
        elsif options[:boolean]
          ->(*args, &block){ block ? block[api.call(*args)] : api.call(*args) != 0 }
        else
          ->(*args, &block){ block ? block[api.call(*args)] : api.call(*args) }
        end
      end
    end
def generate_snake_method_body(api, options, &def_block)
      if def_block
        if options[:fails]
          ->(*args, &block){ (res = def_block.(api, *args, &block)) == options[:fails] ? nil: res }
        elsif options[:boolean]
          ->(*args, &block){ def_block.(api, *args, &block) != 0 }
        else
          ->(*args, &block){ def_block.(api, *args, &block) }
        end
      else
        if options[:fails]
          ->(*args, &block){ (res = block ? block[api.call(*args)] : api.call(*args)) == options[:fails] ? nil : res }
        elsif options[:boolean]
          ->(*args, &block){ block ? block[api.call(*args)] : api.call(*args) != 0 }
        else
          ->(*args, &block){ block ? block[api.call(*args)] : api.call(*args) }
        end
      end
    end
Generates body for snake_case method according to directives contained in options
 options (:boolean, :fails) currently supported