Compiling ActiveSupport produces a bug on require
-------------------------------------------------
Key: JRUBY-3325
URL: http://jira.codehaus.org/browse/JRUBY-3325
Project: JRuby
Issue Type: Bug
Components: Compiler, Core Classes/Modules
Affects Versions: ActiveRecord-JDBC-0.9, JRuby 1.1.6
Reporter: Logan Barnett
When running from the jar:
{noformat}
NameError - undefined method `+' for class `Date'
lib/ruby/activesupport/lib/active_support/core_ext/date/conversions.rb:15:in
`included'
lib/ruby/activesupport/lib/active_support/core_ext/date/calculations.rb:9:in
`instance_eval'
lib/ruby/activesupport/lib/active_support/core_ext/date/calculations.rb:9:in
`included'
lib/ruby/activesupport/lib/active_support/core_ext/date.rb:8:in `require'
src/database_manager.rb:3:in `require'
src/main.rb:53:in `require'
{noformat}
There aren't any errors when running from .rb scripts directly.
Active Support's conversions.rb
{noformat}
module ActiveSupport #:nodoc:
module CoreExtensions #:nodoc:
module Date #:nodoc:
# Converting dates to formatted strings, times, and datetimes.
module Conversions
DATE_FORMATS = {
:short => "%e %b",
:long => "%B %e, %Y",
:db => "%Y-%m-%d",
:number => "%Y%m%d",
:long_ordinal => lambda { |date| date.strftime("%B
#{date.day.ordinalize}, %Y") }, # => "April 25th, 2007"
:rfc822 => "%e %b %Y"
}
def self.included(base) #:nodoc:
base.instance_eval do
alias_method :to_default_s, :to_s
alias_method :to_s, :to_formatted_s
alias_method :default_inspect, :inspect
alias_method :inspect, :readable_inspect
# Ruby 1.9 has Date#to_time which converts to localtime only.
remove_method :to_time if base.instance_methods.include?(:to_time)
# Ruby 1.9 has Date#xmlschema which converts to a string without
the time component.
remove_method :xmlschema if
base.instance_methods.include?(:xmlschema)
end
end
...
{noformat}
ActiveSupport's calculations.rb
{noformat}
module ActiveSupport #:nodoc:
module CoreExtensions #:nodoc:
module Date #:nodoc:
# Enables the use of time calculations within Time itself
module Calculations
def self.included(base) #:nodoc:
base.extend ClassMethods
base.instance_eval do
alias_method :plus_without_duration, :+
alias_method :+, :plus_with_duration
alias_method :minus_without_duration, :-
alias_method :-, :minus_with_duration
end
end
...
{noformat}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email