def cobbler_lifecycle(*args)
methods = args.first
methods.keys.each do |key|
method = methods[key]
case key
when :find_all then
module_eval "def self.find(&block)\nbegin\nbegin_transaction\nrecords = make_call('\#{method}')\nensure\nend_transaction\nend\n\nresult = Array.new\n\nif records\nrecords.each { |record| result << create(record) }\nend\n\nresult.each { |system| yield(system) } if block\n\nreturn result\nend\n"
when :find_one then
module_eval "def self.find_one(name, flatten = false)\nbegin\nbegin_transaction\nrecord = make_call('\#{method}',name,flatten)\nensure\nend_transaction\nend\n\nreturn create(record) unless record.keys.empty?\n\nreturn nil\nend\n"
when :remove then
module_eval "def remove\nbegin\nBase.begin_transaction(true)\ntoken = Base.login\nresult = Base.make_call('\#{method}',name,token)\nensure\nBase.end_transaction\nend\n\nresult\nend\n"
end
end
end