hangry 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +1 -0
- data/lib/hangry.rb +1 -0
- data/lib/hangry/data_vocabulary_recipe_parser.rb +4 -0
- data/lib/hangry/hrecipe_parser.rb +20 -6
- data/lib/hangry/recipe_parser.rb +3 -1
- data/lib/hangry/schema_org_recipe_parser.rb +4 -0
- data/lib/hangry/version.rb +1 -1
- data/spec/fixtures/{bbc.co.uk.html → hrecipe/bbc.co.uk.html} +0 -0
- data/spec/fixtures/{bigoven.html → hrecipe/bigoven.html} +0 -0
- data/spec/fixtures/hrecipe/campbellskitchen.com.html +1970 -0
- data/spec/fixtures/{cooking.com.html → hrecipe/cooking.com.html} +0 -0
- data/spec/fixtures/{cooks.com.html → hrecipe/cooks.com.html} +0 -0
- data/spec/fixtures/hrecipe/drinksmixer.com.html +604 -0
- data/spec/fixtures/{epicurious.html → hrecipe/epicurious.html} +0 -0
- data/spec/fixtures/hrecipe/grouprecipes.com.html +982 -0
- data/spec/fixtures/hrecipe/homecooking.about.com.html +326 -0
- data/spec/fixtures/hrecipe/jamieoliver.com.html +868 -0
- data/spec/fixtures/hrecipe/mrfood.com.html +4642 -0
- data/spec/fixtures/hrecipe/southernfood.about.com.html +328 -0
- data/spec/fixtures/{tasteofhome.com.html → hrecipe/tasteofhome.com.html} +0 -0
- data/spec/fixtures/{allrecipes.html → schema_org/allrecipes.html} +0 -0
- data/spec/fixtures/{betty_crocker.html → schema_org/betty_crocker.html} +0 -0
- data/spec/fixtures/{copykat.com.html → schema_org/copykat.com.html} +0 -0
- data/spec/fixtures/{chow.com.html → schema_org/data-vocabulary_org/chow.com.html} +0 -0
- data/spec/fixtures/{myrecipes.com.html → schema_org/data-vocabulary_org/myrecipes.com.html} +0 -0
- data/spec/fixtures/{saveur.com.html → schema_org/data-vocabulary_org/saveur.com.html} +0 -0
- data/spec/fixtures/{tarladalal.com.html → schema_org/data-vocabulary_org/tarladalal.com.html} +0 -0
- data/spec/fixtures/{taste.com.au.html → schema_org/data-vocabulary_org/taste.com.au.html} +0 -0
- data/spec/fixtures/{eatingwell.com.html → schema_org/eatingwell.com.html} +0 -0
- data/spec/fixtures/{food.com.html → schema_org/food.com.html} +0 -0
- data/spec/fixtures/{food_network_schema_org.html → schema_org/food_network_schema_org.html} +0 -0
- data/spec/fixtures/{food_network_with_blank_ingredients.html → schema_org/food_network_with_blank_ingredients.html} +0 -0
- data/spec/fixtures/{foodandwine.com.html → schema_org/foodandwine.com.html} +0 -0
- data/spec/fixtures/{heart.org.html → schema_org/heart.org.html} +0 -0
- data/spec/fixtures/{pillsbury.com.html → schema_org/pillsbury.com.html} +0 -0
- data/spec/hangry_spec.rb +1 -0
- data/spec/real_examples/{bbc_co_uk_spec.rb → hrecipe/bbc_co_uk_spec.rb} +2 -1
- data/spec/real_examples/{big_oven_spec.rb → hrecipe/big_oven_spec.rb} +2 -1
- data/spec/real_examples/hrecipe/campbells_kitchen_com_spec.rb +63 -0
- data/spec/real_examples/{cooking_com_spec.rb → hrecipe/cooking_com_spec.rb} +3 -2
- data/spec/real_examples/{cooks_com_spec.rb → hrecipe/cooks_com_spec.rb} +2 -1
- data/spec/real_examples/hrecipe/drinks_mixer_com_spec.rb +57 -0
- data/spec/real_examples/{epicurious_spec.rb → hrecipe/epicurious_spec.rb} +2 -1
- data/spec/real_examples/hrecipe/group_recipes_com_spec.rb +65 -0
- data/spec/real_examples/hrecipe/home_cooking_food_com_spec.rb +79 -0
- data/spec/real_examples/hrecipe/jamie_oliver_com_spec.rb +61 -0
- data/spec/real_examples/hrecipe/mr_food_com_spec.rb +55 -0
- data/spec/real_examples/hrecipe/southern_food_about_com_spec.rb +64 -0
- data/spec/real_examples/{taste_of_home_spec.rb → hrecipe/taste_of_home_spec.rb} +4 -3
- data/spec/real_examples/{all_recipes_spec.rb → schema_org/all_recipes_spec.rb} +2 -1
- data/spec/real_examples/{betty_crocker_spec.rb → schema_org/betty_crocker_spec.rb} +2 -1
- data/spec/real_examples/{copykat_spec.rb → schema_org/copykat_spec.rb} +2 -1
- data/spec/real_examples/{chow_com_spec.rb → schema_org/data-vocabulary_org/chow_com_spec.rb} +2 -1
- data/spec/real_examples/{myrecipes_com_spec.rb → schema_org/data-vocabulary_org/myrecipes_com_spec.rb} +2 -1
- data/spec/real_examples/{saveur_com_spec.rb → schema_org/data-vocabulary_org/saveur_com_spec.rb} +2 -1
- data/spec/real_examples/{tarladalal_com_spec.rb → schema_org/data-vocabulary_org/tarladalal_com_spec.rb} +2 -1
- data/spec/real_examples/{taste_com_au_spec.rb → schema_org/data-vocabulary_org/taste_com_au_spec.rb} +2 -1
- data/spec/real_examples/{eating_well_spec.rb → schema_org/eating_well_spec.rb} +3 -2
- data/spec/real_examples/{food_and_wine_spec.rb → schema_org/food_and_wine_spec.rb} +2 -1
- data/spec/real_examples/{food_com_spec.rb → schema_org/food_com_spec.rb} +2 -1
- data/spec/real_examples/{food_network_spec.rb → schema_org/food_network_spec.rb} +4 -2
- data/spec/real_examples/{heart_org_spec.rb → schema_org/heart_org_spec.rb} +2 -1
- data/spec/real_examples/{pillsbury_spec.rb → schema_org/pillsbury_spec.rb} +2 -1
- metadata +124 -96
|
@@ -3,7 +3,7 @@ require 'hangry'
|
|
|
3
3
|
describe Hangry do
|
|
4
4
|
|
|
5
5
|
context "allrecipes.com recipe" do
|
|
6
|
-
let(:html) { File.read("spec/fixtures/allrecipes.html") }
|
|
6
|
+
let(:html) { File.read("spec/fixtures/schema_org/allrecipes.html") }
|
|
7
7
|
subject { Hangry.parse(html) }
|
|
8
8
|
|
|
9
9
|
it "should use the correct parser" do
|
|
@@ -14,6 +14,7 @@ describe Hangry do
|
|
|
14
14
|
its(:canonical_url) { should == "http://allrecipes.com/recipe/roasted-vegetable-and-couscous-salad/" }
|
|
15
15
|
its(:cook_time) { should == 15 }
|
|
16
16
|
its(:description) { should == "\"This better-for-you main-dish salad is quick, colorful and full of satisfying texture. To explore a variety of grains, substitute 3 cups cooked regular couscous, brown rice or quinoa.\"" }
|
|
17
|
+
its(:image_url) { should == "http://images.media-allrecipes.com/global/recipes/big/230347.jpg" }
|
|
17
18
|
its(:ingredients) {
|
|
18
19
|
should == [
|
|
19
20
|
'3 cups broccoli florets, cut into 1/2-inch pieces',
|
|
@@ -4,13 +4,14 @@ require 'hangry'
|
|
|
4
4
|
describe Hangry do
|
|
5
5
|
|
|
6
6
|
context "bettycrocker.com recipe" do
|
|
7
|
-
let(:html) { File.read("spec/fixtures/betty_crocker.html") }
|
|
7
|
+
let(:html) { File.read("spec/fixtures/schema_org/betty_crocker.html") }
|
|
8
8
|
subject { Hangry.parse(html) }
|
|
9
9
|
|
|
10
10
|
its(:author) { should == nil }
|
|
11
11
|
its(:canonical_url) { should == "http://www.bettycrocker.com/recipes/skillet-chicken-nachos/9bf0c3be-09dd-4b1b-8cf4-a9cfa979b232" }
|
|
12
12
|
its(:cook_time) { should == nil }
|
|
13
13
|
its(:description) { should == "Dinner ready in 20 minutes! Enjoy these delicious nachos spooned with chicken mixture sprinkled with cheese and cilantro - perfect for Mexican cuisine." }
|
|
14
|
+
its(:image_url) { should == 'http://s3.amazonaws.com/gmi-digital-library/da3c4946-0ece-43ca-8c1a-ea95d922985e.jpg' }
|
|
14
15
|
its(:ingredients) {
|
|
15
16
|
should == [
|
|
16
17
|
"1 tablespoon olive or vegetable oil",
|
|
@@ -4,13 +4,14 @@ require 'hangry'
|
|
|
4
4
|
describe Hangry do
|
|
5
5
|
|
|
6
6
|
context "copykat.com recipe" do
|
|
7
|
-
let(:html) { File.read("spec/fixtures/copykat.com.html") }
|
|
7
|
+
let(:html) { File.read("spec/fixtures/schema_org/copykat.com.html") }
|
|
8
8
|
subject { Hangry.parse(html) }
|
|
9
9
|
|
|
10
10
|
its(:author) { should == "Stephanie Manley via CopyKat.com" }
|
|
11
11
|
its(:canonical_url) { should == "http://www.copykat.com/2013/03/13/mcdonalds-shamrock-shake/" }
|
|
12
12
|
its(:cook_time) { should == 10 }
|
|
13
13
|
its(:description) { should == "Make this McDonald's menu item any time of year." }
|
|
14
|
+
its(:image_url) { should == "http://wm9zf27f67bdwwhm.zippykid.netdna-cdn.com/wp-content/uploads/2013/03/McDonalds-Shamrock-Shake-150x100.jpg" }
|
|
14
15
|
its(:ingredients) {
|
|
15
16
|
should == [
|
|
16
17
|
"2 cups vanilla ice cream",
|
data/spec/real_examples/{chow_com_spec.rb → schema_org/data-vocabulary_org/chow_com_spec.rb}
RENAMED
|
@@ -4,13 +4,14 @@ require 'hangry'
|
|
|
4
4
|
describe Hangry do
|
|
5
5
|
|
|
6
6
|
context "chow.com recipe" do
|
|
7
|
-
let(:html) { File.read("spec/fixtures/chow.com.html") }
|
|
7
|
+
let(:html) { File.read("spec/fixtures/schema_org/data-vocabulary_org/chow.com.html") }
|
|
8
8
|
subject { Hangry.parse(html) }
|
|
9
9
|
|
|
10
10
|
its(:author) { should == "Amy Wisniewski" }
|
|
11
11
|
its(:canonical_url) { should == "http://www.chow.com/recipes/30700-strawberry-rhubarb-pie-with-sour-cream-crust" }
|
|
12
12
|
its(:cook_time) { should == nil }
|
|
13
13
|
its(:description) { should == "In this pie, sweet strawberries and tart rhubarb make a harmonious sweet-tart filling. The crust has a bit of richness from sour cream, and though rolling out pie dough can be a challenge, you can manhandle this dough a little without fear of toughening it up. Once the pie is finished baking, be sure to wait until it’s totally cooled to let the filling set, then enjoy with a scoop of ice cream. Special equipment: A 1-inch round cutter is needed to cut out the vents in the top crust of the pie. You’ll also need an instant-read thermometer and a pastry brush for this recipe." }
|
|
14
|
+
its(:image_url) { should == "http://search.chow.com/thumbnail/480/0/www.chow.com/assets/2013/03/30700_RecipeImage_620x413_strawberry_rhubarb_pie2.jpg" }
|
|
14
15
|
its(:ingredients) {
|
|
15
16
|
should == [
|
|
16
17
|
"2 1/2 cups all-purpose flour",
|
|
@@ -4,12 +4,13 @@ require 'hangry'
|
|
|
4
4
|
describe Hangry do
|
|
5
5
|
|
|
6
6
|
context "myrecipes.com recipe" do
|
|
7
|
-
subject { Hangry.parse(File.read("spec/fixtures/myrecipes.com.html")) }
|
|
7
|
+
subject { Hangry.parse(File.read("spec/fixtures/schema_org/data-vocabulary_org/myrecipes.com.html")) }
|
|
8
8
|
|
|
9
9
|
its(:author) { should == "Southern Living" }
|
|
10
10
|
its(:canonical_url) { should == 'http://www.myrecipes.com/recipe/best-carrot-cake-10000000257583/' }
|
|
11
11
|
its(:cook_time) { should == nil }
|
|
12
12
|
its(:description) { should == "" } # not valid HTML to have a p inside of an h2...
|
|
13
|
+
its(:image_url) { should == "http://img4-2.myrecipes.timeinc.net/i/recipes/sl/03142008/carrot-cake-sl-257583-l.jpg" }
|
|
13
14
|
its(:ingredients) {
|
|
14
15
|
should == [
|
|
15
16
|
"2 cups all-purpose flour", "2 teaspoons baking soda", "1/2 teaspoon salt", "2 teaspoons ground cinnamon",
|
data/spec/real_examples/{saveur_com_spec.rb → schema_org/data-vocabulary_org/saveur_com_spec.rb}
RENAMED
|
@@ -4,13 +4,14 @@ require 'hangry'
|
|
|
4
4
|
describe Hangry do
|
|
5
5
|
|
|
6
6
|
context "saveur.com recipe" do
|
|
7
|
-
let(:html) { File.read("spec/fixtures/saveur.com.html") }
|
|
7
|
+
let(:html) { File.read("spec/fixtures/schema_org/data-vocabulary_org/saveur.com.html") }
|
|
8
8
|
subject { Hangry.parse(html) }
|
|
9
9
|
|
|
10
10
|
its(:author) { should == nil }
|
|
11
11
|
its(:canonical_url) { should == "http://www.saveur.com/article/Recipes/Smoked-Trout-Blinis-with-Creme-Fraiche-and-Dill" }
|
|
12
12
|
its(:cook_time) { should == nil }
|
|
13
13
|
its(:description) { should == "Sweet and supple miniature pancakes are topped with flakes of tender smoked trout and sprinkled with cayenne pepper for a touch of invigorating heat. A dollop of cr�me fra�che and a touch of anisey dill balance the fish's smoky intensity." }
|
|
14
|
+
its(:image_url) { should == "http://www2.worldpub.net/images/saveurmag/7-Gallery-One-Bite-Trout-Belinis-500x750.jpg" }
|
|
14
15
|
its(:ingredients) { should == [] }
|
|
15
16
|
its(:name) { should == "Smoked Trout Blinis with Crème Fraîche and Dill" }
|
|
16
17
|
its(:nutrition) do
|
|
@@ -4,13 +4,14 @@ require 'hangry'
|
|
|
4
4
|
describe Hangry do
|
|
5
5
|
|
|
6
6
|
context "tarladalal.com recipe" do
|
|
7
|
-
let(:html) { File.read("spec/fixtures/tarladalal.com.html") }
|
|
7
|
+
let(:html) { File.read("spec/fixtures/schema_org/data-vocabulary_org/tarladalal.com.html") }
|
|
8
8
|
subject { Hangry.parse(html) }
|
|
9
9
|
|
|
10
10
|
its(:author) { should == "Tarla Dalal" }
|
|
11
11
|
its(:canonical_url) { should == nil }
|
|
12
12
|
its(:cook_time) { should == 15 }
|
|
13
13
|
its(:description) { should == "A Jain version of the all-time favourite veggie fried rice!" }
|
|
14
|
+
its(:image_url) { should == "images/recipe/addnewphoto.jpg" }
|
|
14
15
|
its(:ingredients) {
|
|
15
16
|
should == [
|
|
16
17
|
"4 cups 80 % cooked Rice",
|
data/spec/real_examples/{taste_com_au_spec.rb → schema_org/data-vocabulary_org/taste_com_au_spec.rb}
RENAMED
|
@@ -4,13 +4,14 @@ require 'hangry'
|
|
|
4
4
|
describe Hangry do
|
|
5
5
|
|
|
6
6
|
context "taste.com.au recipe" do
|
|
7
|
-
let(:html) { File.read("spec/fixtures/taste.com.au.html") }
|
|
7
|
+
let(:html) { File.read("spec/fixtures/schema_org/data-vocabulary_org/taste.com.au.html") }
|
|
8
8
|
subject { Hangry.parse(html) }
|
|
9
9
|
|
|
10
10
|
its(:author) { should == "Sophia Young" }
|
|
11
11
|
its(:canonical_url) { should == "/recipes/24586/lemon+melting+moments" }
|
|
12
12
|
its(:cook_time) { should == 15 }
|
|
13
13
|
its(:description) { should == "Take a trip down memory lane with these buttery biccies. They're great for teatime or with coffee for your next dinner party." }
|
|
14
|
+
its(:image_url) { should == "http://cdn.taste.com.au/images/recipes/mc/2010/07/24586_l.jpg" }
|
|
14
15
|
its(:ingredients) { should == [] }
|
|
15
16
|
its(:name) { should == "Lemon melting moments" }
|
|
16
17
|
its(:nutrition) do
|
|
@@ -3,8 +3,8 @@ require 'hangry'
|
|
|
3
3
|
|
|
4
4
|
describe Hangry do
|
|
5
5
|
|
|
6
|
-
context "
|
|
7
|
-
let(:html) { File.read("spec/fixtures/eatingwell.com.html") }
|
|
6
|
+
context "eatingwell.com recipe" do
|
|
7
|
+
let(:html) { File.read("spec/fixtures/schema_org/eatingwell.com.html") }
|
|
8
8
|
subject { Hangry.parse(html) }
|
|
9
9
|
|
|
10
10
|
it "should use the correct parser" do
|
|
@@ -15,6 +15,7 @@ describe Hangry do
|
|
|
15
15
|
its(:canonical_url) { should == "http://www.eatingwell.com/recipes/sauteed_chicken_breasts_with_creamy_chive_sauce.html" }
|
|
16
16
|
its(:cook_time) { should == nil }
|
|
17
17
|
its(:description) { should == "Here's a sauce so delicious, it's missing only one thing: a little crunchy bread to dip in it. Make It a Meal: Serve with steamed asparagus or cauliflower, mashed potatoes or orzo pasta, and a glass of Vinho Verde." }
|
|
18
|
+
its(:image_url) { should == "http://assets.eatingwell.com/sites/default/files/imagecache/standard/recipes/MP4834.JPG" }
|
|
18
19
|
its(:ingredients) {
|
|
19
20
|
should == [
|
|
20
21
|
"4 boneless, skinless chicken breasts, (about 1 pound), trimmed of fat",
|
|
@@ -4,13 +4,14 @@ require 'hangry'
|
|
|
4
4
|
describe Hangry do
|
|
5
5
|
|
|
6
6
|
context "foodandwine.com recipe" do
|
|
7
|
-
let(:html) { File.read("spec/fixtures/foodandwine.com.html") }
|
|
7
|
+
let(:html) { File.read("spec/fixtures/schema_org/foodandwine.com.html") }
|
|
8
8
|
subject { Hangry.parse(html) }
|
|
9
9
|
|
|
10
10
|
its(:author) { should == "Grace Parisi" }
|
|
11
11
|
its(:canonical_url) { should == "http://www.foodandwine.com/recipes/honey-glazed-roasted-root-vegetables" }
|
|
12
12
|
its(:cook_time) { should == 25 }
|
|
13
13
|
its(:description) { should == "The secret to this sweet, slightly tangy dish: the touch of sherry vinegar in the glaze." }
|
|
14
|
+
its(:image_url) { should == "/images/sys/fw200711_r_gpbrocrootveg.jpg" }
|
|
14
15
|
its(:ingredients) {
|
|
15
16
|
should == [
|
|
16
17
|
"1 1/4 pounds parsnips, peeled and sliced 1/2 inch thick",
|
|
@@ -4,13 +4,14 @@ require 'hangry'
|
|
|
4
4
|
describe Hangry do
|
|
5
5
|
|
|
6
6
|
context "food.com recipe" do
|
|
7
|
-
let(:html) { File.read("spec/fixtures/food.com.html") }
|
|
7
|
+
let(:html) { File.read("spec/fixtures/schema_org/food.com.html") }
|
|
8
8
|
subject { Hangry.parse(html) }
|
|
9
9
|
|
|
10
10
|
its(:author) { should == "flume027" }
|
|
11
11
|
its(:canonical_url) { should == "http://www.food.com/recipe/panda-express-orange-chicken-103215" }
|
|
12
12
|
its(:cook_time) { should == 30 }
|
|
13
13
|
its(:description) { should == "A copycat recipe from Panda Express. This chicken is tangy and flavorful. Give it a try! I'm sure you and your family will enjoy it." }
|
|
14
|
+
its(:image_url) { should == "http://food.sndimg.com/img/recipes/10/32/15/large/picwNSGHq.jpg" }
|
|
14
15
|
its(:ingredients) {
|
|
15
16
|
should == [
|
|
16
17
|
"2 lbs boneless skinless chicken, chopped into bite sized pieces",
|
|
@@ -3,11 +3,12 @@ require 'hangry'
|
|
|
3
3
|
describe Hangry do
|
|
4
4
|
|
|
5
5
|
context "standard food network recipe" do
|
|
6
|
-
subject { Hangry.parse(File.read("spec/fixtures/food_network_schema_org.html")) }
|
|
6
|
+
subject { Hangry.parse(File.read("spec/fixtures/schema_org/food_network_schema_org.html")) }
|
|
7
7
|
|
|
8
8
|
its(:canonical_url) { should == 'http://www.foodnetwork.com/recipes/rachael-ray/spinach-and-mushroom-stuffed-chicken-breasts-recipe/index.html' }
|
|
9
9
|
its(:cook_time) { should == 20 }
|
|
10
10
|
its(:description) { should == nil }
|
|
11
|
+
its(:image_url) { should == 'http://img.foodnetwork.com/FOOD/2008/08/13/av-rachael-ray.jpg' }
|
|
11
12
|
its(:ingredients) do
|
|
12
13
|
should == [
|
|
13
14
|
"4 boneless, skinless chicken breasts, 6 ounces",
|
|
@@ -53,11 +54,12 @@ Place a mound of stuffing on each breast and wrap and roll breast over the stuff
|
|
|
53
54
|
end
|
|
54
55
|
|
|
55
56
|
context "food network recipe with some blank ingredients" do
|
|
56
|
-
subject { Hangry.parse(File.read("spec/fixtures/food_network_with_blank_ingredients.html")) }
|
|
57
|
+
subject { Hangry.parse(File.read("spec/fixtures/schema_org/food_network_with_blank_ingredients.html")) }
|
|
57
58
|
|
|
58
59
|
its(:canonical_url) { should == 'http://www.foodnetwork.com/recipes/food-network-kitchens/easter-bunny-cake-recipe/index.html' }
|
|
59
60
|
its(:cook_time) { should == nil }
|
|
60
61
|
its(:description) { should == nil }
|
|
62
|
+
its(:image_url) { should == "http://img.foodnetwork.com/FOOD/2013/03/06/FN_kitchens-logo-avatar_s48x48.jpg" }
|
|
61
63
|
its(:ingredients) do
|
|
62
64
|
should == [
|
|
63
65
|
"3 sticks (12 ounces) unsalted butter, at room temperature",
|
|
@@ -4,13 +4,14 @@ require 'hangry'
|
|
|
4
4
|
describe Hangry do
|
|
5
5
|
|
|
6
6
|
context "heart.org recipe" do
|
|
7
|
-
let(:html) { File.read("spec/fixtures/heart.org.html") }
|
|
7
|
+
let(:html) { File.read("spec/fixtures/schema_org/heart.org.html") }
|
|
8
8
|
subject { Hangry.parse(html) }
|
|
9
9
|
|
|
10
10
|
its(:author) { should == nil }
|
|
11
11
|
its(:canonical_url) { should == nil }
|
|
12
12
|
its(:cook_time) { should == nil }
|
|
13
13
|
its(:description) { should == "In this one-skillet supper, we toss dark leafy greens, diced tomatoes and white beans with gnocchi and top it all with gooey mozzarella. Serve with a mixed green salad with vinaigrette." }
|
|
14
|
+
its(:image_url) { should == nil }
|
|
14
15
|
its(:ingredients) { should == [] }
|
|
15
16
|
its(:name) { should == "Skillet Gnocchi with Chard & White Beans" }
|
|
16
17
|
its(:nutrition) do
|
|
@@ -4,13 +4,14 @@ require 'hangry'
|
|
|
4
4
|
describe Hangry do
|
|
5
5
|
|
|
6
6
|
context "pillsbury.com recipe" do
|
|
7
|
-
let(:html) { File.read("spec/fixtures/pillsbury.com.html") }
|
|
7
|
+
let(:html) { File.read("spec/fixtures/schema_org/pillsbury.com.html") }
|
|
8
8
|
subject { Hangry.parse(html) }
|
|
9
9
|
|
|
10
10
|
its(:author) { should == nil }
|
|
11
11
|
its(:canonical_url) { should == "http://www.pillsbury.com/recipes/big-cheesy-pepperoni-hand-pies/a17766e6-30ce-4a0c-af08-72533bb9b449" }
|
|
12
12
|
its(:cook_time) { should == nil }
|
|
13
13
|
its(:description) { should == "Enjoy these cheesy pepperoni hand pies made using Pillsbury® Big & Flaky dinner rolls – a delicious dinner that’s ready in 25 minutes." }
|
|
14
|
+
its(:image_url) { should == 'http://s3.amazonaws.com/gmi-digital-library/6e04c5d1-8b2c-41aa-83e3-7dac9cb3ca40.jpg' }
|
|
14
15
|
its(:ingredients) {
|
|
15
16
|
should == [
|
|
16
17
|
"1 can (12 oz) Pillsbury® Grands ®! Big & Flaky crescent dinner rolls",
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hangry
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.13
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2013-04-
|
|
12
|
+
date: 2013-04-06 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rake
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &70111121427140 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *70111121427140
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: rspec
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &70111121426600 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: '0'
|
|
33
33
|
type: :development
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *70111121426600
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: pry
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &70111121426060 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ! '>='
|
|
@@ -43,10 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '0'
|
|
44
44
|
type: :development
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *70111121426060
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: activesupport
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &70111121425520 !ruby/object:Gem::Requirement
|
|
50
50
|
none: false
|
|
51
51
|
requirements:
|
|
52
52
|
- - ~>
|
|
@@ -54,10 +54,10 @@ dependencies:
|
|
|
54
54
|
version: '3.0'
|
|
55
55
|
type: :runtime
|
|
56
56
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *70111121425520
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: iso8601
|
|
60
|
-
requirement: &
|
|
60
|
+
requirement: &70111121424980 !ruby/object:Gem::Requirement
|
|
61
61
|
none: false
|
|
62
62
|
requirements:
|
|
63
63
|
- - ~>
|
|
@@ -65,10 +65,10 @@ dependencies:
|
|
|
65
65
|
version: 0.4.0
|
|
66
66
|
type: :runtime
|
|
67
67
|
prerelease: false
|
|
68
|
-
version_requirements: *
|
|
68
|
+
version_requirements: *70111121424980
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: nokogiri
|
|
71
|
-
requirement: &
|
|
71
|
+
requirement: &70111121424520 !ruby/object:Gem::Requirement
|
|
72
72
|
none: false
|
|
73
73
|
requirements:
|
|
74
74
|
- - ~>
|
|
@@ -76,7 +76,7 @@ dependencies:
|
|
|
76
76
|
version: '1.5'
|
|
77
77
|
type: :runtime
|
|
78
78
|
prerelease: false
|
|
79
|
-
version_requirements: *
|
|
79
|
+
version_requirements: *70111121424520
|
|
80
80
|
description: A recipe microformat parser.
|
|
81
81
|
email:
|
|
82
82
|
- ian@iancanderson.com
|
|
@@ -105,48 +105,62 @@ files:
|
|
|
105
105
|
- lib/hangry/recipe_parser.rb
|
|
106
106
|
- lib/hangry/schema_org_recipe_parser.rb
|
|
107
107
|
- lib/hangry/version.rb
|
|
108
|
-
- spec/fixtures/
|
|
109
|
-
- spec/fixtures/
|
|
110
|
-
- spec/fixtures/
|
|
111
|
-
- spec/fixtures/
|
|
112
|
-
- spec/fixtures/
|
|
113
|
-
- spec/fixtures/
|
|
114
|
-
- spec/fixtures/
|
|
115
|
-
- spec/fixtures/
|
|
116
|
-
- spec/fixtures/
|
|
117
|
-
- spec/fixtures/
|
|
118
|
-
- spec/fixtures/
|
|
119
|
-
- spec/fixtures/
|
|
120
|
-
- spec/fixtures/
|
|
121
|
-
- spec/fixtures/
|
|
122
|
-
- spec/fixtures/
|
|
123
|
-
- spec/fixtures/
|
|
124
|
-
- spec/fixtures/
|
|
125
|
-
- spec/fixtures/
|
|
126
|
-
- spec/fixtures/
|
|
127
|
-
- spec/fixtures/
|
|
128
|
-
- spec/fixtures/
|
|
108
|
+
- spec/fixtures/hrecipe/bbc.co.uk.html
|
|
109
|
+
- spec/fixtures/hrecipe/bigoven.html
|
|
110
|
+
- spec/fixtures/hrecipe/campbellskitchen.com.html
|
|
111
|
+
- spec/fixtures/hrecipe/cooking.com.html
|
|
112
|
+
- spec/fixtures/hrecipe/cooks.com.html
|
|
113
|
+
- spec/fixtures/hrecipe/drinksmixer.com.html
|
|
114
|
+
- spec/fixtures/hrecipe/epicurious.html
|
|
115
|
+
- spec/fixtures/hrecipe/grouprecipes.com.html
|
|
116
|
+
- spec/fixtures/hrecipe/homecooking.about.com.html
|
|
117
|
+
- spec/fixtures/hrecipe/jamieoliver.com.html
|
|
118
|
+
- spec/fixtures/hrecipe/mrfood.com.html
|
|
119
|
+
- spec/fixtures/hrecipe/southernfood.about.com.html
|
|
120
|
+
- spec/fixtures/hrecipe/tasteofhome.com.html
|
|
121
|
+
- spec/fixtures/schema_org/allrecipes.html
|
|
122
|
+
- spec/fixtures/schema_org/betty_crocker.html
|
|
123
|
+
- spec/fixtures/schema_org/copykat.com.html
|
|
124
|
+
- spec/fixtures/schema_org/data-vocabulary_org/chow.com.html
|
|
125
|
+
- spec/fixtures/schema_org/data-vocabulary_org/myrecipes.com.html
|
|
126
|
+
- spec/fixtures/schema_org/data-vocabulary_org/saveur.com.html
|
|
127
|
+
- spec/fixtures/schema_org/data-vocabulary_org/tarladalal.com.html
|
|
128
|
+
- spec/fixtures/schema_org/data-vocabulary_org/taste.com.au.html
|
|
129
|
+
- spec/fixtures/schema_org/eatingwell.com.html
|
|
130
|
+
- spec/fixtures/schema_org/food.com.html
|
|
131
|
+
- spec/fixtures/schema_org/food_network_schema_org.html
|
|
132
|
+
- spec/fixtures/schema_org/food_network_with_blank_ingredients.html
|
|
133
|
+
- spec/fixtures/schema_org/foodandwine.com.html
|
|
134
|
+
- spec/fixtures/schema_org/heart.org.html
|
|
135
|
+
- spec/fixtures/schema_org/pillsbury.com.html
|
|
129
136
|
- spec/hangry_spec.rb
|
|
130
|
-
- spec/real_examples/
|
|
131
|
-
- spec/real_examples/
|
|
132
|
-
- spec/real_examples/
|
|
133
|
-
- spec/real_examples/
|
|
134
|
-
- spec/real_examples/
|
|
135
|
-
- spec/real_examples/
|
|
136
|
-
- spec/real_examples/
|
|
137
|
-
- spec/real_examples/
|
|
138
|
-
- spec/real_examples/
|
|
139
|
-
- spec/real_examples/
|
|
140
|
-
- spec/real_examples/
|
|
141
|
-
- spec/real_examples/
|
|
142
|
-
- spec/real_examples/
|
|
143
|
-
- spec/real_examples/
|
|
144
|
-
- spec/real_examples/
|
|
145
|
-
- spec/real_examples/
|
|
146
|
-
- spec/real_examples/
|
|
147
|
-
- spec/real_examples/
|
|
148
|
-
- spec/real_examples/
|
|
149
|
-
- spec/real_examples/
|
|
137
|
+
- spec/real_examples/hrecipe/bbc_co_uk_spec.rb
|
|
138
|
+
- spec/real_examples/hrecipe/big_oven_spec.rb
|
|
139
|
+
- spec/real_examples/hrecipe/campbells_kitchen_com_spec.rb
|
|
140
|
+
- spec/real_examples/hrecipe/cooking_com_spec.rb
|
|
141
|
+
- spec/real_examples/hrecipe/cooks_com_spec.rb
|
|
142
|
+
- spec/real_examples/hrecipe/drinks_mixer_com_spec.rb
|
|
143
|
+
- spec/real_examples/hrecipe/epicurious_spec.rb
|
|
144
|
+
- spec/real_examples/hrecipe/group_recipes_com_spec.rb
|
|
145
|
+
- spec/real_examples/hrecipe/home_cooking_food_com_spec.rb
|
|
146
|
+
- spec/real_examples/hrecipe/jamie_oliver_com_spec.rb
|
|
147
|
+
- spec/real_examples/hrecipe/mr_food_com_spec.rb
|
|
148
|
+
- spec/real_examples/hrecipe/southern_food_about_com_spec.rb
|
|
149
|
+
- spec/real_examples/hrecipe/taste_of_home_spec.rb
|
|
150
|
+
- spec/real_examples/schema_org/all_recipes_spec.rb
|
|
151
|
+
- spec/real_examples/schema_org/betty_crocker_spec.rb
|
|
152
|
+
- spec/real_examples/schema_org/copykat_spec.rb
|
|
153
|
+
- spec/real_examples/schema_org/data-vocabulary_org/chow_com_spec.rb
|
|
154
|
+
- spec/real_examples/schema_org/data-vocabulary_org/myrecipes_com_spec.rb
|
|
155
|
+
- spec/real_examples/schema_org/data-vocabulary_org/saveur_com_spec.rb
|
|
156
|
+
- spec/real_examples/schema_org/data-vocabulary_org/tarladalal_com_spec.rb
|
|
157
|
+
- spec/real_examples/schema_org/data-vocabulary_org/taste_com_au_spec.rb
|
|
158
|
+
- spec/real_examples/schema_org/eating_well_spec.rb
|
|
159
|
+
- spec/real_examples/schema_org/food_and_wine_spec.rb
|
|
160
|
+
- spec/real_examples/schema_org/food_com_spec.rb
|
|
161
|
+
- spec/real_examples/schema_org/food_network_spec.rb
|
|
162
|
+
- spec/real_examples/schema_org/heart_org_spec.rb
|
|
163
|
+
- spec/real_examples/schema_org/pillsbury_spec.rb
|
|
150
164
|
homepage: https://github.com/iancanderson/hangry
|
|
151
165
|
licenses: []
|
|
152
166
|
post_install_message:
|
|
@@ -172,45 +186,59 @@ signing_key:
|
|
|
172
186
|
specification_version: 3
|
|
173
187
|
summary: Parses microformatted recipe HTML into a plain-old-ruby Recipe object.
|
|
174
188
|
test_files:
|
|
175
|
-
- spec/fixtures/
|
|
176
|
-
- spec/fixtures/
|
|
177
|
-
- spec/fixtures/
|
|
178
|
-
- spec/fixtures/
|
|
179
|
-
- spec/fixtures/
|
|
180
|
-
- spec/fixtures/
|
|
181
|
-
- spec/fixtures/
|
|
182
|
-
- spec/fixtures/
|
|
183
|
-
- spec/fixtures/
|
|
184
|
-
- spec/fixtures/
|
|
185
|
-
- spec/fixtures/
|
|
186
|
-
- spec/fixtures/
|
|
187
|
-
- spec/fixtures/
|
|
188
|
-
- spec/fixtures/
|
|
189
|
-
- spec/fixtures/
|
|
190
|
-
- spec/fixtures/
|
|
191
|
-
- spec/fixtures/
|
|
192
|
-
- spec/fixtures/
|
|
193
|
-
- spec/fixtures/
|
|
194
|
-
- spec/fixtures/
|
|
195
|
-
- spec/fixtures/
|
|
189
|
+
- spec/fixtures/hrecipe/bbc.co.uk.html
|
|
190
|
+
- spec/fixtures/hrecipe/bigoven.html
|
|
191
|
+
- spec/fixtures/hrecipe/campbellskitchen.com.html
|
|
192
|
+
- spec/fixtures/hrecipe/cooking.com.html
|
|
193
|
+
- spec/fixtures/hrecipe/cooks.com.html
|
|
194
|
+
- spec/fixtures/hrecipe/drinksmixer.com.html
|
|
195
|
+
- spec/fixtures/hrecipe/epicurious.html
|
|
196
|
+
- spec/fixtures/hrecipe/grouprecipes.com.html
|
|
197
|
+
- spec/fixtures/hrecipe/homecooking.about.com.html
|
|
198
|
+
- spec/fixtures/hrecipe/jamieoliver.com.html
|
|
199
|
+
- spec/fixtures/hrecipe/mrfood.com.html
|
|
200
|
+
- spec/fixtures/hrecipe/southernfood.about.com.html
|
|
201
|
+
- spec/fixtures/hrecipe/tasteofhome.com.html
|
|
202
|
+
- spec/fixtures/schema_org/allrecipes.html
|
|
203
|
+
- spec/fixtures/schema_org/betty_crocker.html
|
|
204
|
+
- spec/fixtures/schema_org/copykat.com.html
|
|
205
|
+
- spec/fixtures/schema_org/data-vocabulary_org/chow.com.html
|
|
206
|
+
- spec/fixtures/schema_org/data-vocabulary_org/myrecipes.com.html
|
|
207
|
+
- spec/fixtures/schema_org/data-vocabulary_org/saveur.com.html
|
|
208
|
+
- spec/fixtures/schema_org/data-vocabulary_org/tarladalal.com.html
|
|
209
|
+
- spec/fixtures/schema_org/data-vocabulary_org/taste.com.au.html
|
|
210
|
+
- spec/fixtures/schema_org/eatingwell.com.html
|
|
211
|
+
- spec/fixtures/schema_org/food.com.html
|
|
212
|
+
- spec/fixtures/schema_org/food_network_schema_org.html
|
|
213
|
+
- spec/fixtures/schema_org/food_network_with_blank_ingredients.html
|
|
214
|
+
- spec/fixtures/schema_org/foodandwine.com.html
|
|
215
|
+
- spec/fixtures/schema_org/heart.org.html
|
|
216
|
+
- spec/fixtures/schema_org/pillsbury.com.html
|
|
196
217
|
- spec/hangry_spec.rb
|
|
197
|
-
- spec/real_examples/
|
|
198
|
-
- spec/real_examples/
|
|
199
|
-
- spec/real_examples/
|
|
200
|
-
- spec/real_examples/
|
|
201
|
-
- spec/real_examples/
|
|
202
|
-
- spec/real_examples/
|
|
203
|
-
- spec/real_examples/
|
|
204
|
-
- spec/real_examples/
|
|
205
|
-
- spec/real_examples/
|
|
206
|
-
- spec/real_examples/
|
|
207
|
-
- spec/real_examples/
|
|
208
|
-
- spec/real_examples/
|
|
209
|
-
- spec/real_examples/
|
|
210
|
-
- spec/real_examples/
|
|
211
|
-
- spec/real_examples/
|
|
212
|
-
- spec/real_examples/
|
|
213
|
-
- spec/real_examples/
|
|
214
|
-
- spec/real_examples/
|
|
215
|
-
- spec/real_examples/
|
|
216
|
-
- spec/real_examples/
|
|
218
|
+
- spec/real_examples/hrecipe/bbc_co_uk_spec.rb
|
|
219
|
+
- spec/real_examples/hrecipe/big_oven_spec.rb
|
|
220
|
+
- spec/real_examples/hrecipe/campbells_kitchen_com_spec.rb
|
|
221
|
+
- spec/real_examples/hrecipe/cooking_com_spec.rb
|
|
222
|
+
- spec/real_examples/hrecipe/cooks_com_spec.rb
|
|
223
|
+
- spec/real_examples/hrecipe/drinks_mixer_com_spec.rb
|
|
224
|
+
- spec/real_examples/hrecipe/epicurious_spec.rb
|
|
225
|
+
- spec/real_examples/hrecipe/group_recipes_com_spec.rb
|
|
226
|
+
- spec/real_examples/hrecipe/home_cooking_food_com_spec.rb
|
|
227
|
+
- spec/real_examples/hrecipe/jamie_oliver_com_spec.rb
|
|
228
|
+
- spec/real_examples/hrecipe/mr_food_com_spec.rb
|
|
229
|
+
- spec/real_examples/hrecipe/southern_food_about_com_spec.rb
|
|
230
|
+
- spec/real_examples/hrecipe/taste_of_home_spec.rb
|
|
231
|
+
- spec/real_examples/schema_org/all_recipes_spec.rb
|
|
232
|
+
- spec/real_examples/schema_org/betty_crocker_spec.rb
|
|
233
|
+
- spec/real_examples/schema_org/copykat_spec.rb
|
|
234
|
+
- spec/real_examples/schema_org/data-vocabulary_org/chow_com_spec.rb
|
|
235
|
+
- spec/real_examples/schema_org/data-vocabulary_org/myrecipes_com_spec.rb
|
|
236
|
+
- spec/real_examples/schema_org/data-vocabulary_org/saveur_com_spec.rb
|
|
237
|
+
- spec/real_examples/schema_org/data-vocabulary_org/tarladalal_com_spec.rb
|
|
238
|
+
- spec/real_examples/schema_org/data-vocabulary_org/taste_com_au_spec.rb
|
|
239
|
+
- spec/real_examples/schema_org/eating_well_spec.rb
|
|
240
|
+
- spec/real_examples/schema_org/food_and_wine_spec.rb
|
|
241
|
+
- spec/real_examples/schema_org/food_com_spec.rb
|
|
242
|
+
- spec/real_examples/schema_org/food_network_spec.rb
|
|
243
|
+
- spec/real_examples/schema_org/heart_org_spec.rb
|
|
244
|
+
- spec/real_examples/schema_org/pillsbury_spec.rb
|