~michaelforrest/use-case-mapper/trunk

« back to all changes in this revision

Viewing changes to vendor/rails/activeresource/CHANGELOG

  • Committer: Richard Lee (Canonical)
  • Date: 2010-10-15 15:17:58 UTC
  • mfrom: (190.1.3 use-case-mapper)
  • Revision ID: richard.lee@canonical.com-20101015151758-wcvmfxrexsongf9d
Merge

Show diffs side-by-side

added added

removed removed

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