Created
November 12, 2012 08:52
-
-
Save tatey/4058227 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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