Sha256: 44db95a40c8a832478871e5c9a3524cebe05e67117ce36b57ef2675dd0c3bc65

Contents?: true

Size: 1.64 KB

Versions: 1

Compression:

Stored size: 1.64 KB

Contents

rspec_module = defined?(RSpec::Core) ? 'RSpec' : 'Spec'  # for RSpec 1 compatability

Kernel.const_get(rspec_module)::Matchers.define :nilify_blanks_for do |column_name, options = {}|
  match do |model_instance|
    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.include?(column_name.to_s) &&
    options.all? {|k, v| model_class.instance_variable_get(:@_nilify_blanks_options)[k] == v }
  end

  failure_message_for_should do |ability|
    "expected to nilify blanks for #{column_name} #{options.inspect unless options.empty?}"
  end

  failure_message_for_should_not do |ability|
    "expected to not nilify blanks for #{column_name} #{options.inspect unless options.empty?}"
  end
end

Kernel.const_get(rspec_module)::Matchers.define :nilify_blanks do |options = {}|
  match do |model_instance|
    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) &&
    options.all? {|k, v| model_class.instance_variable_get(:@_nilify_blanks_options)[k] == v }
  end

  failure_message_for_should do |ability|
    "expected to nilify blanks #{options.inspect unless options.empty?}"
  end

  failure_message_for_should_not do |ability|
    "expected to not nilify blanks #{options.inspect unless options.empty?}"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nilify_blanks-1.1.0 lib/nilify_blanks/matchers.rb