diff options
Diffstat (limited to 'lib/chef_zero/endpoints/cookbook_version_endpoint.rb')
-rw-r--r-- | lib/chef_zero/endpoints/cookbook_version_endpoint.rb | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/chef_zero/endpoints/cookbook_version_endpoint.rb b/lib/chef_zero/endpoints/cookbook_version_endpoint.rb index f1cc22f..8dad508 100644 --- a/lib/chef_zero/endpoints/cookbook_version_endpoint.rb +++ b/lib/chef_zero/endpoints/cookbook_version_endpoint.rb @@ -1,4 +1,4 @@ -require 'json' +require 'ffi_yajl' require 'chef_zero/endpoints/rest_object_endpoint' require 'chef_zero/rest_error_response' require 'chef_zero/chef_data/data_normalizer' @@ -22,16 +22,16 @@ module ChefZero # Honor frozen if existing_cookbook - existing_cookbook_json = JSON.parse(existing_cookbook, :create_additions => false) + existing_cookbook_json = FFI_Yajl::Parser.parse(existing_cookbook, :create_additions => false) if existing_cookbook_json['frozen?'] if request.query_params['force'] != "true" raise RestErrorResponse.new(409, "The cookbook #{name} at version #{version} is frozen. Use the 'force' option to override.") end # For some reason, you are forever unable to modify "frozen?" on a frozen cookbook. - request_body = JSON.parse(request.body, :create_additions => false) + request_body = FFI_Yajl::Parser.parse(request.body, :create_additions => false) if !request_body['frozen?'] request_body['frozen?'] = true - request.body = JSON.pretty_generate(request_body) + request.body = FFI_Yajl::Encoder.encode(request_body, :pretty => true) end end end @@ -71,7 +71,7 @@ module ChefZero def get_checksums(cookbook) result = [] - JSON.parse(cookbook, :create_additions => false).each_pair do |key, value| + FFI_Yajl::Parser.parse(cookbook, :create_additions => false).each_pair do |key, value| if value.is_a?(Array) value.each do |file| if file.is_a?(Hash) && file.has_key?('checksum') @@ -105,9 +105,9 @@ module ChefZero def populate_defaults(request, response_json) # Inject URIs into each cookbook file - cookbook = JSON.parse(response_json, :create_additions => false) + cookbook = FFI_Yajl::Parser.parse(response_json, :create_additions => false) cookbook = ChefData::DataNormalizer.normalize_cookbook(self, request.rest_path[0..1], cookbook, request.rest_path[3], request.rest_path[4], request.base_uri, request.method) - JSON.pretty_generate(cookbook) + FFI_Yajl::Encoder.encode(cookbook, :pretty => true) end def latest_version(versions) |