masticate 0.1.3 → 0.1.5

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.
package/lib/attributes.js CHANGED
@@ -4,27 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Attributes = exports.AttributeCleaner = void 0;
7
-
8
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
9
-
7
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
10
8
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
11
-
12
9
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
13
-
14
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
15
-
10
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
16
11
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17
-
18
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
19
-
12
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
20
13
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
21
-
22
- var Attributes = /*#__PURE__*/function () {
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
15
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
+ var Attributes = exports.Attributes = /*#__PURE__*/function () {
23
17
  function Attributes() {
24
18
  _classCallCheck(this, Attributes);
25
19
  }
26
-
27
- _createClass(Attributes, null, [{
20
+ return _createClass(Attributes, null, [{
28
21
  key: "RECIPE_ATTRIBUTES",
29
22
  get: function get() {
30
23
  return ["author", "canonical_url", "cook_time", "description", "image_url", "ingredients", "instructions", "name", "nutrition", "prep_time", "published_date", "total_time", "yield"];
@@ -35,25 +28,17 @@ var Attributes = /*#__PURE__*/function () {
35
28
  return ["calories", "cholesterol", "fiber", "protein", "saturated_fat", "sodium", "sugar", "total_carbohydrates", "total_fat", "trans_fat", "unsaturated_fat"];
36
29
  }
37
30
  }]);
38
-
39
- return Attributes;
40
31
  }();
41
-
42
- exports.Attributes = Attributes;
43
-
44
- var AttributeCleaner = /*#__PURE__*/function () {
32
+ var AttributeCleaner = exports.AttributeCleaner = /*#__PURE__*/function () {
45
33
  function AttributeCleaner(recipe) {
46
34
  _classCallCheck(this, AttributeCleaner);
47
-
48
35
  this.recipe = recipe;
49
36
  }
50
-
51
- _createClass(AttributeCleaner, [{
37
+ return _createClass(AttributeCleaner, [{
52
38
  key: "clean",
53
39
  value: function clean() {
54
40
  var _iterator = _createForOfIteratorHelper(Attributes.RECIPE_ATTRIBUTES),
55
- _step;
56
-
41
+ _step;
57
42
  try {
58
43
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
59
44
  var attr = _step.value;
@@ -67,23 +52,19 @@ var AttributeCleaner = /*#__PURE__*/function () {
67
52
  } finally {
68
53
  _iterator.f();
69
54
  }
70
-
71
55
  return this.recipe;
72
56
  }
73
57
  }, {
74
58
  key: "clean_value",
75
59
  value: function clean_value(value, options) {
76
60
  var self = this;
77
-
78
61
  switch (_typeof(value)) {
79
62
  case 'string':
80
63
  return this.clean_string(value, options);
81
-
82
64
  case 'array':
83
65
  return value.map(function (s) {
84
66
  return self.clean_string(s, options);
85
67
  });
86
-
87
68
  default:
88
69
  return value;
89
70
  }
@@ -93,18 +74,16 @@ var AttributeCleaner = /*#__PURE__*/function () {
93
74
  value: function clean_string(value, options) {
94
75
  var opts = Object.assign({
95
76
  "preserve_newlines": false
96
- }, options); // Remove leading and trailing spaces
77
+ }, options);
97
78
 
79
+ // Remove leading and trailing spaces
98
80
  var val = value.trim();
99
-
100
81
  if (opts["preserve_newlines"]) {
101
82
  val = val.replace(/\s*\n\s*/g, "\n"); // replace any whitespace group with a newline with a single newline
102
-
103
83
  val = val.replace(/[ ]+/g, " "); // consolidate duplicate spaces into a single space
104
84
  } else {
105
85
  val = val.replace(/\s+/g, ' '); // replace all consecutive whitespace with a single space
106
86
  }
107
-
108
87
  return val;
109
88
  }
110
89
  }], [{
@@ -113,8 +92,4 @@ var AttributeCleaner = /*#__PURE__*/function () {
113
92
  return ["instructions"];
114
93
  }
115
94
  }]);
116
-
117
- return AttributeCleaner;
118
- }();
119
-
120
- exports.AttributeCleaner = AttributeCleaner;
95
+ }();
@@ -4,27 +4,21 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.CanonicalUrlParser = void 0;
7
-
8
7
  var _urijs = _interopRequireDefault(require("urijs"));
9
-
10
8
  var _cheerio = _interopRequireDefault(require("cheerio"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
-
10
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
14
11
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15
-
16
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
17
-
12
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
18
13
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
19
-
20
- var CanonicalUrlParser = /*#__PURE__*/function () {
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
15
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
+ var CanonicalUrlParser = exports.CanonicalUrlParser = /*#__PURE__*/function () {
21
17
  function CanonicalUrlParser(doc) {
22
18
  _classCallCheck(this, CanonicalUrlParser);
23
-
24
19
  this.doc = doc;
25
20
  }
26
-
27
- _createClass(CanonicalUrlParser, [{
21
+ return _createClass(CanonicalUrlParser, [{
28
22
  key: "canonical_domain",
29
23
  get: function get() {
30
24
  var url = this.canonical_url;
@@ -45,8 +39,4 @@ var CanonicalUrlParser = /*#__PURE__*/function () {
45
39
  return node.length ? node.attr("content") : null;
46
40
  }
47
41
  }]);
48
-
49
- return CanonicalUrlParser;
50
- }();
51
-
52
- exports.CanonicalUrlParser = CanonicalUrlParser;
42
+ }();
@@ -1,48 +1,31 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
-
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.DataVocabularyRecipeParser = void 0;
9
-
10
8
  var _schema_org_recipe_parser = _interopRequireDefault(require("schema_org_recipe_parser"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
-
14
10
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15
-
16
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
17
-
11
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
18
12
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
19
-
20
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
21
-
22
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
23
-
24
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
25
-
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
14
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
26
16
  function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
27
-
28
17
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
29
-
30
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
31
-
32
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
33
-
34
- var DataVocabularyRecipeParser = /*#__PURE__*/function (_SchemaOrgRecipeParse) {
35
- _inherits(DataVocabularyRecipeParser, _SchemaOrgRecipeParse);
36
-
37
- var _super = _createSuper(DataVocabularyRecipeParser);
38
-
18
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
19
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
20
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
21
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
22
+ var DataVocabularyRecipeParser = exports.DataVocabularyRecipeParser = /*#__PURE__*/function (_SchemaOrgRecipeParse) {
39
23
  function DataVocabularyRecipeParser() {
40
24
  _classCallCheck(this, DataVocabularyRecipeParser);
41
-
42
- return _super.apply(this, arguments);
25
+ return _callSuper(this, DataVocabularyRecipeParser, arguments);
43
26
  }
44
-
45
- _createClass(DataVocabularyRecipeParser, [{
27
+ _inherits(DataVocabularyRecipeParser, _SchemaOrgRecipeParse);
28
+ return _createClass(DataVocabularyRecipeParser, [{
46
29
  key: "parse_description",
47
30
  value: function parse_description() {
48
31
  return this.node_with_itemprop("summary").text();
@@ -92,8 +75,4 @@ var DataVocabularyRecipeParser = /*#__PURE__*/function (_SchemaOrgRecipeParse) {
92
75
  return "ingredient";
93
76
  }
94
77
  }]);
95
-
96
- return DataVocabularyRecipeParser;
97
- }(_schema_org_recipe_parser["default"]);
98
-
99
- exports.DataVocabularyRecipeParser = DataVocabularyRecipeParser;
78
+ }(_schema_org_recipe_parser["default"]);
@@ -1,52 +1,33 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
-
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.HRecipeParser = void 0;
9
-
10
8
  var _recipe = require("./recipe");
11
-
12
9
  var _html_recipe_parser = require("./html_recipe_parser");
13
-
14
10
  var _cheerio = _interopRequireDefault(require("cheerio"));
15
-
16
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
-
18
12
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
19
-
20
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
21
-
13
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
22
14
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
23
-
24
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
25
-
26
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
27
-
28
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
29
-
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
16
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
30
18
  function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
31
-
32
19
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
33
-
34
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
35
-
36
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
37
-
38
- var HRecipeParser = /*#__PURE__*/function (_HtmlRecipeParser) {
39
- _inherits(HRecipeParser, _HtmlRecipeParser);
40
-
41
- var _super = _createSuper(HRecipeParser);
42
-
20
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
21
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
22
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
23
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
24
+ var HRecipeParser = exports.HRecipeParser = /*#__PURE__*/function (_HtmlRecipeParser) {
43
25
  function HRecipeParser() {
44
26
  _classCallCheck(this, HRecipeParser);
45
-
46
- return _super.apply(this, arguments);
27
+ return _callSuper(this, HRecipeParser, arguments);
47
28
  }
48
-
49
- _createClass(HRecipeParser, [{
29
+ _inherits(HRecipeParser, _HtmlRecipeParser);
30
+ return _createClass(HRecipeParser, [{
50
31
  key: "nodes_with_class",
51
32
  value: function nodes_with_class(klass) {
52
33
  return this.recipe_node.find(".".concat(klass));
@@ -60,12 +41,10 @@ var HRecipeParser = /*#__PURE__*/function (_HtmlRecipeParser) {
60
41
  key: "title_value_for_css_class",
61
42
  value: function title_value_for_css_class(klass) {
62
43
  var nodes = this.node_with_class(klass);
63
-
64
44
  if (nodes.length) {
65
45
  var node = (0, _cheerio["default"])(nodes.find(".value-title").first());
66
46
  return node.attr("title");
67
47
  }
68
-
69
48
  return null;
70
49
  }
71
50
  }, {
@@ -78,11 +57,9 @@ var HRecipeParser = /*#__PURE__*/function (_HtmlRecipeParser) {
78
57
  key: "parse_cook_time",
79
58
  value: function parse_cook_time() {
80
59
  var val = this.title_value_for_css_class("cookTime");
81
-
82
60
  if (!val) {
83
61
  val = this.title_value_for_css_class("cooktime");
84
62
  }
85
-
86
63
  return this.parse_duration(val);
87
64
  }
88
65
  }, {
@@ -114,14 +91,12 @@ var HRecipeParser = /*#__PURE__*/function (_HtmlRecipeParser) {
114
91
  value: function parse_instructions() {
115
92
  var inst = "";
116
93
  var nodes = this.nodes_with_class("instructions");
117
-
118
94
  if (nodes.length) {
119
95
  nodes.each(function (i, node) {
120
96
  var $node = (0, _cheerio["default"])(node);
121
97
  inst += $node.text() + "\n";
122
98
  });
123
99
  }
124
-
125
100
  return inst ? inst : null;
126
101
  }
127
102
  }, {
@@ -140,11 +115,9 @@ var HRecipeParser = /*#__PURE__*/function (_HtmlRecipeParser) {
140
115
  key: "parse_prep_time",
141
116
  value: function parse_prep_time() {
142
117
  var val = this.title_value_for_css_class("prepTime");
143
-
144
118
  if (!val) {
145
119
  val = this.title_value_for_css_class("preptime");
146
120
  }
147
-
148
121
  return this.parse_duration(val);
149
122
  }
150
123
  }, {
@@ -157,11 +130,9 @@ var HRecipeParser = /*#__PURE__*/function (_HtmlRecipeParser) {
157
130
  key: "parse_total_time",
158
131
  value: function parse_total_time() {
159
132
  var val = this.title_value_for_css_class("duration");
160
-
161
133
  if (!val) {
162
134
  val = this.title_value_for_css_class("totalTime");
163
135
  }
164
-
165
136
  return this.parse_duration(val);
166
137
  }
167
138
  }, {
@@ -181,8 +152,4 @@ var HRecipeParser = /*#__PURE__*/function (_HtmlRecipeParser) {
181
152
  return ".hrecipe, .hRecipe";
182
153
  }
183
154
  }]);
184
-
185
- return HRecipeParser;
186
- }(_html_recipe_parser.HtmlRecipeParser);
187
-
188
- exports.HRecipeParser = HRecipeParser;
155
+ }(_html_recipe_parser.HtmlRecipeParser);
@@ -1,89 +1,74 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
4
  var _index = require("./index");
4
-
5
5
  var _hrecipe_parser = require("./hrecipe_parser");
6
-
7
6
  var _cheerio = _interopRequireDefault(require("cheerio"));
8
-
9
7
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
-
8
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
11
9
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
12
-
13
10
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
14
-
15
11
  var expect = require("chai").expect;
16
-
17
12
  var html = "<!DOCTYPE html>" + "<html>" + "<body>" + "<div class=\"hrecipe\">" + " <h1 class=\"fn\">Pommes Frites</h1>" + " <p class=\"summary\">" + " Pommes frites originate in outer space. They are served hot.<br />" + " This recipe is only an example. Don't try this at home!" + " </p>" + " <p>" + " Contributed by <span class=\"author\">CJ Tom</span> and the" + " <span class=\"author vcard\"><a class=\"url fn\" href=\"http://example.com\">Cooky Gang</a></span>." + " </p>" + " <p>Published <span class=\"published\"><span class=\"value-title\" title=\"2008-10-14T10:05:37-01:00\"> </span>14. Oct 2008</span></p>" + " <img src=\"/img/pommes.png\" class=\"photo\" width=\"100\" height=\"100\" alt=\"Pommes Frites\"/>" + " <h2>Ingredients</h2>" + " <ul>" + " <li class=\"ingredient\">" + " <span class=\"value\">500</span> " + " <span class=\"type\">gramme</span> potatoes, hard cooking." + " </li>" + " <li class=\"ingredient\">" + " <span class=\"value\">1</span> <span class=\"type\">spoonful</span> of salt" + " </li>" + " <li>" + " You may want to provide some " + " <span class=\"ingredient\">Ketchup and Mayonnaise</span>" + " as well." + " </li>" + " </ul>" + " <h2>Instructions</h2>" + " <ul class=\"instructions\">" + " <li>First wash the potatoes.</li>" + " <li>Then slice and dice them and put them in boiling fat.</li>" + " <li>After a few minutes take them out again.</li>" + " </ul>" + " <h2>Further details</h2>" + " <p>Enough for <span class=\"yield\">12 children</span>.</p>" + " <p>Preparation time is approximately " + " <span class=\"duration\"><span class=\"value-title\" title=\"PT1H30M\"> </span>90 min</span>" + " </p>" + " <p>Add <span class=\"duration\"><span class=\"value-title\" title=\"PT30M\"></span>half an hour</span> to prepare your homemade Ketchup.</p>" + " <p>This recipe is <a href=\"http://www.example.com/tags/difficulty/easy\" rel=\"tag\">easy</a> and <a href=\"http://www.example.com/tags/tastyness/delicious\" rel=\"tag\">delicious</a>.</p>" + " <p>" + " <span class=\"nutrition\">" + " Pommes Frites have more than " + " <span class=\"value\">1000</span> " + " <span class=\"type\">Joule</span>" + " Energy</span>, " + " while Ketchup and Mayonnaise have " + " <span class=\"nutrition\">0 vitamins</span>." + " </p>" + "</div>" + "</body>" + "</html>";
18
13
  describe("HRecipeParser", function () {
19
14
  describe("With no content", function () {
20
- it("sets all values to null", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
15
+ it("sets all values to null", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
21
16
  var parser, rec;
22
- return regeneratorRuntime.wrap(function _callee$(_context) {
23
- while (1) {
24
- switch (_context.prev = _context.next) {
25
- case 0:
26
- parser = new _hrecipe_parser.HRecipeParser(_cheerio["default"].load(""));
27
- _context.next = 3;
28
- return parser.parse();
29
-
30
- case 3:
31
- rec = _context.sent;
32
- expect(rec.canonical_url).to.equal(null);
33
- expect(rec.cook_time).to.equal(null);
34
- expect(rec.description).to.equal(null);
35
- expect(rec.image_url).to.equal(null);
36
- expect(rec.ingredients).to.be.a("Array");
37
- expect(rec.ingredients.length).to.equal(0);
38
- expect(rec.instructions).to.equal(null);
39
- expect(rec.name).to.equal(null);
40
- expect(rec.prep_time).to.equal(null);
41
- expect(rec.published_date).to.equal(null);
42
- expect(rec.total_time).to.equal(null);
43
- expect(rec["yield"]).to.equal(null);
44
-
45
- case 16:
46
- case "end":
47
- return _context.stop();
48
- }
17
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
18
+ while (1) switch (_context.prev = _context.next) {
19
+ case 0:
20
+ parser = new _hrecipe_parser.HRecipeParser(_cheerio["default"].load(""));
21
+ _context.next = 3;
22
+ return parser.parse();
23
+ case 3:
24
+ rec = _context.sent;
25
+ expect(rec.canonical_url).to.equal(null);
26
+ expect(rec.cook_time).to.equal(null);
27
+ expect(rec.description).to.equal(null);
28
+ expect(rec.image_url).to.equal(null);
29
+ expect(rec.ingredients).to.be.a("Array");
30
+ expect(rec.ingredients.length).to.equal(0);
31
+ expect(rec.instructions).to.equal(null);
32
+ expect(rec.name).to.equal(null);
33
+ expect(rec.prep_time).to.equal(null);
34
+ expect(rec.published_date).to.equal(null);
35
+ expect(rec.total_time).to.equal(null);
36
+ expect(rec["yield"]).to.equal(null);
37
+ case 16:
38
+ case "end":
39
+ return _context.stop();
49
40
  }
50
41
  }, _callee);
51
42
  })));
52
43
  });
53
44
  describe("With valid document", function () {
54
- it("Sets all values", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
45
+ it("Sets all values", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
55
46
  var rec, expected, i;
56
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
57
- while (1) {
58
- switch (_context2.prev = _context2.next) {
59
- case 0:
60
- _context2.next = 2;
61
- return _index.Masticate.parse(html);
62
-
63
- case 2:
64
- rec = _context2.sent;
65
- expect(rec.author).to.equal("CJ Tom");
66
- expect(rec.total_time).to.equal(90);
67
- expect(rec.description).to.equal("Pommes frites originate in outer space. They are served hot. This recipe is only an example. Don't try this at home!");
68
- expect(rec.image_url).to.equal("/img/pommes.png");
69
- expect(rec.ingredients.length).to.equal(3);
70
- expected = ["500 gramme potatoes, hard cooking.", "1 spoonful of salt", "Ketchup and Mayonnaise"];
71
-
72
- for (i = 0; i > rec.ingredients.length; i++) {
73
- expect(rec.ingredients[i]).to.equal([expected[i]]);
74
- }
75
-
76
- expect(rec.instructions).to.equal("First wash the potatoes. Then slice and dice them and put them in boiling fat. After a few minutes take them out again.");
77
- expect(rec.name).to.equal("Pommes Frites");
78
- expect(rec.prep_time).to.equal(null);
79
- expect(rec.cook_time).to.equal(null);
80
- expect(rec.published_date).to.equal(null);
81
- expect(rec["yield"]).to.equal("12 children");
82
-
83
- case 16:
84
- case "end":
85
- return _context2.stop();
86
- }
47
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
48
+ while (1) switch (_context2.prev = _context2.next) {
49
+ case 0:
50
+ _context2.next = 2;
51
+ return _index.Masticate.parse(html);
52
+ case 2:
53
+ rec = _context2.sent;
54
+ expect(rec.author).to.equal("CJ Tom");
55
+ expect(rec.total_time).to.equal(90);
56
+ expect(rec.description).to.equal("Pommes frites originate in outer space. They are served hot. This recipe is only an example. Don't try this at home!");
57
+ expect(rec.image_url).to.equal("/img/pommes.png");
58
+ expect(rec.ingredients.length).to.equal(3);
59
+ expected = ["500 gramme potatoes, hard cooking.", "1 spoonful of salt", "Ketchup and Mayonnaise"];
60
+ for (i = 0; i > rec.ingredients.length; i++) {
61
+ expect(rec.ingredients[i]).to.equal([expected[i]]);
62
+ }
63
+ expect(rec.instructions).to.equal("First wash the potatoes. Then slice and dice them and put them in boiling fat. After a few minutes take them out again.");
64
+ expect(rec.name).to.equal("Pommes Frites");
65
+ expect(rec.prep_time).to.equal(null);
66
+ expect(rec.cook_time).to.equal(null);
67
+ expect(rec.published_date).to.equal(null);
68
+ expect(rec["yield"]).to.equal("12 children");
69
+ case 16:
70
+ case "end":
71
+ return _context2.stop();
87
72
  }
88
73
  }, _callee2);
89
74
  })));