Commit 0945abece66b5e705db503ac3f2a1d693c9f0b9f
1 parent
4c95405b
Exists in
master
and in
27 other branches
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) } |