Class: Remi::BusinessRules::DataFieldCollection

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

Instance Method Summary collapse

Constructor Details

#initializeDataFieldCollection

Returns a new instance of DataFieldCollection.



375
376
377
# File 'lib/remi/cucumber/business_rules.rb', line 375

def initialize
  @fields = {}
end

Instance Method Details

#[](field_name) ⇒ Object



379
380
381
# File 'lib/remi/cucumber/business_rules.rb', line 379

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

#add_field(subject, field_name) ⇒ Object



395
396
397
# File 'lib/remi/cucumber/business_rules.rb', line 395

def add_field(subject, field_name)
  @fields[field_name] = DataField.new(subject.data_obj, field_name) unless @fields.include? field_name
end

#each(&block) ⇒ Object



383
384
385
# File 'lib/remi/cucumber/business_rules.rb', line 383

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

#keysObject



387
388
389
# File 'lib/remi/cucumber/business_rules.rb', line 387

def keys
  @fields.keys
end

#namesObject



391
392
393
# File 'lib/remi/cucumber/business_rules.rb', line 391

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

#onlyObject



399
400
401
402
# File 'lib/remi/cucumber/business_rules.rb', line 399

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

#valuesObject

All values get tested as strings



405
406
407
# File 'lib/remi/cucumber/business_rules.rb', line 405

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