Class: Remi::Testing::BusinessRules::DataFieldCollection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/remi/testing/business_rules.rb

Instance Method Summary collapse

Constructor Details

#initializeDataFieldCollection



408
409
410
# File 'lib/remi/testing/business_rules.rb', line 408

def initialize
  @fields = {}
end

Instance Method Details

#[](field_name) ⇒ Object



412
413
414
# File 'lib/remi/testing/business_rules.rb', line 412

def [](field_name)
  @fields[field_name]
end

#add_field(subject, field_name) ⇒ Object



432
433
434
435
# File 'lib/remi/testing/business_rules.rb', line 432

def add_field(subject, field_name)
  raise "Attempting to add a field with the same name but different subject - #{subject.name}: #{field_name}" if @fields.include?(field_name) && @fields[field_name].subject.name != subject.name
  @fields[field_name] = DataField.new(subject, field_name) unless @fields.include? field_name
end

#each(&block) ⇒ Object



416
417
418
# File 'lib/remi/testing/business_rules.rb', line 416

def each(&block)
  @fields.each(&block)
end

#field_namesObject



428
429
430
# File 'lib/remi/testing/business_rules.rb', line 428

def field_names
  @fields.values.map(&:field_name)
end

#keysObject



420
421
422
# File 'lib/remi/testing/business_rules.rb', line 420

def keys
  @fields.keys
end

#namesObject



424
425
426
# File 'lib/remi/testing/business_rules.rb', line 424

def names
  @fields.values.map(&:name)
end

#onlyObject



437
438
439
440
# File 'lib/remi/testing/business_rules.rb', line 437

def only
  raise "Multiple subject fields defined: #{keys}" if @fields.size > 1
  @fields.values.first
end

#valuesObject

All values get tested as strings



443
444
445
# File 'lib/remi/testing/business_rules.rb', line 443

def values
  @fields.map { |field_name, field| field.values.map(&:to_s) }.transpose
end