class Cucumber::Salad::Table::Mapping
Attributes
key[RW]
key_transformer[RW]
value_transformer[RW]
Public Class Methods
new(settings = {})
click to toggle source
# File lib/cucumber/salad/table/mapping.rb, line 5 def initialize(settings = {}) self.key = settings[:key] self.value_transformer = transformer(settings[:value_transformer], :pass) self.key_transformer = transformer(settings[:key_transformer], :keyword) end
Public Instance Methods
set(instance, row, key, value)
click to toggle source
# File lib/cucumber/salad/table/mapping.rb, line 11 def set(instance, row, key, value) row[transform_key(instance, key)] = transform_value(instance, value) end
Private Instance Methods
transform_key(_, k)
click to toggle source
# File lib/cucumber/salad/table/mapping.rb, line 19 def transform_key(_, k) key || key_transformer.(k) end
transform_value(instance, value)
click to toggle source
# File lib/cucumber/salad/table/mapping.rb, line 23 def transform_value(instance, value) instance.instance_exec(value, &value_transformer) end
transformer(set, fallback)
click to toggle source
# File lib/cucumber/salad/table/mapping.rb, line 27 def transformer(set, fallback) case set when Symbol Transformations.send(set) when Proc set when nil Transformations.send(fallback) else raise ArgumentError, "can't convert #{set.inspect} to transformer" end end