Skip to content

Instantly share code, notes, and snippets.

View metaskills's full-sized avatar
🐙
Being Inkcellent to Each Other

Ken Collins metaskills

🐙
Being Inkcellent to Each Other
View GitHub Profile
class Numeric
def negative
if self <= 0
self
else
self * -1
end
end
end
class Animal < Struct.new(:species)
end
o1 = Animal.new(:duck)
o2 = Animal.new(:duck)
o3 = Animal.new(:goose)
[o1,o2,o3].each do |animal|
sound = animal.species == :duck ? 'Quack' : 'Say What?'
# Concept From: http://github.com/eugenebolshakov/override_rake_task
# Namespace Support: Ken Collins <ken@metaskills.net>
Rake::TaskManager.class_eval do
def alias_task(fq_name)
new_name = "#{fq_name}:original"
@tasks[new_name] = @tasks.delete(fq_name)
end
end
# Place this in your rails lib directory and require in your Rakefile.
Rake::TaskManager.class_eval do
def alias_task(fq_name)
new_name = "#{fq_name}:original"
@tasks[new_name] = @tasks.delete(fq_name)
end
end
def alias_task(fq_name)
# Place this in lib/tasks
namespace :db do
alias_task_chain :charset => :environment do
config = ActiveRecord::Base.configurations[RAILS_ENV || 'development']
case config['adapter']
when 'sqlserver'
ActiveRecord::Base.establish_connection(config)
puts ActiveRecord::Base.connection.charset
# Assume ApplicationController has the filters setup that you see in
# BEFORE_FILTERS. Also assume you have mixed in MyControllerFilters into
# application controller so you can use all its class/instance methods.
module MyControllerFilters
BEFORE_FILTERS = [
:shoot_zombies,
:set_timezone,
:authorize_request,
diff --git a/activerecord/test/schema/schema.rb b/activerecord/test/schema/schema.rb
index f3fd37c..4e95cac 100644
--- a/activerecord/test/schema/schema.rb
+++ b/activerecord/test/schema/schema.rb
@@ -335,7 +335,7 @@ ActiveRecord::Schema.define do
t.decimal :decimal_number_with_default, :precision => 3, :scale => 2, :default => 2.78
t.float :temperature
# Oracle supports precision up to 38
- if current_adapter?(:OracleAdapter)
+ if current_adapter?(:OracleAdapter,:SQLServerAdapter)
@metaskills
metaskills / quoted_date_format.rb
Created June 29, 2010 16:33
quoted_date_format.rb
def quoted_date_format
@current_lauguage ||= user_option['language']
@current_dateformat ||= user_option['dateformat']
if sqlserver_2005? || sqlserver_2008? && @current_dateformat != 'mdy'
sqlserver_2005? ? :sqlserver_iso8601_3 : :sqlserver_iso8601_6
else
:sqlserver_db
end
end
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
:sqlserver_db => Proc.new { |value|
value.respond_to?(:usec) && value.usec != 0 ?
value.strftime("%Y-%m-%dT%H:%M:%S.#{sprintf("%03d",value.usec/1000)}") :
value.strftime "%Y-%m-%dT%H:%M:%S"
}
)
>> Time.now.to_s(:sqlserver_db)
=> "2010-06-30T09:07:45.905"
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
:db => "%Y-%m-%dT%H:%M:%S"
)
ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(
:db => "%Y%m%d"
)