Sha256: d8a3d013934b2f0049519dcfc65cb042c356ca60ac1b4f899b6b03537db72551

Contents?: true

Size: 814 Bytes

Versions: 15

Compression:

Stored size: 814 Bytes

Contents

class Hash
  def sort_by_key(&block)
    self.keys.sort(&block).reduce({}) do |seed, key|
      seed[key] = self[key]
      if seed[key].is_a?(Hash)
        seed[key] = seed[key].sort_by_key(&block)
      elsif seed[key].is_a?(Array)
        seed[key] = seed[key].map { |i| i.sort_by_key(&block) }
      end
      seed
    end
  end
end

Then /^the file "(.*?)" should contain JSON:$/ do |file, data|
  target = JSON.pretty_generate(JSON.parse(data).sort_by_key)
  actual = JSON.pretty_generate(JSON.parse(File.read(File.join(current_dir, file))).sort_by_key)

  expect(actual).to eq(target)
end

Then /^the output should contain JSON:$/ do |data|
  target = JSON.pretty_generate(JSON.parse(data).sort_by_key)
  actual = JSON.pretty_generate(JSON.parse(all_output).sort_by_key)

  expect(actual).to eq(target)
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
berkshelf-2.0.18 features/step_definitions/json_steps.rb
berkshelf-2.0.17 features/step_definitions/json_steps.rb
berkshelf-2.0.16 features/step_definitions/json_steps.rb
berkshelf-2.0.15 features/step_definitions/json_steps.rb
berkshelf-2.0.14 features/step_definitions/json_steps.rb
berkshelf-2.0.13 features/step_definitions/json_steps.rb
berkshelf-2.0.12 features/step_definitions/json_steps.rb
berkshelf-2.0.11 features/step_definitions/json_steps.rb
berkshelf-2.0.10 features/step_definitions/json_steps.rb
berkshelf-2.0.9 features/step_definitions/json_steps.rb
berkshelf-2.0.8 features/step_definitions/json_steps.rb
berkshelf-2.0.7 features/step_definitions/json_steps.rb
berkshelf-2.0.6 features/step_definitions/json_steps.rb
berkshelf-2.0.5 features/step_definitions/json_steps.rb
berkshelf-2.0.4 features/step_definitions/json_steps.rb