module Specstar::Models::Matchers
Public Instance Methods
has_association?(model, association)
click to toggle source
# File lib/specstar/models/validations.rb, line 46 def has_association?(model, association) model.class.reflect_on_all_associations.map { |a| a.name.to_s }.include? association.to_s end
has_attribute?(model, attr, extras={})
click to toggle source
# File lib/specstar/models/validations.rb, line 31 def has_attribute?(model, attr, extras={}) attr = attr.to_s result = model.attributes.include? attr if result && extras.any? properties = model.class.columns_hash[attr] extras.each_pair do |property, value| result = false && break unless properties.send(property).to_s == value.to_s end end result end
match?(association, options)
click to toggle source
# File lib/specstar/models/associations.rb, line 8 def match?(association, options) options.each_pair.select do |key, value| association.options[key.to_sym].to_s != value.to_s end.size == 0 end
properties_to_sentence(hash)
click to toggle source
# File lib/specstar/models/attributes.rb, line 36 def properties_to_sentence(hash) " of " + hash.map { |key, value| "#{key} #{value}" }.to_sentence if hash.present? end
undefined_method_in_options(model, options)
click to toggle source
# File lib/specstar/models/validations.rb, line 19 def undefined_method_in_options(model, options) if options[:if] && options[:if].is_a?(Symbol) return options[:if] unless model.respond_to? options[:if] end if options[:unless] && options[:unless].is_a?(Symbol) return options[:unless] unless model.respond_to? options[:unless] end nil end
validate_presence_of_methods_in_options(model, options)
click to toggle source
# File lib/specstar/models/validations.rb, line 7 def validate_presence_of_methods_in_options(model, options) if options[:if] && options[:if].is_a?(Symbol) return false unless model.respond_to? options[:if] end if options[:unless] && options[:unless].is_a?(Symbol) return false unless model.respond_to? options[:unless] end true end