module RSpecApi::Resource::Accepts

Public Instance Methods

accepts(options = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 6
def accepts(options = {})
  add_request_for accepts_sort(options) if options.key? :sort
  add_request_for accepts_filter(options) if options.key? :filter
  add_request_for accepts_page(options) if options.key? :page
  add_request_for accepts_callback(options) if options.key? :callback
end

Private Instance Methods

accepts_callback(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 55
def accepts_callback(opts = {})
  # NOTE: This is the only accepts that affects *all* the requests,
  #       not just the ones that return a collection
  {params: callback_params(opts), expect: callback_expect(opts), all: true}
end
accepts_filter(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 31
def accepts_filter(opts = {})
  {params: filter_params(opts), expect: filter_expect(opts)}
end
accepts_page(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 43
def accepts_page(opts = {})
  {params: page_params(opts), expect: page_expect(opts)}
end
accepts_sort(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 19
def accepts_sort(opts = {})
  {params: sort_params(opts), expect: sort_expect(opts)}
end
add_request_for(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 15
def add_request_for(opts = {})
  (rspec_api_resource[:extra_requests] ||= []) << opts
end
callback_expect(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 65
def callback_expect(opts = {})
  {callback: 'anyCallback'}
end
callback_params(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 61
def callback_params(opts = {})
  {}.tap{|params| params[opts[:callback]] = 'anyCallback'}
end
filter_expect(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 39
def filter_expect(opts = {})
  {filter: opts.slice(:by, :compare_with, :value)}
end
filter_params(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 35
def filter_params(opts = {})
  {}.tap{|params| params[opts[:filter]] = opts[:value]}
end
page_expect(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 51
def page_expect(opts = {})
  {page_links: true}
end
page_params(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 47
def page_params(opts = {})
  {}.tap{|params| params[opts[:page]] = 2}
end
sort_expect(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 27
def sort_expect(opts = {})
  {sort: opts.slice(:by, :verse)}
end
sort_params(opts = {}) click to toggle source
# File lib/rspec-api/resource/accepts.rb, line 23
def sort_params(opts = {})
  {sort: opts[:sort]}.merge(opts.fetch :sort_if, {})
end