module Idcf::JsonHyperSchema::Expands::LinkInfoBaseExtension
Link Info Base ext
Public Instance Methods
async?()
click to toggle source
is async
@return Boolean
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 9 def async? !!@data.data['$async'] end
make_params_for_cli(args)
click to toggle source
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 44 def make_params_for_cli(args) make_params(args[url_param_names.size]) end
make_uri_for_cli(args)
click to toggle source
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 37 def make_uri_for_cli(args) param_size = url_param_names.size url_params = args.slice(0, param_size) params = args[param_size] make_uri(url_params, params) end
parent_titles(schema = nil)
click to toggle source
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 48 def parent_titles(schema = nil) result = [] if schema.present? parent_schema = schema.parent if parent_schema.present? result << parent_schema.title if parent_schema.title.present? result.concat(parent_titles(parent_schema)) end else result << title result.concat(parent_titles(@data)) result.reverse! end result end
result_api_params(args, api_result, resource_id = nil)
click to toggle source
result api params
@params args [Array] @params api_result [Hash] @params resource_id [String] @return [Array]
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 27 def result_api_params(args, api_result, resource_id = nil) return [] if @data.data['$result'].nil? arg = Marshal.load(Marshal.dump(args)) target = @data.data['$result']['params'] target = target.nil? ? [] : target raise Idcf::Cli::Error::CliError, 'params is not Array' unless target.class == Array result = make_result_api_params(target, arg, api_result, resource_id) result end
result_api_title()
click to toggle source
result api link title
@return [String]
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 16 def result_api_title res = @data.data['$result'] res && res['title'] ? res['title'] : '' end
Protected Instance Methods
make_query_params(param)
click to toggle source
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 127 def make_query_params(param) result = {} return result unless param.class == Hash query_param_names.each do |k| result[k] = param[k] if param.key?(k) reg = Regexp.new("#{k}[\\.\\[].+") param.each_key do |pk| result[pk] = param[pk] if (reg =~ pk).present? end end result end
make_result_api_params(target, args, api_result, resource_id)
click to toggle source
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 66 def make_result_api_params(target, args, api_result, resource_id) case target when Hash result_api_hash(target, args, api_result, resource_id) when Array result_api_array(target, args, api_result, resource_id) when String result_api_str(target, args, api_result, resource_id) else target end end
result_api_array(target, args, api_result, resource_id)
click to toggle source
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 87 def result_api_array(target, args, api_result, resource_id) [].tap do |result| target.each do |v| result << make_result_api_params(v, args, api_result, resource_id) end end end
result_api_hash(target, args, api_result, resource_id)
click to toggle source
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 79 def result_api_hash(target, args, api_result, resource_id) {}.tap do |result| target.each do |k, v| result[k] = make_result_api_params(v, args, api_result, resource_id) end end end
result_api_str(target, args, api_result, resource_id)
click to toggle source
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 95 def result_api_str(target, args, api_result, resource_id) return resource_id if target == '#{resource_id}' result_api_str_regexp(target, args, api_result) rescue Standarderror => e raise Idcf::Cli::Error::CliError, e.message end
result_api_str_regexp(target, args, api_result)
click to toggle source
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 102 def result_api_str_regexp(target, args, api_result) result = target case target when Regexp.new('\A#\{(.+)\}\Z') result = args[url_param_names.index(Regexp.last_match(1))] when Regexp.new('\Aresult\[(.*)\]\Z') result = result_api_str_result(api_result, Regexp.last_match(1)) end result end
result_api_str_result(data, path)
click to toggle source
# File lib/idcf/cli/gem_ext/idcf/json_hyper_schema/expands/link_info_base_extension.rb, line 113 def result_api_str_result(data, path) result = data.deep_dup path.split('.').each do |k| case result when Array result = result[k.to_i] when Hash raise Idcf::Cli::Error::CliError, 'not found result key' unless result.key?(k) result = result[k] end end result end