lib/nilify_blanks/matchers.rb in nilify_blanks-1.2.0 vs lib/nilify_blanks/matchers.rb in nilify_blanks-1.2.1
- old
+ new
@@ -35,14 +35,16 @@
end
end
Kernel.const_get(rspec_module)::Matchers.define :nilify_blanks do |options = {}|
match do |model_instance|
+ options[:types] = options[:types] ? Array.wrap(options[:types]).map(&:to_sym) : NilifyBlanks::ClassMethods::DEFAULT_TYPES
+
model_class = model_instance.class
model_class.define_attribute_methods
model_class.included_modules.include?(NilifyBlanks::InstanceMethods) &&
model_class.respond_to?(:nilify_blanks_columns) &&
- model_class.nilify_blanks_columns == model_class.content_columns.select(&:null).map(&:name).map(&:to_s) &&
+ model_class.nilify_blanks_columns == model_class.content_columns.select(&:null).select {|c| options[:types].include?(c.type) }.map(&:name).map(&:to_s) &&
options.all? {|k, v| model_class.instance_variable_get(:@_nilify_blanks_options)[k] == v }
end
send(failure_message_method) do |_|
"expected to nilify blanks #{options.inspect unless options.empty?}"