Commit 0945abece66b5e705db503ac3f2a1d693c9f0b9f

Authored by Rodrigo Souto
1 parent 4c95405b

rails3: define slug based on given name on factories

Showing 1 changed file with 4 additions and 0 deletions   Show diff stats
test/factories.rb
1 module Noosfero::Factory 1 module Noosfero::Factory
2 2
3 def fast_create(name, attrs = {}, options = {}) 3 def fast_create(name, attrs = {}, options = {})
  4 + defaults = defaults_for(name)
  5 + attrs[:slug] = attrs[:name].to_slug if attrs[:name].present? && attrs[:slug].blank? && defaults[:slug].present?
4 data = defaults_for(name.to_s.gsub('::','')).merge(attrs) 6 data = defaults_for(name.to_s.gsub('::','')).merge(attrs)
5 klass = name.to_s.camelize.constantize 7 klass = name.to_s.camelize.constantize
6 if klass.superclass != ActiveRecord::Base 8 if klass.superclass != ActiveRecord::Base
@@ -36,6 +38,8 @@ module Noosfero::Factory @@ -36,6 +38,8 @@ module Noosfero::Factory
36 end 38 end
37 39
38 def build(name, attrs = {}) 40 def build(name, attrs = {})
  41 + defaults = defaults_for(name)
  42 + attrs[:slug] = attrs[:name].to_slug if attrs[:name].present? && attrs[:slug].blank? && defaults[:slug].present?
39 data = defaults_for(name).merge(attrs) 43 data = defaults_for(name).merge(attrs)
40 object = name.to_s.camelize.constantize.new 44 object = name.to_s.camelize.constantize.new
41 data.each { |attribute, value| object.send(attribute.to_s+'=', value) } 45 data.each { |attribute, value| object.send(attribute.to_s+'=', value) }