module RedmineAPIHelper::DefineAPIHelpers
Public Instance Methods
define_api_helpers(object)
click to toggle source
defines global standard helpers for object
# File lib/redmine_api_helper/define_api_helpers.rb, line 26 def define_api_helpers(object) object = object.to_s.singularize.to_sym objects = object.to_s.pluralize.to_sym # objects_url ######################################################################## define_singleton_method("#{objects}_url".to_sym) do |**params| url_path(args.urls.Home, objects, params) end # project_objects_url ################################################################ define_singleton_method("project_#{objects}_url".to_sym) do |project_id, **params| url_path(project_url(project_id), objects, params) end # object_url ######################################################################### define_singleton_method("#{object}_url".to_sym) do |id, **params| url_path(send("#{objects}_url".to_sym), id, params) end # project_object_url ################################################################# define_singleton_method("project_#{object}_url".to_sym) do |project_id, id, **params| url_path(send("project_#{objects}_url".to_sym, project_id), id, params) end # list_objects ####################################################################### define_singleton_method("list_#{objects}".to_sym) do |**params| list_objects(objects, params) end # list_project_objects ############################################################### define_singleton_method("list_project_#{objects}".to_sym) do |project_id, **params| list_project_objects(project_id, objects, params) end # create_object ###################################################################### define_singleton_method("create_#{object}".to_sym) do |**params| create_object(object, params) end # read_object ######################################################################## # update_object ###################################################################### # destroy_object ##################################################################### %w(read update destroy).each do |action| define_singleton_method("#{action}_#{object}".to_sym) do |id, **params| send("#{action}_object".to_sym, object, id, params) end end end