Class: Phoneburner::Response

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/phoneburner/response.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request, &block) ⇒ Response

Returns a new instance of Response.



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/phoneburner/response.rb', line 5

def initialize(request, &block) 
  @request = request
  @block = block
  @parsed = false
  @http_status = nil
  @status = nil
  @page_size = 0
  @page = 0
  @total_pages = 0
  @total_results = 0
  @inner_results=nil
  @raw = false
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(symbol, *args) ⇒ Object



107
108
109
110
111
112
113
114
# File 'lib/phoneburner/response.rb', line 107

def method_missing(symbol,*args)
  parse()
  if !!@_results.is_a?(Hash) && @_results.has_key?(symbol.to_s)
    @_results[symbol.to_s]
  else
    super
  end
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



19
20
21
# File 'lib/phoneburner/response.rb', line 19

def request
  @request
end

Instance Method Details

#each(&iblock) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/phoneburner/response.rb', line 65

def each(&iblock) 
  parse()
  return nil if @inner_results.nil?
  if @inner_results.is_a?(Array)
    puts "Array"
    e = Enumerator.new do |y|          
      @inner_results.each do |ir|
        obj = is_raw? ? ir : request.build(ir)
        y.yield(obj)
      end
    end        
  else    
    e = Enumerator.new do |y|
      y.yield(result(&iblock))
    end
  end
  block_given? ? e.each(&iblock) : e
end

#has_next_page?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/phoneburner/response.rb', line 51

def has_next_page?
  page < total_pages
end

#http_statusObject



21
22
23
24
# File 'lib/phoneburner/response.rb', line 21

def http_status 
  parse()
  @http_status
end

#is_raw?Boolean

Returns:

  • (Boolean)


94
95
96
# File 'lib/phoneburner/response.rb', line 94

def is_raw?
  !!@raw
end

#next_pageObject



55
56
57
58
59
60
61
62
63
# File 'lib/phoneburner/response.rb', line 55

def next_page
  if has_next_page?
    request = @request.dup
    request.page(self.page.to_i + 1)
    request.all
  else
    nil
  end
end

#pageObject



36
37
38
39
# File 'lib/phoneburner/response.rb', line 36

def page
  parse()
  @page 
end

#page_sizeObject



31
32
33
34
# File 'lib/phoneburner/response.rb', line 31

def page_size
  parse()
  @page_size
end

#parsedObject



89
90
91
92
# File 'lib/phoneburner/response.rb', line 89

def parsed()
  @raw = false
  self
end

#rawObject



84
85
86
87
# File 'lib/phoneburner/response.rb', line 84

def raw()
  @raw=true
  self
end

#result(&iblock) ⇒ Object



98
99
100
101
102
103
104
105
# File 'lib/phoneburner/response.rb', line 98

def result(&iblock)
  parse()
  return nil if @inner_results.nil?      
  if !@inner_results.is_a?(Array)
    e = is_raw? ? @inner_results : request.build(@inner_results)
    block_given? ? iblock.yield(e) : e
  end
end

#statusObject



26
27
28
29
# File 'lib/phoneburner/response.rb', line 26

def status
  parse()
  @status
end

#total_pagesObject



41
42
43
44
# File 'lib/phoneburner/response.rb', line 41

def total_pages
  parse()
  @total_pages
end

#total_resultsObject



46
47
48
49
# File 'lib/phoneburner/response.rb', line 46

def total_results
  parse()
  @total_results
end