1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Move model naming into ActiveModel

This commit is contained in:
Joshua Peek 2009-06-17 10:37:39 -05:00
parent 85f2f34d5e
commit 1c4d28ba31
15 changed files with 31 additions and 13 deletions

View file

@ -126,6 +126,7 @@ class RenderPartialWithRecordIdentificationController < ActionController::Base
end
class Game < Struct.new(:name, :id)
extend ActiveModel::Naming
def to_param
id.to_s
end

View file

@ -1,6 +1,8 @@
require 'abstract_unit'
class Comment
extend ActiveModel::Naming
attr_reader :id
def save; @id = 1 end
def new_record?; @id.nil? end

View file

@ -4,6 +4,7 @@ class WorkshopsController < ActionController::Base
end
class Workshop
extend ActiveModel::Naming
attr_accessor :id, :new_record
def initialize(id, new_record)

View file

@ -1,4 +1,6 @@
class Customer < Struct.new(:name, :id)
extend ActiveModel::Naming
def to_param
id.to_s
end
@ -12,6 +14,8 @@ end
module Quiz
class Question < Struct.new(:name, :id)
extend ActiveModel::Naming
def to_param
id.to_s
end

View file

@ -1,6 +1,7 @@
require 'abstract_unit'
Scroll = Struct.new(:id, :to_param, :title, :body, :updated_at, :created_at)
Scroll.extend ActiveModel::Naming
class ScrollsController < ActionController::Base
FEEDS = {}

View file

@ -1,8 +1,10 @@
require 'abstract_unit'
Bunny = Struct.new(:Bunny, :id)
Bunny.extend ActiveModel::Naming
class Author
extend ActiveModel::Naming
attr_reader :id
def save; @id = 1 end
def new_record?; @id.nil? end
@ -12,6 +14,7 @@ class Author
end
class Article
extend ActiveModel::Naming
attr_reader :id
attr_reader :author_id
def save; @id = 1; @author_id = 1 end

View file

@ -1,6 +1,7 @@
require 'abstract_unit'
class Post
extend ActiveModel::Naming
def id
45
end

View file

@ -41,6 +41,7 @@ class PeopleHelperTest < ActionView::TestCase
def test_link_to_person
person = mock(:name => "David")
person.class.extend ActiveModel::Naming
expects(:mocha_mock_path).with(person).returns("/people/1")
assert_equal '<a href="/people/1">David</a>', link_to_person(person)
end

View file

@ -494,6 +494,7 @@ class LinkToUnlessCurrentWithControllerTest < ActionView::TestCase
end
class Workshop
extend ActiveModel::Naming
attr_accessor :id, :new_record
def initialize(id, new_record)
@ -510,6 +511,7 @@ class Workshop
end
class Session
extend ActiveModel::Naming
attr_accessor :id, :workshop_id, :new_record
def initialize(id, new_record)

View file

@ -29,6 +29,8 @@ module ActiveModel
autoload :Base, 'active_model/base'
autoload :DeprecatedErrorMethods, 'active_model/deprecated_error_methods'
autoload :Errors, 'active_model/errors'
autoload :Name, 'active_model/naming'
autoload :Naming, 'active_model/naming'
autoload :Observer, 'active_model/observing'
autoload :Observing, 'active_model/observing'
autoload :StateMachine, 'active_model/state_machine'

View file

@ -1,7 +1,7 @@
require 'active_support/inflector'
module ActiveSupport
class ModelName < String
module ActiveModel
class Name < String
attr_reader :singular, :plural, :element, :collection, :partial_path
alias_method :cache_key, :collection
@ -14,12 +14,12 @@ module ActiveSupport
@partial_path = "#{@collection}/#{@element}".freeze
end
end
end
class Module
# Returns an ActiveSupport::ModelName object for module. It can be
# used to retrieve all kinds of naming-related information.
def model_name
@model_name ||= ActiveSupport::ModelName.new(name)
module Naming
# Returns an ActiveModel::Name object for module. It can be
# used to retrieve all kinds of naming-related information.
def model_name
@_model_name ||= ActiveModel::Name.new(name)
end
end
end

View file

@ -1,9 +1,8 @@
require 'abstract_unit'
require 'active_support/core_ext/module/model_naming'
require 'cases/helper'
class ModelNamingTest < Test::Unit::TestCase
class NamingTest < Test::Unit::TestCase
def setup
@model_name = ActiveSupport::ModelName.new('Post::TrackBack')
@model_name = ActiveModel::Name.new('Post::TrackBack')
end
def test_singular

View file

@ -3145,6 +3145,7 @@ module ActiveRecord #:nodoc:
end
Base.class_eval do
extend ActiveModel::Naming
extend QueryCache::ClassMethods
include Validations
include Locking::Optimistic, Locking::Pessimistic

View file

@ -1086,6 +1086,7 @@ module ActiveResource
end
class Base
extend ActiveModel::Naming
include CustomMethods, Validations
end
end

View file

@ -7,5 +7,4 @@ require 'active_support/core_ext/module/attr_internal'
require 'active_support/core_ext/module/attr_accessor_with_default'
require 'active_support/core_ext/module/delegation'
require 'active_support/core_ext/module/loading'
require 'active_support/core_ext/module/model_naming'
require 'active_support/core_ext/module/synchronization'