Sha256: 532de2746a93e170fc5830f5414a4bb6339bd3baccf8f52648e053d2a0bc3ea0
Contents?: true
Size: 1.35 KB
Versions: 1
Compression:
Stored size: 1.35 KB
Contents
# frozen_string_literal: true require "abstract_unit" require "active_support/core_ext/module/aliasing" module AttributeAliasing class Content attr_accessor :title, :Data def initialize @title, @Data = nil, nil end def title? !title.nil? end def Data? !self.Data.nil? end end class Email < Content alias_attribute :subject, :title alias_attribute :body, :Data end end class AttributeAliasingTest < ActiveSupport::TestCase def test_attribute_alias e = AttributeAliasing::Email.new assert !e.subject? e.title = "Upgrade computer" assert_equal "Upgrade computer", e.subject assert e.subject? e.subject = "We got a long way to go" assert_equal "We got a long way to go", e.title assert e.title? end def test_aliasing_to_uppercase_attributes # Although it's very un-Ruby, some people's AR-mapped tables have # upper-case attributes, and when people want to alias those names # to more sensible ones, everything goes *foof*. e = AttributeAliasing::Email.new assert !e.body? assert !e.Data? e.body = "No, really, this is not a joke." assert_equal "No, really, this is not a joke.", e.Data assert e.Data? e.Data = "Uppercased methods are the suck" assert_equal "Uppercased methods are the suck", e.body assert e.body? end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ruby-on-quails-0.1.0 | activesupport/test/core_ext/module/attribute_aliasing_test.rb |