Fixed documentation and prepared for release of 0.12

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1216 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
上级 f46486d3
*SVN*
*0.9.0* (19th April, 2005)
* Added that deliver_* will now return the email that was sent
* Fixed quoting for all address headers, not just to #955 [Jamis Buck]
* Added that quoting to UTF-8 only happens if the characters used are in that range #955 [Jamis Buck]
* Fixed quoting for all address headers, not just to #955 [Jamis Buck]
* Fixed unquoting of emails that doesn't have an explicit charset #1036 [wolfgang@stufenlos.net]
......
......@@ -8,7 +8,7 @@ require 'rake/contrib/rubyforgepublisher'
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
PKG_NAME = 'actionmailer'
PKG_VERSION = '0.8.1' + PKG_BUILD
PKG_VERSION = '0.9.0' + PKG_BUILD
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
RELEASE_NAME = "REL #{PKG_VERSION}"
......@@ -52,7 +52,7 @@ spec = Gem::Specification.new do |s|
s.rubyforge_project = "actionmailer"
s.homepage = "http://www.rubyonrails.org"
s.add_dependency('actionpack', '= 1.7.0' + PKG_BUILD)
s.add_dependency('actionpack', '= 1.8.0' + PKG_BUILD)
s.has_rdoc = true
s.requirements << 'none'
......
*SVN*
*1.8.0* (19th April, 2005)
* Added support for web servers that use PATH_INFO instead of REQUEST_URI like IIS #1014 [BradG/Nicholas Seckar]
* Added assert_tag and assert_no_tag as a much improved alternative to the deprecated assert_template_xpath_match #1126 [Jamis Buck]
* Added graceful handling of PUT, DELETE, and OPTIONS requests for a complete coverage of REST functionality #1136 [joshknowles@gmail.com]
* Deprecated the majority of all the testing assertions and replaced them with a much smaller core and access to all the collections the old assertions relied on. That way the regular test/unit assertions can be used against these. Added documentation about how to use it all.
* Fixed that you can now pass an alternative :href option to link_to_function/remote in order to point to somewhere other than # if the javascript fails or is turned off. You can do the same with form_remote_tag by passing in :action. #1113 [Sam Stephenson]
* Added a wide range of new Javascript effects:
* Effect.Puff zooms the element out and makes it smoothly transparent at the same time, giving a "puff" illusion #996 [thomas@fesch.at]
After the animation is completed, the display property will be set to none.
This effect will work on relative and absolute positioned elements.
* Effect.Appear as the opposite of Effect.Fade #990 [thomas@fesch.at]
You should return elements with style="display:none;" or a like class for this to work best and have no chance of flicker.
* Effect.Squish for scaling down an element and making it disappear at the end #972 [thomas@fesch.at]
* Effect.Scale for smoothly scaling images or text up and down #972 [thomas@fesch.at]
* Effect.Fade which smoothly turns opacity from 100 to 0 and then hides the element #960 [thomas@fesch.at]
* Added Request#xml_http_request? (and an alias xhr?) to that'll return true when the request came from one of the Javascript helper methods (Ajax). This can be used to give one behavior for modern browsers supporting Ajax, another to old browsers #1127 [Sam Stephenson]
* Added assert_tag and assert_no_tag as a much improved alternative to the deprecated assert_template_xpath_match #1126 [Jamis Buck]
* Changed render_partial to take local assigns as the second parameter instead of an explicit object and then the assigns. So the API changes from:
* Deprecated the majority of all the testing assertions and replaced them with a much smaller core and access to all the collections the old assertions relied on. That way the regular test/unit assertions can be used against these. Added documentation about how to use it all.
<%= render_partial "account", person, "rules" => regulations.rules %>
...to:
<%= render_partial "account", :account => person, :rules => regulations.rules %>
The old API will still work, though, and render_partial "account" will still assume :account => @account.
* Added support for web servers that use PATH_INFO instead of REQUEST_URI like IIS #1014 [BradG/Nicholas Seckar]
* Added graceful handling of PUT, DELETE, and OPTIONS requests for a complete coverage of REST functionality #1136 [joshknowles@gmail.com]
* Fixed that you can now pass an alternative :href option to link_to_function/remote in order to point to somewhere other than # if the javascript fails or is turned off. You can do the same with form_remote_tag by passing in :action. #1113 [Sam Stephenson]
* Fixed DateHelper to return values on the option tags such that they'll work properly in IE with form_remote_tag #1024 [rscottmace@gmail.com]
......@@ -28,16 +52,6 @@
* Fixed error handling of broken layouts #1115 [Michael Schubert]
* Changed render_partial to take local assigns as the second parameter instead of an explicit object and then the assigns. So the API changes from:
<%= render_partial "account", person, "rules" => regulations.rules %>
...to:
<%= render_partial "account", :account => person, :rules => regulations.rules %>
The old API will still work, though, and render_partial "account" will still assume :account => @account.
* Added submit_to_remote that allows you to trigger an Ajax form submition at the click of the submission button, which allows for multiple targets in a single form through the use of multiple submit buttons #930 [yrashk@gmail.com]
* Fixed pagination to work with joins #1034 [scott@sigkill.org]
......@@ -90,20 +104,6 @@
* Fixed that on very rare occasions, webrick would raise a NoMethodError: private method 'split' called for nil #1001 [Flurin Egger]
* Added a wide range of new Javascript effects:
* Effect.Puff zooms the element out and makes it smoothly transparent at the same time, giving a "puff" illusion #996 [thomas@fesch.at]
After the animation is completed, the display property will be set to none.
This effect will work on relative and absolute positioned elements.
* Effect.Appear as the opposite of Effect.Fade #990 [thomas@fesch.at]
You should return elements with style="display:none;" or a like class for this to work best and have no chance of flicker.
* Effect.Squish for scaling down an element and making it disappear at the end #972 [thomas@fesch.at]
* Effect.Scale for smoothly scaling images or text up and down #972 [thomas@fesch.at]
* Effect.Fade which smoothly turns opacity from 100 to 0 and then hides the element #960 [thomas@fesch.at]
* Fixed problem with page caching #958 [Rick Olson]
......
......@@ -8,7 +8,7 @@ require 'rake/contrib/rubyforgepublisher'
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
PKG_NAME = 'actionpack'
PKG_VERSION = '1.7.0' + PKG_BUILD
PKG_VERSION = '1.8.0' + PKG_BUILD
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
RELEASE_NAME = "REL #{PKG_VERSION}"
......@@ -61,7 +61,7 @@ spec = Gem::Specification.new do |s|
s.has_rdoc = true
s.requirements << 'none'
s.add_dependency('activesupport', '= 1.0.3' + PKG_BUILD)
s.add_dependency('activesupport', '= 1.0.4' + PKG_BUILD)
s.require_path = 'lib'
s.autorequire = 'action_controller'
......
......@@ -134,15 +134,15 @@ def assert_routing(path, options, defaults={}, extras={}, message=nil)
# must meet the criteria described by the hash.
# * <tt>:children</tt>: a hash, for counting children of a node. Accepts
# the keys:
# ** <tt>:count</tt>: either a number or a range which must equal (or
# include) the number of children that match.
# ** <tt>:less_than</tt>: the number of matching children must be less
# than this number.
# ** <tt>:greater_than</tt>: the number of matching children must be
# greater than this number.
# ** <tt>:only</tt>: another hash consisting of the keys to use
# to match on the children, and only matching children will be
# counted.
# * <tt>:count</tt>: either a number or a range which must equal (or
# include) the number of children that match.
# * <tt>:less_than</tt>: the number of matching children must be less
# than this number.
# * <tt>:greater_than</tt>: the number of matching children must be
# greater than this number.
# * <tt>:only</tt>: another hash consisting of the keys to use
# to match on the children, and only matching children will be
# counted.
# * <tt>:content</tt>: (text nodes only). The content of the node must
# match the given value.
#
......
require 'html/tokenizer'
require 'html/node'
module HTML
module HTML#:nodoc:
# A top-level HTMl document. You give it a body of text, and it will parse that
# text into a tree of nodes.
class Document
class Document #:nodoc:
# The root of the parsed document.
attr_reader :root
......
require 'strscan'
module HTML
module HTML#:nodoc:
class Conditions < Hash
class Conditions < Hash#:nodoc:
def initialize(hash)
super()
hash = { :content => hash } unless Hash === hash
......@@ -53,7 +53,7 @@ def keys_to_symbols(hash)
end
# The base class of all nodes, textual and otherwise, in an HTML document.
class Node
class Node#:nodoc:
# The array of children of this node. Not all nodes have children.
attr_reader :children
......@@ -167,7 +167,7 @@ def parse(parent, line, pos, content)
end
# A node that represents text, rather than markup.
class Text < Node
class Text < Node#:nodoc:
attr_reader :content
......@@ -223,7 +223,7 @@ def match(conditions)
# A Tag is any node that represents markup. It may be an opening tag, a
# closing tag, or a self-closing tag. It has a name, and may have a hash of
# attributes.
class Tag < Node
class Tag < Node#:nodoc:
# Either +nil+, <tt>:close</tt>, or <tt>:self</tt>
attr_reader :closing
......
require 'strscan'
module HTML
module HTML#:nodoc:
# A simple HTML tokenizer. It simply breaks a stream of text into tokens, where each
# token is a string. Each string represents either "text", or an HTML element.
......@@ -13,7 +13,7 @@ module HTML
# while token = tokenizer.next
# p token
# end
class Tokenizer
class Tokenizer#:nodoc:
# The current (byte) position in the text
attr_reader :position
......
module HTML
module Version
module HTML#:nodoc:
module Version#:nodoc:
MAJOR = 0
MINOR = 5
......
*0.7.0* (Unreleased)
*0.7.0* (19th April, 2005)
* When casting structured types, don't try to send obj.name= unless obj responds to it, causes casting to be less likely to fail for XML-RPC
......
......@@ -9,7 +9,7 @@ require 'fileutils'
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
PKG_NAME = 'actionwebservice'
PKG_VERSION = '0.6.2' + PKG_BUILD
PKG_VERSION = '0.7.0' + PKG_BUILD
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
......@@ -62,9 +62,9 @@ spec = Gem::Specification.new do |s|
s.rubyforge_project = "aws"
s.homepage = "http://www.rubyonrails.org"
s.add_dependency('actionpack', '= 1.7.0' + PKG_BUILD)
s.add_dependency('activerecord', '= 1.9.1' + PKG_BUILD)
s.add_dependency('activesupport', '= 1.0.3' + PKG_BUILD)
s.add_dependency('actionpack', '= 1.8.0' + PKG_BUILD)
s.add_dependency('activerecord', '= 1.10.0' + PKG_BUILD)
s.add_dependency('activesupport', '= 1.0.4' + PKG_BUILD)
s.has_rdoc = true
s.requirements << 'none'
......
*SVN*
* Added Base.save! that attempts to save the record just like Base.save but will raise a InvalidRecord exception instead of returning false if the record is not valid [After much pestering from Dave Thomas]
*1.10.0* (19th April, 2005)
* Added eager loading of associations as a way to solve the N+1 problem more gracefully without piggy-back queries. Example:
......@@ -24,6 +22,15 @@
Person.find(:all, :conditions => [ "category IN (?)", categories], :limit => 50)
Person.find(:all, :offset => 10, :limit => 10)
* Added acts_as_nested_set #1000 [wschenk]. Introduction:
This acts provides Nested Set functionality. Nested Set is similiar to Tree, but with
the added feature that you can select the children and all of it's descendants with
a single query. A good use case for this is a threaded post system, where you want
to display every reply to a comment without multiple selects.
* Added Base.save! that attempts to save the record just like Base.save but will raise a RecordInvalid exception instead of returning false if the record is not valid [After much pestering from Dave Thomas]
* Fixed PostgreSQL usage of fixtures with regards to public schemas and table names with dots #962 [gnuman1@gmail.com]
* Fixed that fixtures were being deleted in the same order as inserts causing FK errors #890 [andrew.john.peters@gmail.com]
......@@ -36,13 +43,6 @@
* Added the option to specify the acceptance string in validates_acceptance_of #1106 [caleb@aei-tech.com]
* Added acts_as_nested_set #1000 [wschenk]. Introduction:
This acts provides Nested Set functionality. Nested Set is similiar to Tree, but with
the added feature that you can select the children and all of it's descendants with
a single query. A good use case for this is a threaded post system, where you want
to display every reply to a comment without multiple selects.
* Added insert_at(position) to acts_as_list #1083 [DeLynnB]
* Removed the default order by id on has_and_belongs_to_many queries as it could kill performance on large sets (you can still specify by hand with :order)
......
......@@ -333,7 +333,7 @@ The prefered method of installing Active Record is through its GEM file. You'll
RubyGems[http://rubygems.rubyforge.org/wiki/wiki.pl] installed for that, though. If you have,
then use:
% [sudo] gem install activerecord-1.7.0.gem
% [sudo] gem install activerecord-1.10.0.gem
You can also install Active Record the old-fashion way with the following command:
......
......@@ -8,7 +8,7 @@ require 'rake/contrib/rubyforgepublisher'
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
PKG_NAME = 'activerecord'
PKG_VERSION = '1.9.1' + PKG_BUILD
PKG_VERSION = '1.10.0' + PKG_BUILD
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
RELEASE_NAME = "REL #{PKG_VERSION}"
......@@ -76,7 +76,7 @@ spec = Gem::Specification.new do |s|
s.files = s.files + Dir.glob( "#{dir}/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
end
s.add_dependency('activesupport', '= 1.0.3' + PKG_BUILD)
s.add_dependency('activesupport', '= 1.0.4' + PKG_BUILD)
s.files.delete "test/fixtures/fixture_database.sqlite"
s.files.delete "test/fixtures/fixture_database_2.sqlite"
......
......@@ -96,7 +96,7 @@ def initialize(errors)
# question mark is supposed to represent. In those cases, you can resort to named bind variables instead. That's done by replacing
# the question marks with symbols and supplying a hash with values for the matching symbol keys:
#
# Company.find_first([
# Company.find(:first, [
# "id = :id AND name = :name AND division = :division AND created_at > :accounting_date",
# { :id => 3, :name => "37signals", :division => "First", :accounting_date => '2005-01-01' }
# ])
......@@ -295,7 +295,7 @@ class << self # Class methods
# If no record can be found for all of the listed ids, then RecordNotFound will be raised.
# * Find first: This will return the first record matched by the options used. These options can either be specific
# conditions or merely an order. If no record can matched, nil is returned.
# # Find all: This will return all the records matched by the options used. If no records are found, an empty array is returned.
# * Find all: This will return all the records matched by the options used. If no records are found, an empty array is returned.
#
# All approaches accepts an option hash as their last parameter. The options are:
#
......@@ -315,12 +315,12 @@ class << self # Class methods
# Person.find(1, :conditions => "administrator = 1", :order => "created_on DESC")
#
# Examples for find first:
# Person.find(:first) # returns the first object fetched by SELECT * FROM people
# Person.find(:first) # returns the first object fetched by SELECT * FROM people
# Person.find(:first, :conditions => [ "user_name = ?", user_name])
# Person.find(:first, :order => "created_on DESC", :offset => 5)
#
# Examples for find all:
# Person.find(:all) # returns an array of objects for all the rows fetched by SELECT * FROM people
# Person.find(:all) # returns an array of objects for all the rows fetched by SELECT * FROM people
# Person.find(:all, :conditions => [ "category IN (?)", categories], :limit => 50)
# Person.find(:all, :offset => 10, :limit => 10)
# Person.find(:all, :include => [ :account, :friends ])
......
module ActiveRecord
class InvalidRecord < ActiveRecordError #:nodoc:
class RecordInvalid < ActiveRecordError #:nodoc:
end
# Active Record validation is reported to and from this object, which is used by Base#save to
......@@ -555,10 +555,10 @@ def save_with_validation(perform_validation = true)
if perform_validation && valid? || !perform_validation then save_without_validation else false end
end
# Attempts to save the record just like Base.save but will raise a InvalidRecord exception instead of returning false
# Attempts to save the record just like Base.save but will raise a RecordInvalid exception instead of returning false
# if the record is not valid.
def save!
valid? ? save_without_validation : raise(InvalidRecord)
valid? ? save_without_validation : raise(RecordInvalid)
end
# Updates a single attribute and saves the record without going through the normal validation procedure.
......
......@@ -66,7 +66,7 @@ def test_error_on_update
def test_invalid_record_exception
r = Reply.new
assert_raises(ActiveRecord::InvalidRecord) { r.save! }
assert_raises(ActiveRecord::RecordInvalid) { r.save! }
end
def test_single_error_per_attr_iteration
......
*SVN*
*1.0.4* (19th April, 2005)
* Fixed that in some circumstances controllers outside of modules may have hidden ones inside modules. For example, admin/content might have been hidden by /content. #1075 [Nicholas Seckar]
......
*SVN*
*0.12.0* (19th April, 2005)
* Fixed that purge_test_database would use database settings from the development environment when recreating the test database #1122 [rails@cogentdude.com]
......@@ -10,7 +10,6 @@
# pits the two statements against each other with 50 runs each
script/benchmarker 50 'Person.expensive_method(10)' 'Person.cheap_method(10)'
* Added script/profiler to easily profile a single statement from within the environment. Examples:
script/profiler 'Person.expensive_method(10)'
......@@ -22,6 +21,8 @@
* Fixed that ownership is brought over in pg_dump during tests for PostgreSQL #1060 [pburleson@gmail.com]
* Upgraded to Active Record 1.10.0, Action Pack 1.8.0, Action Mailer 0.9.0, Action Web Service 0.7.0, Active Support 1.0.4
*0.11.1* (27th March, 2005)
......
......@@ -9,7 +9,7 @@ require 'rbconfig'
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
PKG_NAME = 'rails'
PKG_VERSION = '0.11.1' + PKG_BUILD
PKG_VERSION = '0.12.0' + PKG_BUILD
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
......@@ -238,12 +238,12 @@ spec = Gem::Specification.new do |s|
on top of either MySQL, PostgreSQL, or SQLite with eRuby-based templates.
EOF
s.add_dependency('rake', '>= 0.5.0')
s.add_dependency('activesupport', '= 1.0.3' + PKG_BUILD)
s.add_dependency('activerecord', '= 1.9.1' + PKG_BUILD)
s.add_dependency('actionpack', '= 1.7.0' + PKG_BUILD)
s.add_dependency('actionmailer', '= 0.8.1' + PKG_BUILD)
s.add_dependency('actionwebservice', '= 0.6.2' + PKG_BUILD)
s.add_dependency('rake', '>= 0.5.3')
s.add_dependency('activesupport', '= 1.0.4' + PKG_BUILD)
s.add_dependency('activerecord', '= 1.10.0' + PKG_BUILD)
s.add_dependency('actionpack', '= 1.8.0' + PKG_BUILD)
s.add_dependency('actionmailer', '= 0.9.0' + PKG_BUILD)
s.add_dependency('actionwebservice', '= 0.7.0' + PKG_BUILD)
s.rdoc_options << '--exclude' << '.'
s.has_rdoc = false
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册