class TwilioLookups::REST::NextGenListResource
Public Instance Methods
list(params={}, full_path=false)
click to toggle source
# File lib/twilio-lookups/rest/next_gen_list_resource.rb 4 def list(params={}, full_path=false) 5 raise "Can't get a resource list without a REST Client" unless @client 6 response = @client.get @path, params, full_path 7 list_key = response['meta']['key'] 8 raise "Couldn't find a list key in response meta" unless list_key 9 resources = response[list_key] 10 resource_list = resources.map do |resource| 11 @instance_class.new "#{@path}/#{resource[@instance_id_key]}", @client, 12 resource 13 end 14 client, list_class = @client, self.class 15 resource_list.instance_eval do 16 eigenclass = class << self; self; end 17 eigenclass.send :define_method, :next_page, &lambda { 18 if response['meta']['next_page_url'] 19 list_class.new(response['meta']['next_page_url'], client).list({}) 20 else 21 [] 22 end 23 } 24 eigenclass.send :define_method, :previous_page, &lambda { 25 if response['meta']['previous_page_url'] 26 list_class.new(response['meta']['previous_page_url'], client).list({}) 27 else 28 [] 29 end 30 } 31 end 32 resource_list 33 end