class GitlabRuby::QueryChain
Attributes
urlstring[RW]
verb[RW]
Public Class Methods
generate_methods()
click to toggle source
# File lib/gitlab_ruby/query_chain.rb, line 17 def generate_methods CSV.foreach('lib/gitlab_ruby/routes_table_no_verb.csv') do |url_row| query_stacks = GitlabRuby::Helpers::QueryChain .to_query_stacks(url_row.first) query_stacks.each_with_index do |key| key = key.match(/{(.+)}/)[1] if key.match(/{.+}/) build_method(key) end end end
new(params = {})
click to toggle source
# File lib/gitlab_ruby/query_chain.rb, line 6 def initialize(params = {}) @verb = params[:verb] @client = params[:client] @urlstring = '' end
Private Class Methods
build_method(key)
click to toggle source
# File lib/gitlab_ruby/query_chain.rb, line 30 def build_method(key) define_method key do |*param| if param.size == 1 @urlstring = @urlstring + param[0].to_s + '/' elsif param.size.zero? @urlstring = @urlstring + key + '/' else raise GitlabRuby::QueryChainArgumentError end self end end
Public Instance Methods
execute(params = {})
click to toggle source
# File lib/gitlab_ruby/query_chain.rb, line 12 def execute(params = {}) @client.api_call(@urlstring, params, @verb) end