Sha256: 46633e876aa62efa641a1853d8a1a64d4a7c9b5d615cd16cb38a266a1bfea924

Contents?: true

Size: 1.57 KB

Versions: 48

Compression:

Stored size: 1.57 KB

Contents

# frozen_string_literal: true

require "active_model"

Customer = Struct.new(:name, :id) do
  extend ActiveModel::Naming
  include ActiveModel::Conversion

  undef_method :to_json

  def to_xml(options = {})
    if options[:builder]
      options[:builder].name name
    else
      "<name>#{name}</name>"
    end
  end

  def to_js(options = {})
    "name: #{name.inspect}"
  end
  alias :to_text :to_js

  def errors
    []
  end

  def persisted?
    id.present?
  end

  def cache_key
    "#{name}/#{id}"
  end
end

Post = Struct.new(:title, :author_name, :body, :secret, :persisted, :written_on, :cost) do
  extend ActiveModel::Naming
  include ActiveModel::Conversion
  extend ActiveModel::Translation

  alias_method :secret?, :secret
  alias_method :persisted?, :persisted

  def initialize(*args)
    super
    @persisted = false
  end

  attr_accessor :author
  def author_attributes=(attributes); end

  attr_accessor :comments, :comment_ids
  def comments_attributes=(attributes); end

  attr_accessor :tags
  def tags_attributes=(attributes); end
end

class Comment
  extend ActiveModel::Naming
  include ActiveModel::Conversion

  attr_reader :id
  attr_reader :post_id
  def initialize(id = nil, post_id = nil); @id, @post_id = id, post_id end
  def to_key; id ? [id] : nil end
  def save; @id = 1; @post_id = 1 end
  def persisted?; @id.present? end
  def to_param; @id.to_s; end
  def name
    @id.nil? ? "new #{self.class.name.downcase}" : "#{self.class.name.downcase} ##{@id}"
  end

  attr_accessor :relevances
  def relevances_attributes=(attributes); end

  attr_accessor :body
end

Version data entries

48 entries across 48 versions & 2 rubygems

Version Path
jets-1.9.7 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.9.6 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.9.5 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.9.4 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.9.3 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.9.2 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.9.1 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.9.0 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.8.14 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.8.13 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.8.12 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.8.11 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.8.10 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.8.9 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.8.8 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.8.7 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.8.6 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.8.5 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.8.4 vendor/rails/actionpack/test/lib/controller/fake_models.rb
jets-1.8.3 vendor/rails/actionpack/test/lib/controller/fake_models.rb