svn:external rails updated to 1.2.2

fixed ticket #372 typo in db-query
sqlite3-ruby updated to 1.2.1
This commit is contained in:
Matthias Tarasiewicz 2007-02-08 22:01:36 +00:00
parent 7378ce9610
commit 49032a99c6
4 changed files with 53 additions and 5 deletions

View file

@ -7,7 +7,7 @@ Rails::Initializer.run do |config|
# Use the database for sessions instead of the file system
# (create the session table with 'rake create_sessions_table')
config.action_controller.session_store = :active_record_store
#config.action_controller.session_store = :active_record_store
# Enable page/fragment caching by setting a file-based store
# (remember to create the caching directory and make it readable to the application)

View file

@ -246,9 +246,56 @@ module SQLite3
end
def table_info( table, &block ) # :yields: row
get_query_pragma "table_info", table, &block
end
columns, *rows = execute2("PRAGMA table_info(#{table})")
needs_tweak_default = version_compare(driver.libversion, "3.3.7") > 0
result = [] unless block_given?
rows.each do |row|
new_row = {}
columns.each_with_index do |name, index|
new_row[name] = row[index]
end
tweak_default(new_row) if needs_tweak_default
if block_given?
yield new_row
else
result << new_row
end
end
result
end
private
# Compares two version strings
def version_compare(v1, v2)
v1 = v1.split(".").map { |i| i.to_i }
v2 = v2.split(".").map { |i| i.to_i }
parts = [v1.length, v2.length].max
v1.push 0 while v1.length < parts
v2.push 0 while v2.length < parts
v1.zip(v2).each do |a,b|
return -1 if a < b
return 1 if a > b
end
return 0
end
# Since SQLite 3.3.8, the table_info pragma has returned the default
# value of the row as a quoted SQL value. This method essentially
# unquotes those values.
def tweak_default(hash)
case hash["dflt_value"]
when /^null$/i then
hash["dflt_value"] = nil
when /^'(.*)'$/
hash["dflt_value"] = $1.gsub(/''/, "'")
end
end
end
end

View file

@ -36,9 +36,10 @@ module SQLite3
MAJOR = 1
MINOR = 2
TINY = 0
TINY = 1
STRING = [ MAJOR, MINOR, TINY ].join( "." )
#:beta-tag:
end