217: def build_rails_resource_from_parser_resource(resource)
218: db_resource = nil
219: accumulate_benchmark("Added resources", :initialization) {
220: args = Puppet::Rails::Resource.rails_resource_initial_args(resource)
221:
222: db_resource = self.resources.build(args)
223:
224:
225: db_resource.file = resource.file
226: }
227:
228:
229: accumulate_benchmark("Added resources", :parameters) {
230: resource.each do |param, value|
231: Puppet::Rails::ParamValue.from_parser_param(param, value).each do |value_hash|
232: db_resource.param_values.build(value_hash)
233: end
234: end
235: }
236:
237: accumulate_benchmark("Added resources", :tags) {
238: resource.tags.each { |tag| db_resource.add_resource_tag(tag) }
239: }
240:
241: db_resource.save
242:
243: return db_resource
244: end