Skip to content

Instantly share code, notes, and snippets.

@tatey
Created November 12, 2012 08:52
Show Gist options
  • Save tatey/4058227 to your computer and use it in GitHub Desktop.
Save tatey/4058227 to your computer and use it in GitHub Desktop.
class TeamFactory
class PageValue < OpenStruct.new(:page, :name)
end
def self.build_from_individual_page page, name = nil, builder = self
value = PageValue.new page, name
team = builder.build_team value
team_page = builder.build_team_page value
builder.persist! team, team_page
team
end
def self.build_team value
Team.new name: value.name || "Team #{page.name}"
end
def self.build_team_page value
# ...
end
def self.persist! *args
ActiveRecord::Base.transaction do
args.all &:save!
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment