tweak activemodel load order a bit
This commit is contained in:
parent
aec3c7aa72
commit
b7c6ceff9a
@ -1,11 +1,19 @@
|
|||||||
#!/usr/bin/env ruby
|
#!/usr/bin/env ruby
|
||||||
$LOAD_PATH << File.join(File.dirname(__FILE__), 'vendor', 'rspec', 'lib')
|
|
||||||
require 'rake'
|
require 'rake'
|
||||||
require 'spec/rake/spectask'
|
require 'rake/testtask'
|
||||||
require 'rake/rdoctask'
|
require 'rake/rdoctask'
|
||||||
|
|
||||||
|
task :default => :test
|
||||||
|
|
||||||
|
Rake::TestTask.new do |t|
|
||||||
|
t.libs << "test"
|
||||||
|
t.pattern = 'test/**/*_test.rb'
|
||||||
|
t.verbose = true
|
||||||
|
t.warning = true
|
||||||
|
end
|
||||||
|
|
||||||
# Generate the RDoc documentation
|
# Generate the RDoc documentation
|
||||||
Rake::RDocTask.new { |rdoc|
|
Rake::RDocTask.new do |rdoc|
|
||||||
rdoc.rdoc_dir = 'doc'
|
rdoc.rdoc_dir = 'doc'
|
||||||
rdoc.title = "Active Model"
|
rdoc.title = "Active Model"
|
||||||
rdoc.options << '--line-numbers' << '--inline-source' << '-A cattr_accessor=object'
|
rdoc.options << '--line-numbers' << '--inline-source' << '-A cattr_accessor=object'
|
||||||
@ -13,4 +21,4 @@ Rake::RDocTask.new { |rdoc|
|
|||||||
rdoc.template = "#{ENV['template']}.rb" if ENV['template']
|
rdoc.template = "#{ENV['template']}.rb" if ENV['template']
|
||||||
rdoc.rdoc_files.include('README', 'CHANGES')
|
rdoc.rdoc_files.include('README', 'CHANGES')
|
||||||
rdoc.rdoc_files.include('lib/**/*.rb')
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
||||||
}
|
end
|
@ -1,17 +1,5 @@
|
|||||||
$LOAD_PATH << File.join(File.dirname(__FILE__), '..', '..', 'activesupport', 'lib')
|
|
||||||
|
|
||||||
# premature optimization?
|
|
||||||
require 'active_support/inflector'
|
|
||||||
require 'active_support/core_ext/string/inflections'
|
|
||||||
String.send :include, ActiveSupport::CoreExtensions::String::Inflections
|
|
||||||
|
|
||||||
require 'active_model/base'
|
|
||||||
require 'active_model/observing'
|
require 'active_model/observing'
|
||||||
require 'active_model/callbacks'
|
# disabled until they're tested
|
||||||
require 'active_model/validations'
|
# require 'active_model/callbacks'
|
||||||
|
# require 'active_model/validations'
|
||||||
ActiveModel::Base.class_eval do
|
require 'active_model/base'
|
||||||
include ActiveModel::Observing
|
|
||||||
include ActiveModel::Callbacks
|
|
||||||
include ActiveModel::Validations
|
|
||||||
end
|
|
@ -1,4 +1,8 @@
|
|||||||
module ActiveModel
|
module ActiveModel
|
||||||
class Base
|
class Base
|
||||||
|
include Observing
|
||||||
|
# disabled, until they're tested
|
||||||
|
# include Callbacks
|
||||||
|
# include Validations
|
||||||
end
|
end
|
||||||
end
|
end
|
@ -1,3 +1,5 @@
|
|||||||
|
require 'active_model/observing'
|
||||||
|
|
||||||
module ActiveModel
|
module ActiveModel
|
||||||
module Callbacks
|
module Callbacks
|
||||||
|
|
||||||
|
7
activemodel/lib/active_model/core.rb
Normal file
7
activemodel/lib/active_model/core.rb
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# This file is required by each major ActiveModel component for the core requirements. This allows you to
|
||||||
|
# load individual pieces of ActiveModel as needed.
|
||||||
|
$LOAD_PATH << File.join(File.dirname(__FILE__), '..', '..', '..', 'activesupport', 'lib')
|
||||||
|
|
||||||
|
# premature optimization?
|
||||||
|
# So far, we only need the string inflections and not the rest of ActiveSupport.
|
||||||
|
require 'active_support/inflector'
|
@ -1,4 +1,6 @@
|
|||||||
require 'observer'
|
require 'observer'
|
||||||
|
require 'singleton'
|
||||||
|
require 'active_model/core'
|
||||||
|
|
||||||
module ActiveModel
|
module ActiveModel
|
||||||
module Observing
|
module Observing
|
||||||
@ -73,7 +75,7 @@ def observed_class
|
|||||||
# Start observing the declared classes and their subclasses.
|
# Start observing the declared classes and their subclasses.
|
||||||
def initialize
|
def initialize
|
||||||
self.observed_classes = self.class.models if self.class.models
|
self.observed_classes = self.class.models if self.class.models
|
||||||
observed_classes.each { |klass| add_observer! klass }
|
observed_classes.each { |klass| klass.add_observer(self) }
|
||||||
end
|
end
|
||||||
|
|
||||||
# Send observed_method(object) if the method exists.
|
# Send observed_method(object) if the method exists.
|
||||||
@ -85,16 +87,12 @@ def update(observed_method, object) #:nodoc:
|
|||||||
# Passes the new subclass.
|
# Passes the new subclass.
|
||||||
def observed_class_inherited(subclass) #:nodoc:
|
def observed_class_inherited(subclass) #:nodoc:
|
||||||
self.class.observe(observed_classes + [subclass])
|
self.class.observe(observed_classes + [subclass])
|
||||||
add_observer!(subclass)
|
subclass.add_observer(self)
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
def observed_classes
|
def observed_classes
|
||||||
@observed_classes ||= [self.class.observed_class]
|
@observed_classes ||= [self.class.observed_class]
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_observer!(klass)
|
|
||||||
klass.add_observer(self)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
@ -1,3 +1,5 @@
|
|||||||
|
require 'active_model/observing'
|
||||||
|
|
||||||
module ActiveModel
|
module ActiveModel
|
||||||
module Validations
|
module Validations
|
||||||
def self.included(base) # :nodoc:
|
def self.included(base) # :nodoc:
|
||||||
|
Loading…
Reference in New Issue
Block a user