Skip to content
Newer
Older
100644 348 lines (198 sloc) 12 KB
263d842 @vijaydev update changelogs for gems without changes too [ci skip]
vijaydev authored
1 ## Rails 3.2.3 (unreleased) ##
2
3 * No changes.
4
5 ## Rails 3.2.2 (March 1, 2012) ##
6
7 * No changes.
8
97e8d1d @fxn CHANGELOG revision for v3.2.1
fxn authored
9 ## Rails 3.2.1 (January 26, 2012) ##
10
8e6ef37 @fxn fixes whitespace in CHANGELOG entries
fxn authored
11 * Documentation fixes.
97e8d1d @fxn CHANGELOG revision for v3.2.1
fxn authored
12
13
f36dcaf @dhh Preparing for 3.2.0 release
dhh authored
14 ## Rails 3.2.0 (January 20, 2012) ##
281272a @jonleighton Convert CHANGELOGs to Markdown format.
jonleighton authored
15
16 * Redirect responses: 303 See Other and 307 Temporary Redirect now behave like
17 301 Moved Permanently and 302 Found. GH #3302.
18
19 *Jim Herz*
20
21
22 ## Rails 3.1.1 (October 7, 2011) ##
23
24 * No changes.
25
26
27 ## Rails 3.1.0 (August 30, 2011) ##
28
29 * The default format has been changed to JSON for all requests. If you want to continue to use XML you will need to set `self.format = :xml` in the class. eg.
30
31 class User < ActiveResource::Base self.format = :xml
32 end
33
34 ## Rails 3.0.7 (April 18, 2011) ##
35
36 * No changes.
37
38
39 * Rails 3.0.6 (April 5, 2011)
40
41 * No changes.
42
43
44 ## Rails 3.0.5 (February 26, 2011) ##
45
46 * No changes.
47
48
49 ## Rails 3.0.4 (February 8, 2011) ##
50
51 * No changes.
52
53
54 ## Rails 3.0.3 (November 16, 2010) ##
55
56 * No changes.
57
58
59 ## Rails 3.0.2 (November 15, 2010) ##
60
61 * No changes
62
63
64 ## Rails 3.0.1 (October 15, 2010) ##
65
66 * No Changes, just a version bump.
67
68
69 ## Rails 3.0.0 (August 29, 2010) ##
70
71 * JSON: set Base.include_root_in_json = true to include a root value in the JSON: {"post": {"title": ...}}. Mirrors the Active Record option. *Santiago Pastorino*
72
73 * Add support for errors in JSON format. #1956 *Fabien Jakimowicz*
74
75 * Recognizes 410 as Resource Gone. #2316 *Jordan Brough, Jatinder Singh*
76
77 * More thorough SSL support. #2370 *Roy Nicholson*
78
79 * HTTP proxy support. #2133 *Marshall Huss, Sébastien Dabet*
80
81
82 ## 2.3.2 Final (March 15, 2009) ##
83
84 * Nothing new, just included in 2.3.2
85
86
87 ## 2.2.1 RC2 (November 14th, 2008) ##
88
89 * Fixed that ActiveResource#post would post an empty string when it shouldn't be posting anything #525 *Paolo Angelini*
90
91
92 ## 2.2.0 RC1 (October 24th, 2008) ##
93
94 * Add ActiveResource::Base#to_xml and ActiveResource::Base#to_json. #1011 *Rasik Pandey, Cody Fauser*
95
96 * Add ActiveResource::Base.find(:last). [#754 state:resolved] (Adrian Mugnolo)
97
98 * Fixed problems with the logger used if the logging string included %'s [#840 state:resolved] (Jamis Buck)
99
100 * Fixed Base#exists? to check status code as integer [#299 state:resolved] (Wes Oldenbeuving)
101
102
103 ## 2.1.0 (May 31st, 2008) ##
104
105 * Fixed response logging to use length instead of the entire thing (seangeo) *#27*
106
107 * Fixed that to_param should be used and honored instead of hardcoding the id #11406 *gspiers*
108
109 * Improve documentation. *Ryan Bigg, Jan De Poorter, Cheah Chu Yeow, Xavier Shay, Jack Danger Canty, Emilio Tagua, Xavier Noria, Sunny Ripert*
110
111 * Use HEAD instead of GET in exists? *bscofield*
112
113 * Fix small documentation typo. Closes #10670 *Luca Guidi*
114
115 * find_or_create_resource_for handles module nesting. #10646 *xavier*
116
117 * Allow setting ActiveResource::Base#format before #site. *Rick Olson*
118
119 * Support agnostic formats when calling custom methods. Closes #10635 *joerichsen*
120
121 * Document custom methods. #10589 *Cheah Chu Yeow*
122
123 * Ruby 1.9 compatibility. *Jeremy Kemper*
124
125
126 ## 2.0.2 (December 16th, 2007) ##
127
128 * Added more specific exceptions for 400, 401, and 403 (all descending from ClientError so existing rescues will work) #10326 *trek*
129
130 * Correct empty response handling. #10445 *seangeo*
131
132
133 ## 2.0.1 (December 7th, 2007) ##
134
135 * Don't cache net/http object so that ActiveResource is more thread-safe. Closes #10142 *kou*
136
137 * Update XML documentation examples to include explicit type attributes. Closes #9754 *Josh Susser*
138
139 * Added one-off declarations of mock behavior [David Heinemeier Hansson]. Example:
140
141 Before:
142 ActiveResource::HttpMock.respond_to do |mock|
143 mock.get "/people/1.xml", {}, "<person><name>David</name></person>"
144 end
145
146 Now:
147 ActiveResource::HttpMock.respond_to.get "/people/1.xml", {}, "<person><name>David</name></person>"
148
149 * Added ActiveResource.format= which defaults to :xml but can also be set to :json [David Heinemeier Hansson]. Example:
150
151 class Person < ActiveResource::Base
152 self.site = "http://app/"
153 self.format = :json
154 end
155
156 person = Person.find(1) # => GET http://app/people/1.json
157 person.name = "David"
158 person.save # => PUT http://app/people/1.json {name: "David"}
159
160 Person.format = :xml
161 person.name = "Mary"
162 person.save # => PUT http://app/people/1.json <person><name>Mary</name></person>
163
164 * Fix reload error when path prefix is used. #8727 *Ian Warshak*
165
166 * Remove ActiveResource::Struct because it hasn't proven very useful. Creating a new ActiveResource::Base subclass is often less code and always clearer. #8612 *Josh Peek*
167
168 * Fix query methods on resources. *Cody Fauser*
169
170 * pass the prefix_options to the instantiated record when using find without a specific id. Closes #8544 *Eloy Duran*
171
172 * Recognize and raise an exception on 405 Method Not Allowed responses. #7692 *Josh Peek*
173
174 * Handle string and symbol param keys when splitting params into prefix params and query params.
175
176 Comment.find(:all, :params => { :article_id => 5, :page => 2 }) or Comment.find(:all, :params => { 'article_id' => 5, :page => 2 })
177
178 * Added find-one with symbol [David Heinemeier Hansson]. Example: Person.find(:one, :from => :leader) # => GET /people/leader.xml
179
180 * BACKWARDS INCOMPATIBLE: Changed the finder API to be more extensible with :params and more strict usage of scopes [David Heinemeier Hansson]. Changes:
181
182 Person.find(:all, :title => "CEO") ...becomes: Person.find(:all, :params => { :title => "CEO" })
183 Person.find(:managers) ...becomes: Person.find(:all, :from => :managers)
184 Person.find("/companies/1/manager.xml") ...becomes: Person.find(:one, :from => "/companies/1/manager.xml")
185
186 * Add support for setting custom headers per Active Resource model *Rick Olson*
187
188 class Project
189 headers['X-Token'] = 'foo'
190 end
191
192 \# makes the GET request with the custom X-Token header
193 Project.find(:all)
194
195 * Added find-by-path options to ActiveResource::Base.find [David Heinemeier Hansson]. Examples:
196
197 employees = Person.find(:all, :from => "/companies/1/people.xml") # => GET /companies/1/people.xml
198 manager = Person.find("/companies/1/manager.xml") # => GET /companies/1/manager.xml
199
200
201 * Added support for using classes from within a single nested module [David Heinemeier Hansson]. Example:
202
203 module Highrise
204 class Note < ActiveResource::Base
205 self.site = "http://37s.sunrise.i:3000"
206 end
207
208 class Comment < ActiveResource::Base
209 self.site = "http://37s.sunrise.i:3000"
210 end
211 end
212
213 assert_kind_of Highrise::Comment, Note.find(1).comments.first
214
215
216 * Added load_attributes_from_response as a way of loading attributes from other responses than just create *David Heinemeier Hansson*
217
218 class Highrise::Task < ActiveResource::Base
219 def complete
220 load_attributes_from_response(post(:complete))
221 end
222 end
223
224 ...will set "done_at" when complete is called.
225
226
227 * Added support for calling custom methods #6979 *rwdaigle*
228
229 Person.find(:managers) # => GET /people/managers.xml
230 Kase.find(1).post(:close) # => POST /kases/1/close.xml
231
232 * Remove explicit prefix_options parameter for ActiveResource::Base#initialize. *Rick Olson*
233 ActiveResource splits the prefix_options from it automatically.
234
235 * Allow ActiveResource::Base.delete with custom prefix. *Rick Olson*
236
237 * Add ActiveResource::Base#dup *Rick Olson*
238
239 * Fixed constant warning when fetching the same object multiple times *David Heinemeier Hansson*
240
241 * Added that saves which get a body response (and not just a 201) will use that response to update themselves *David Heinemeier Hansson*
242
243 * Disregard namespaces from the default element name, so Highrise::Person will just try to fetch from "/people", not "/highrise/people" *David Heinemeier Hansson*
244
245 * Allow array and hash query parameters. #7756 *Greg Spurrier*
246
247 * Loading a resource preserves its prefix_options. #7353 *Ryan Daigle*
248
249 * Carry over the convenience of #create from ActiveRecord. Closes #7340. *Ryan Daigle*
250
251 * Increase ActiveResource::Base test coverage. Closes #7173, #7174 *Rich Collins*
252
253 * Interpret 422 Unprocessable Entity as ResourceInvalid. #7097 *dkubb*
254
255 * Mega documentation patches. #7025, #7069 *rwdaigle*
256
257 * Base.exists?(id, options) and Base#exists? check whether the resource is found. #6970 *rwdaigle*
258
259 * Query string support. *untext, Jeremy Kemper*
260 # GET /forums/1/topics.xml?sort=created_at
261 Topic.find(:all, :forum_id => 1, :sort => 'created_at')
262
263 * Base#==, eql?, and hash methods. == returns true if its argument is identical to self or if it's an instance of the same class, is not new?, and has the same id. eql? is an alias for ==. hash delegates to id. *Jeremy Kemper*
264
265 * Allow subclassed resources to share the site info *Rick Olson, Jeremy Kemper*
266 d class BeastResource < ActiveResource::Base
267 self.site = 'http://beast.caboo.se'
268 end
269
270 class Forum < BeastResource
271 # taken from BeastResource
272 # self.site = 'http://beast.caboo.se'
273 end
274
275 class Topic < BeastResource
276 self.site += '/forums/:forum_id'
277 end
278
279 * Fix issues with ActiveResource collection handling. Closes #6291. *bmilekic*
280
281 * Use attr_accessor_with_default to dry up attribute initialization. References #6538. *Stuart Halloway*
282
283 * Add basic logging support for logging outgoing requests. *Jamis Buck*
284
285 * Add Base.delete for deleting resources without having to instantiate them first. *Jamis Buck*
286
287 * Make #save behavior mimic AR::Base#save (true on success, false on failure). *Jamis Buck*
288
289 * Add Basic HTTP Authentication to ActiveResource (closes #6305). *jonathan*
290
291 * Extracted #id_from_response as an entry point for customizing how a created resource gets its own ID.
292 By default, it extracts from the Location response header.
293
294 * Optimistic locking: raise ActiveResource::ResourceConflict on 409 Conflict response. *Jeremy Kemper*
295
296 # Example controller action
297 def update
298 @person.save!
299 rescue ActiveRecord::StaleObjectError
300 render :xml => @person.reload.to_xml, :status => '409 Conflict'
301 end
302
303 * Basic validation support *Rick Olson*
304
305 Parses the xml response of ActiveRecord::Errors#to_xml with a similar interface to ActiveRecord::Errors.
306
307 render :xml => @person.errors.to_xml, :status => '400 Validation Error'
308
309 * Deep hashes are converted into collections of resources. *Jeremy Kemper*
310 Person.new :name => 'Bob',
311 :address => { :id => 1, :city => 'Portland' },
312 :contacts => [{ :id => 1 }, { :id => 2 }]
313 Looks for Address and Contact resources and creates them if unavailable.
314 So clients can fetch a complex resource in a single request if you e.g.
315 render :xml => @person.to_xml(:include => [:address, :contacts])
316 in your controller action.
317
318 * Major updates *Rick Olson*
319
320 * Add full support for find/create/update/destroy
321 * Add support for specifying prefixes.
322 * Allow overriding of element_name, collection_name, and primary key
323 * Provide simpler HTTP mock interface for testing
324
325 # rails routing code
326 map.resources :posts do |post|
327 post.resources :comments
328 end
329
330 # ActiveResources
331 class Post < ActiveResource::Base
332 self.site = "http://37s.sunrise.i:3000/"
333 end
334
335 class Comment < ActiveResource::Base
336 self.site = "http://37s.sunrise.i:3000/posts/:post_id/"
337 end
338
339 @post = Post.find 5
340 @comments = Comment.find :all, :post_id => @post.id
341
342 @comment = Comment.new({:body => 'hello world'}, {:post_id => @post.id})
343 @comment.save
344
345 * Base.site= accepts URIs. 200...400 are valid response codes. PUT and POST request bodies default to ''. *Jeremy Kemper*
346
347 * Initial checkin: object-oriented client for restful HTTP resources which follow the Rails convention. *David Heinemeier Hansson*
Something went wrong with that request. Please try again.