149: def build_rails_resource_from_parser_resource(resource)
150: db_resource = nil
151: accumulate_benchmark("Added resources", :initialization) {
152: args = Puppet::Rails::Resource.rails_resource_initial_args(resource)
153:
154: db_resource = self.resources.build(args)
155:
156:
157: db_resource.file = resource.file
158: }
159:
160:
161: accumulate_benchmark("Added resources", :parameters) {
162: resource.each do |param, value|
163: Puppet::Rails::ParamValue.from_parser_param(param, value).each do |value_hash|
164: db_resource.param_values.build(value_hash)
165: end
166: end
167: }
168:
169: accumulate_benchmark("Added resources", :tags) {
170: resource.tags.each { |tag| db_resource.add_resource_tag(tag) }
171: }
172:
173: db_resource.save
174:
175: db_resource
176: end