Method: Win::Library#generate_snake_method_body

Defined in:
lib/win/library.rb

#generate_snake_method_body(api, options, &def_block) ⇒ Object

Generates body for snake_case method according to directives contained in options options (:boolean, :fails) currently supported



404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
# File 'lib/win/library.rb', line 404

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