Class: Remi::Testing::BusinessRules::DataFieldCollection
- Inherits:
-
Object
- Object
- Remi::Testing::BusinessRules::DataFieldCollection
- Includes:
- Enumerable
- Defined in:
- lib/remi/testing/business_rules.rb
Instance Method Summary collapse
- #[](field_name) ⇒ Object
- #add_field(subject, field_name) ⇒ Object
- #each(&block) ⇒ Object
- #field_names ⇒ Object
-
#initialize ⇒ DataFieldCollection
constructor
A new instance of DataFieldCollection.
- #keys ⇒ Object
- #names ⇒ Object
- #only ⇒ Object
-
#values ⇒ Object
All values get tested as strings.
Constructor Details
#initialize ⇒ DataFieldCollection
Returns a new instance of DataFieldCollection.
414 415 416 |
# File 'lib/remi/testing/business_rules.rb', line 414 def initialize @fields = {} end |
Instance Method Details
#[](field_name) ⇒ Object
418 419 420 |
# File 'lib/remi/testing/business_rules.rb', line 418 def [](field_name) @fields[field_name] end |
#add_field(subject, field_name) ⇒ Object
438 439 440 441 |
# File 'lib/remi/testing/business_rules.rb', line 438 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
422 423 424 |
# File 'lib/remi/testing/business_rules.rb', line 422 def each(&block) @fields.each(&block) end |
#field_names ⇒ Object
434 435 436 |
# File 'lib/remi/testing/business_rules.rb', line 434 def field_names @fields.values.map(&:field_name) end |
#keys ⇒ Object
426 427 428 |
# File 'lib/remi/testing/business_rules.rb', line 426 def keys @fields.keys end |
#names ⇒ Object
430 431 432 |
# File 'lib/remi/testing/business_rules.rb', line 430 def names @fields.values.map(&:name) end |
#only ⇒ Object
443 444 445 446 |
# File 'lib/remi/testing/business_rules.rb', line 443 def only raise "Multiple subject fields defined: #{keys}" if @fields.size > 1 @fields.values.first end |
#values ⇒ Object
All values get tested as strings
449 450 451 |
# File 'lib/remi/testing/business_rules.rb', line 449 def values @fields.map { |field_name, field| field.values.map(&:to_s) }.transpose end |