class Datum::Datum
Datum
is an Immutable Struct to be used for creating test cases. @!attribute [r] datum_id
The index of the test case and the data from it's Datum @return [Fixnum]
@!attribute [r] test_method_name
The name of the test case generated @return [String]
@!attribute [r] container
The Container reference which generated this Datum and test case @return [Container]
Public Class Methods
key(test_instance, test_name)
click to toggle source
@!visibility private Creates a Hash key formatted for use with a Datum
@param [TestCase] test_instance The TestCase instance for the test @param [String] test_name The name of the test @return [String] Datum
compatible Hash key
# File lib/datum/datum.rb, line 22 def self.key test_instance, test_name Helpers.build_key(test_instance, test_name) end
new(*attrs, &block)
click to toggle source
@!visibility private
Calls superclass method
Plan9::ImprovedStruct::new
# File lib/datum/datum.rb, line 27 def self.new(*attrs, &block) attrs.push "datum_id" super(*attrs, &block) end
new(*atrs)
click to toggle source
@!visibility private
# File lib/datum/datum.rb, line 55 def initialize(*atrs) dtm_id = configure_attributes is_hash_case?(*atrs) ? atrs.first[:datum_id] = dtm_id : atrs.push(dtm_id) datum_initialize(*atrs) end
Protected Class Methods
init_new(struct)
click to toggle source
Calls superclass method
Plan9::ImmutableStruct::init_new
# File lib/datum/datum.rb, line 34 def self.init_new(struct) super(struct) datumize_constructor!(struct) struct end
Private Class Methods
datumize_constructor!(struct)
click to toggle source
# File lib/datum/datum.rb, line 41 def self.datumize_constructor! struct struct.class_eval do alias_method :datum_initialize, :initialize # @!attribute [r] test_method_name # @return [String] The name of the test method attr_reader :test_method_name # @!attribute [r] container # @return [Container] A reference to the Container of this Datum attr_reader :container # @!visibility private def initialize(*atrs) dtm_id = configure_attributes is_hash_case?(*atrs) ? atrs.first[:datum_id] = dtm_id : atrs.push(dtm_id) datum_initialize(*atrs) end private def configure_attributes @container = ::Datum.send(:current_container) (dtm_id, @test_method_name = @container.send(:add_datum, self))[0] end end end
Private Instance Methods
configure_attributes()
click to toggle source
# File lib/datum/datum.rb, line 62 def configure_attributes @container = ::Datum.send(:current_container) (dtm_id, @test_method_name = @container.send(:add_datum, self))[0] end