Я учусь и делаю некоторые упражнения, но я застрял на этом.
it 'Converts a JSON to an object of type recipe' do
recipe = Recipe.from_json('data/pudim.json')
expect(recipe.class).to eq Recipe
expect(recipe.title).to eq 'Pudim'
expect(recipe.description).to eq 'O melhor pudim da sua vida!'
expect(recipe.ingredients).to eq 'Leite condensado, ovos e leite'
expect(recipe.cook_time).to eq 80
expect(recipe.featured).to eq true
end
Требуется, чтобы вы создали метод, чтобы он возвращал JSON-файл, содержащий хэши объектов.
В настоящее время это то, что я сделал:
class Recipe
require 'json'
attr_accessor :title, :description, :ingredients, :cook_time, :featured
def initialize(arr)
@title = arr[:title]
@description = arr[:description]
@ingredients = arr[:ingredients]
@cook_time = arr[:cook_time]
@featured = arr[:featured]
end
def self.from_json(path)
arquivo = File.read(path)
recipe = JSON.parse(arquivo)
end
end
rspec говорит:
Failure/Error: expect(recipe.class).to eq Recipe
expected: Recipe
got: Hash
(compared using ==)
Diff:
@@ -1,2 +1,2 @@
-Recipe
+Hash
Я пробовал много разных способов синтаксического анализа JSON для объектов, но не могу этого сделать, и документация по Ruby выглядит довольно грязно.
Что не так в моем коде?
Кроме того, что является хорошим местом для поиска документации по Ruby, кроме сайта ruby-doc.org?