diff options
| author | Robert | 2017-09-29 17:55:58 +0200 |
|---|---|---|
| committer | Robert | 2017-10-02 10:52:07 +0200 |
| commit | f034dc2999a56295178c64921e6f059adc1a7bd9 (patch) | |
| tree | d9cf98cd0df42e7f776a727e09fefb02499a6d59 /spec/support/data_modifier | |
| parent | ea6537e2f520ca9abba0ca63c68ee42afe08d872 (diff) | |
| download | chouette-core-f034dc2999a56295178c64921e6f059adc1a7bd9.tar.bz2 | |
Refs: #4627@0.75h;
Got some data_modifier support for attribute generation w/w-o defaults for model tests generic_attribute_control
Diffstat (limited to 'spec/support/data_modifier')
| -rw-r--r-- | spec/support/data_modifier/bool.rb | 18 | ||||
| -rw-r--r-- | spec/support/data_modifier/box.rb | 22 | ||||
| -rw-r--r-- | spec/support/data_modifier/enum.rb | 19 |
3 files changed, 59 insertions, 0 deletions
diff --git a/spec/support/data_modifier/bool.rb b/spec/support/data_modifier/bool.rb new file mode 100644 index 000000000..f4be9bd89 --- /dev/null +++ b/spec/support/data_modifier/bool.rb @@ -0,0 +1,18 @@ +require_relative 'box' + +module Support + module DataModifier + + class BoolBox + include Box + attr_reader :value + + def initialize value + @value = value + end + def next + self.class.new(!value) + end + end + end +end diff --git a/spec/support/data_modifier/box.rb b/spec/support/data_modifier/box.rb new file mode 100644 index 000000000..0fb95f743 --- /dev/null +++ b/spec/support/data_modifier/box.rb @@ -0,0 +1,22 @@ +module Support + module DataModifier + module Box + def next + raise "Need to implement #{__method__} in #{self.class}" + end + + class << self + def unbox atts + atts.inject Hash.new do | h, (k,v) | + h.merge(k => value_of(v)) + end + end + def value_of v + self === v ? v.value : v + end + end + end + + end +end + diff --git a/spec/support/data_modifier/enum.rb b/spec/support/data_modifier/enum.rb new file mode 100644 index 000000000..c8a6fe573 --- /dev/null +++ b/spec/support/data_modifier/enum.rb @@ -0,0 +1,19 @@ +require_relative 'box' + +module Support + module DataModifier + + class EnumBox + include Box + attr_reader :value, :values + + def initialize *enum_values + @values = enum_values + @value = @values.first + end + def next + self.class.new(*(@values[1..-1] << @values.first)) + end + end + end +end |
