Sha256: 21c4401494c3b8f122250a68eee0fc3599a36b3a75a28e80cbc8ef6cddb0988f
Contents?: true
Size: 1.22 KB
Versions: 15
Compression:
Stored size: 1.22 KB
Contents
require 'haveapi/go_client/utils' module HaveAPI::GoClient class Parameters::Association include Utils # @return [Parameter] attr_reader :parameter # @return [String] attr_reader :go_type # @return [String] attr_reader :go_value_id # @return [String] attr_reader :go_value_label # @return [Resource] attr_reader :resource def initialize(param, desc) @parameter = param @resource = find_resource(desc[:resource]) @go_type = resource.actions.detect { |a| a.name == 'show' }.output.go_type @go_value_id = camelize(desc[:value_id]) @go_value_label = camelize(desc[:value_label]) end protected def find_resource(path) root = parameter.io.action.resource.api_version path = path.clone loop do name = path.shift resource = root.resources.detect { |r| r.name == name } if resource.nil? raise "associated resource '#{name}' not found in " + (root.is_a?(ApiVersion) ? 'root' : root.resource_path.map(&:name).join('.')) elsif path.empty? return resource else root = resource end end raise 'programming error' end end end
Version data entries
15 entries across 15 versions & 1 rubygems