Module: ApiFrame::Utils

Defined in:
lib/api_frame/utils.rb

Class Method Summary collapse

Class Method Details

.call_proc_without_unknown_keywords(proc, *args, **kwargs, &block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/api_frame/utils.rb', line 11

def self.call_proc_without_unknown_keywords(proc, *args, **kwargs, &block)
	params = proc.parameters.group_by(&:first).transform_values! do |m|
		m.map do |s|
			s[1]
		end
	end
	
	proc_keys =
		if params.key?(:keyrest)
			kwargs
		else
			kwargs.slice(*params.values_at(:key, :keyreq).compact.flatten)
		end
	
	proc.call(*args, **proc_keys, &block)
end

.request_type_from_method_argument(method) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/api_frame/utils.rb', line 28

def self.request_type_from_method_argument(method)
	if method.instance_of?(Class) && method.ancestors.include?(Net::HTTPRequest)
		method
	else
		{
			get:     Net::HTTP::Get,
			post:    Net::HTTP::Post,
			put:     Net::HTTP::Put,
			patch:   Net::HTTP::Patch,
			delete:  Net::HTTP::Delete,
			head:    Net::HTTP::Head,
			options: Net::HTTP::Options,
		}.fetch(method)
	end
end

.url_escape(string) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/api_frame/utils.rb', line 3

def self.url_escape(string)
	if !string.nil?
		CGI.escape(string.to_s)
	else
		raise TypeError, 'cannot escape nil'
	end
end