class JsonApiClient::RequestParams
Attributes
fields[R]
includes[R]
klass[R]
Public Class Methods
new(klass, includes: [], fields: {})
click to toggle source
# File lib/json_api_client/request_params.rb, line 5 def initialize(klass, includes: [], fields: {}) @klass = klass @includes = includes @fields = fields end
Public Instance Methods
add_includes(includes)
click to toggle source
# File lib/json_api_client/request_params.rb, line 11 def add_includes(includes) Utils.parse_includes(klass, *includes).each do |name| name = name.to_sym self.includes.push(name) unless self.includes.include?(name) end end
clear()
click to toggle source
# File lib/json_api_client/request_params.rb, line 34 def clear reset_includes! @fields = {} end
field_types()
click to toggle source
# File lib/json_api_client/request_params.rb, line 30 def field_types self.fields.keys end
remove_fields(type)
click to toggle source
# File lib/json_api_client/request_params.rb, line 26 def remove_fields(type) self.fields.delete(type.to_sym) end
reset_includes!()
click to toggle source
# File lib/json_api_client/request_params.rb, line 18 def reset_includes! @includes = [] end
set_fields(type, field_names)
click to toggle source
# File lib/json_api_client/request_params.rb, line 22 def set_fields(type, field_names) self.fields[type.to_sym] = field_names.map(&:to_sym) end
to_params()
click to toggle source
# File lib/json_api_client/request_params.rb, line 39 def to_params return nil if field_types.empty? && includes.empty? parsed_fields.merge(parsed_includes) end
Private Instance Methods
parsed_fields()
click to toggle source
# File lib/json_api_client/request_params.rb, line 51 def parsed_fields return {} if field_types.empty? {fields: fields.map { |type, names| [type, names.join(",")] }.to_h} end
parsed_includes()
click to toggle source
# File lib/json_api_client/request_params.rb, line 46 def parsed_includes return {} if includes.empty? {include: includes.join(",")} end