@@ -13,7 +13,7 @@ class ResourceProxy
1313 include Ghee ::CUD
1414
1515 # Make connection and path_prefix readable
16- attr_reader :connection , :path_prefix , :params , :id
16+ attr_reader :connection , :path_prefix , :api_translator , : params, :id
1717
1818 # Expose pagination data
1919 attr_reader :current_page , :total , :pagination
@@ -30,15 +30,14 @@ def self.accept_header(header)
3030 # connection - Ghee::Connection object
3131 # path_prefix - String
3232 #
33- def initialize ( connection , path_prefix , params = { } , &block )
33+ def initialize ( connection , path_prefix , api_translator = nil , params = { } , &block )
3434 if !params . is_a? Hash
3535 @id = params
3636 params = { }
3737 end
3838
39- escape_path = params . fetch ( :escape_path , true )
40- @connection , @path_prefix , @params = connection , path_prefix , params
41- @path_prefix = URI . escape ( @path_prefix ) if escape_path
39+ @connection , @path_prefix , @api_translator , @params = connection , path_prefix , api_translator , params
40+ @path_prefix = URI . escape ( @path_prefix ) if connection . enable_url_escape
4241 @block = block if block
4342 subject if block
4443 end
@@ -68,18 +67,24 @@ def raw
6867 # Returns json
6968 #
7069 def subject
71- @subject ||= connection . get ( path_prefix ) do |req |
72- req . params . merge! params
70+ @subject ||= connection . get ( path_prefix ) do |req |
71+ req . params . merge! params
7372 req . headers [ "Accept" ] = accept_type if self . respond_to? :accept_type
7473 @block . call ( req ) if @block
75- end . body
74+ end
75+
76+ if @api_translator
77+ @api_translator . translate_data ( @subject . body )
78+ else
79+ @subject . body
80+ end
7681 end
7782
7883 # Paginate is a helper method to handle
7984 # request pagination to the github api
8085 #
8186 # options - Hash containing pagination params
82- # eg;
87+ # eg;
8388 # :per_page => 100, :page => 1
8489 #
8590 # Returns self
@@ -100,7 +105,7 @@ def paginate(options)
100105
101106 parse_link_header response . headers . delete ( "link" )
102107
103- return self
108+ return self
104109 end
105110
106111 def all
@@ -125,7 +130,7 @@ def all_parallel
125130 end
126131 end
127132 end
128- requests . inject ( [ ] ) do |results , page |
133+ requests . inject ( [ ] ) do |results , page |
129134 results . concat ( page . body )
130135 end
131136 end
@@ -138,11 +143,11 @@ def all_parallel
138143 end
139144
140145 def build_prefix ( first_argument , endpoint )
141- ( !first_argument . is_a? ( Hash ) && !first_argument . nil? ) ?
146+ ( !first_argument . is_a? ( Hash ) && !first_argument . nil? ) ?
142147 File . join ( path_prefix , "/#{ endpoint } /#{ first_argument } " ) : File . join ( path_prefix , "/#{ endpoint } " )
143148 end
144149
145- private
150+ private
146151
147152 def pagination_data ( header )
148153 parse_link_header header
0 commit comments