mida 0.3.2 → 0.3.3

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.
Files changed (322) hide show
  1. data/CHANGELOG.rdoc +8 -0
  2. data/{LICENSE.rdoc → LICENCE.rdoc} +1 -1
  3. data/README.rdoc +2 -2
  4. data/Rakefile +4 -3
  5. data/bin/mida +13 -3
  6. data/lib/mida.rb +2 -1
  7. data/lib/mida/datatype.rb +2 -0
  8. data/lib/mida/datatype/boolean.rb +21 -9
  9. data/lib/mida/datatype/enumeration.rb +28 -0
  10. data/lib/mida/datatype/float.rb +8 -5
  11. data/lib/mida/datatype/generic.rb +33 -0
  12. data/lib/mida/datatype/integer.rb +5 -5
  13. data/lib/mida/datatype/iso8601date.rb +12 -6
  14. data/lib/mida/datatype/number.rb +6 -5
  15. data/lib/mida/datatype/text.rb +5 -3
  16. data/lib/mida/datatype/url.rb +20 -0
  17. data/lib/mida/document.rb +4 -5
  18. data/lib/mida/item.rb +3 -4
  19. data/lib/mida/{genericvocabulary.rb → vocabularies/genericvocabulary.rb} +0 -0
  20. data/lib/mida/vocabularies/schemaorg.rb +1 -0
  21. data/lib/mida/vocabularies/schemaorg/aboutpage.rb +19 -0
  22. data/lib/mida/vocabularies/schemaorg/accountingservice.rb +21 -0
  23. data/lib/mida/vocabularies/schemaorg/administrativearea.rb +17 -0
  24. data/lib/mida/vocabularies/schemaorg/adultentertainment.rb +21 -0
  25. data/lib/mida/vocabularies/schemaorg/aggregateoffer.rb +34 -0
  26. data/lib/mida/vocabularies/schemaorg/aggregaterating.rb +33 -0
  27. data/lib/mida/vocabularies/schemaorg/airport.rb +19 -0
  28. data/lib/mida/vocabularies/schemaorg/amusementpark.rb +21 -0
  29. data/lib/mida/vocabularies/schemaorg/animalshelter.rb +21 -0
  30. data/lib/mida/vocabularies/schemaorg/apartmentcomplex.rb +17 -0
  31. data/lib/mida/vocabularies/schemaorg/aquarium.rb +19 -0
  32. data/lib/mida/vocabularies/schemaorg/artgallery.rb +21 -0
  33. data/lib/mida/vocabularies/schemaorg/article.rb +23 -0
  34. data/lib/mida/vocabularies/schemaorg/attorney.rb +21 -0
  35. data/lib/mida/vocabularies/schemaorg/audioobject.rb +19 -0
  36. data/lib/mida/vocabularies/schemaorg/autobodyshop.rb +21 -0
  37. data/lib/mida/vocabularies/schemaorg/autodealer.rb +21 -0
  38. data/lib/mida/vocabularies/schemaorg/automatedteller.rb +21 -0
  39. data/lib/mida/vocabularies/schemaorg/automotivebusiness.rb +21 -0
  40. data/lib/mida/vocabularies/schemaorg/autopartsstore.rb +21 -0
  41. data/lib/mida/vocabularies/schemaorg/autorental.rb +21 -0
  42. data/lib/mida/vocabularies/schemaorg/autorepair.rb +21 -0
  43. data/lib/mida/vocabularies/schemaorg/autowash.rb +21 -0
  44. data/lib/mida/vocabularies/schemaorg/bakery.rb +23 -0
  45. data/lib/mida/vocabularies/schemaorg/bankorcreditunion.rb +21 -0
  46. data/lib/mida/vocabularies/schemaorg/barorpub.rb +23 -0
  47. data/lib/mida/vocabularies/schemaorg/beach.rb +19 -0
  48. data/lib/mida/vocabularies/schemaorg/beautysalon.rb +21 -0
  49. data/lib/mida/vocabularies/schemaorg/bedandbreakfast.rb +21 -0
  50. data/lib/mida/vocabularies/schemaorg/bikestore.rb +21 -0
  51. data/lib/mida/vocabularies/schemaorg/blog.rb +24 -0
  52. data/lib/mida/vocabularies/schemaorg/blogposting.rb +19 -0
  53. data/lib/mida/vocabularies/schemaorg/bodyofwater.rb +17 -0
  54. data/lib/mida/vocabularies/schemaorg/book.rb +41 -0
  55. data/lib/mida/vocabularies/schemaorg/bookformattype.rb +16 -0
  56. data/lib/mida/vocabularies/schemaorg/bookstore.rb +21 -0
  57. data/lib/mida/vocabularies/schemaorg/bowlingalley.rb +21 -0
  58. data/lib/mida/vocabularies/schemaorg/brewery.rb +23 -0
  59. data/lib/mida/vocabularies/schemaorg/buddhisttemple.rb +19 -0
  60. data/lib/mida/vocabularies/schemaorg/businessevent.rb +17 -0
  61. data/lib/mida/vocabularies/schemaorg/busstation.rb +19 -0
  62. data/lib/mida/vocabularies/schemaorg/busstop.rb +19 -0
  63. data/lib/mida/vocabularies/schemaorg/cafeorcoffeeshop.rb +23 -0
  64. data/lib/mida/vocabularies/schemaorg/campground.rb +19 -0
  65. data/lib/mida/vocabularies/schemaorg/canal.rb +17 -0
  66. data/lib/mida/vocabularies/schemaorg/casino.rb +21 -0
  67. data/lib/mida/vocabularies/schemaorg/catholicchurch.rb +19 -0
  68. data/lib/mida/vocabularies/schemaorg/cemetery.rb +19 -0
  69. data/lib/mida/vocabularies/schemaorg/checkoutpage.rb +19 -0
  70. data/lib/mida/vocabularies/schemaorg/childcare.rb +21 -0
  71. data/lib/mida/vocabularies/schemaorg/childrensevent.rb +17 -0
  72. data/lib/mida/vocabularies/schemaorg/church.rb +19 -0
  73. data/lib/mida/vocabularies/schemaorg/city.rb +17 -0
  74. data/lib/mida/vocabularies/schemaorg/cityhall.rb +19 -0
  75. data/lib/mida/vocabularies/schemaorg/civicstructure.rb +24 -0
  76. data/lib/mida/vocabularies/schemaorg/clothingstore.rb +21 -0
  77. data/lib/mida/vocabularies/schemaorg/collectionpage.rb +19 -0
  78. data/lib/mida/vocabularies/schemaorg/collegeoruniversity.rb +19 -0
  79. data/lib/mida/vocabularies/schemaorg/comedyclub.rb +21 -0
  80. data/lib/mida/vocabularies/schemaorg/comedyevent.rb +17 -0
  81. data/lib/mida/vocabularies/schemaorg/computerstore.rb +21 -0
  82. data/lib/mida/vocabularies/schemaorg/contactpage.rb +19 -0
  83. data/lib/mida/vocabularies/schemaorg/contactpoint.rb +27 -0
  84. data/lib/mida/vocabularies/schemaorg/continent.rb +17 -0
  85. data/lib/mida/vocabularies/schemaorg/conveniencestore.rb +21 -0
  86. data/lib/mida/vocabularies/schemaorg/corporation.rb +17 -0
  87. data/lib/mida/vocabularies/schemaorg/country.rb +17 -0
  88. data/lib/mida/vocabularies/schemaorg/courthouse.rb +19 -0
  89. data/lib/mida/vocabularies/schemaorg/creativework.rb +122 -0
  90. data/lib/mida/vocabularies/schemaorg/crematorium.rb +19 -0
  91. data/lib/mida/vocabularies/schemaorg/danceevent.rb +17 -0
  92. data/lib/mida/vocabularies/schemaorg/dancegroup.rb +17 -0
  93. data/lib/mida/vocabularies/schemaorg/dayspa.rb +21 -0
  94. data/lib/mida/vocabularies/schemaorg/defenceestablishment.rb +19 -0
  95. data/lib/mida/vocabularies/schemaorg/dentist.rb +21 -0
  96. data/lib/mida/vocabularies/schemaorg/departmentstore.rb +21 -0
  97. data/lib/mida/vocabularies/schemaorg/distance.rb +15 -0
  98. data/lib/mida/vocabularies/schemaorg/drycleaningorlaundry.rb +21 -0
  99. data/lib/mida/vocabularies/schemaorg/duration.rb +13 -0
  100. data/lib/mida/vocabularies/schemaorg/educationalorganization.rb +24 -0
  101. data/lib/mida/vocabularies/schemaorg/educationevent.rb +17 -0
  102. data/lib/mida/vocabularies/schemaorg/electrician.rb +21 -0
  103. data/lib/mida/vocabularies/schemaorg/electronicsstore.rb +21 -0
  104. data/lib/mida/vocabularies/schemaorg/elementaryschool.rb +19 -0
  105. data/lib/mida/vocabularies/schemaorg/embassy.rb +19 -0
  106. data/lib/mida/vocabularies/schemaorg/emergencyservice.rb +21 -0
  107. data/lib/mida/vocabularies/schemaorg/employmentagency.rb +21 -0
  108. data/lib/mida/vocabularies/schemaorg/energy.rb +15 -0
  109. data/lib/mida/vocabularies/schemaorg/entertainmentbusiness.rb +21 -0
  110. data/lib/mida/vocabularies/schemaorg/enumeration.rb +15 -0
  111. data/lib/mida/vocabularies/schemaorg/event.rb +77 -0
  112. data/lib/mida/vocabularies/schemaorg/eventvenue.rb +19 -0
  113. data/lib/mida/vocabularies/schemaorg/exercisegym.rb +21 -0
  114. data/lib/mida/vocabularies/schemaorg/fastfoodrestaurant.rb +23 -0
  115. data/lib/mida/vocabularies/schemaorg/festival.rb +17 -0
  116. data/lib/mida/vocabularies/schemaorg/financialservice.rb +21 -0
  117. data/lib/mida/vocabularies/schemaorg/firestation.rb +23 -0
  118. data/lib/mida/vocabularies/schemaorg/florist.rb +21 -0
  119. data/lib/mida/vocabularies/schemaorg/foodestablishment.rb +36 -0
  120. data/lib/mida/vocabularies/schemaorg/foodevent.rb +17 -0
  121. data/lib/mida/vocabularies/schemaorg/furniturestore.rb +21 -0
  122. data/lib/mida/vocabularies/schemaorg/gardenstore.rb +21 -0
  123. data/lib/mida/vocabularies/schemaorg/gasstation.rb +21 -0
  124. data/lib/mida/vocabularies/schemaorg/gatedresidencecommunity.rb +17 -0
  125. data/lib/mida/vocabularies/schemaorg/generalcontractor.rb +21 -0
  126. data/lib/mida/vocabularies/schemaorg/geocoordinates.rb +33 -0
  127. data/lib/mida/vocabularies/schemaorg/golfcourse.rb +21 -0
  128. data/lib/mida/vocabularies/schemaorg/governmentbuilding.rb +19 -0
  129. data/lib/mida/vocabularies/schemaorg/governmentoffice.rb +21 -0
  130. data/lib/mida/vocabularies/schemaorg/governmentorganization.rb +17 -0
  131. data/lib/mida/vocabularies/schemaorg/grocerystore.rb +21 -0
  132. data/lib/mida/vocabularies/schemaorg/hairsalon.rb +21 -0
  133. data/lib/mida/vocabularies/schemaorg/hardwarestore.rb +21 -0
  134. data/lib/mida/vocabularies/schemaorg/healthandbeautybusiness.rb +21 -0
  135. data/lib/mida/vocabularies/schemaorg/healthclub.rb +21 -0
  136. data/lib/mida/vocabularies/schemaorg/highschool.rb +19 -0
  137. data/lib/mida/vocabularies/schemaorg/hindutemple.rb +19 -0
  138. data/lib/mida/vocabularies/schemaorg/hobbyshop.rb +21 -0
  139. data/lib/mida/vocabularies/schemaorg/homeandconstructionbusiness.rb +21 -0
  140. data/lib/mida/vocabularies/schemaorg/homegoodsstore.rb +21 -0
  141. data/lib/mida/vocabularies/schemaorg/hospital.rb +23 -0
  142. data/lib/mida/vocabularies/schemaorg/hostel.rb +21 -0
  143. data/lib/mida/vocabularies/schemaorg/hotel.rb +21 -0
  144. data/lib/mida/vocabularies/schemaorg/housepainter.rb +21 -0
  145. data/lib/mida/vocabularies/schemaorg/hvacbusiness.rb +21 -0
  146. data/lib/mida/vocabularies/schemaorg/icecreamshop.rb +23 -0
  147. data/lib/mida/vocabularies/schemaorg/imagegallery.rb +19 -0
  148. data/lib/mida/vocabularies/schemaorg/imageobject.rb +37 -0
  149. data/lib/mida/vocabularies/schemaorg/insuranceagency.rb +21 -0
  150. data/lib/mida/vocabularies/schemaorg/intangible.rb +15 -0
  151. data/lib/mida/vocabularies/schemaorg/internetcafe.rb +21 -0
  152. data/lib/mida/vocabularies/schemaorg/itemavailability.rb +19 -0
  153. data/lib/mida/vocabularies/schemaorg/itemlist.rb +20 -0
  154. data/lib/mida/vocabularies/schemaorg/itempage.rb +19 -0
  155. data/lib/mida/vocabularies/schemaorg/jewelrystore.rb +21 -0
  156. data/lib/mida/vocabularies/schemaorg/lakebodyofwater.rb +17 -0
  157. data/lib/mida/vocabularies/schemaorg/landform.rb +17 -0
  158. data/lib/mida/vocabularies/schemaorg/landmarksorhistoricalbuildings.rb +17 -0
  159. data/lib/mida/vocabularies/schemaorg/language.rb +15 -0
  160. data/lib/mida/vocabularies/schemaorg/legislativebuilding.rb +19 -0
  161. data/lib/mida/vocabularies/schemaorg/library.rb +21 -0
  162. data/lib/mida/vocabularies/schemaorg/liquorstore.rb +21 -0
  163. data/lib/mida/vocabularies/schemaorg/literaryevent.rb +17 -0
  164. data/lib/mida/vocabularies/schemaorg/localbusiness.rb +41 -0
  165. data/lib/mida/vocabularies/schemaorg/locksmith.rb +21 -0
  166. data/lib/mida/vocabularies/schemaorg/lodgingbusiness.rb +21 -0
  167. data/lib/mida/vocabularies/schemaorg/map.rb +17 -0
  168. data/lib/mida/vocabularies/schemaorg/mass.rb +15 -0
  169. data/lib/mida/vocabularies/schemaorg/mediaobject.rb +87 -0
  170. data/lib/mida/vocabularies/schemaorg/medicalclinic.rb +21 -0
  171. data/lib/mida/vocabularies/schemaorg/medicalorganization.rb +21 -0
  172. data/lib/mida/vocabularies/schemaorg/mensclothingstore.rb +21 -0
  173. data/lib/mida/vocabularies/schemaorg/middleschool.rb +19 -0
  174. data/lib/mida/vocabularies/schemaorg/mobilephonestore.rb +21 -0
  175. data/lib/mida/vocabularies/schemaorg/mosque.rb +19 -0
  176. data/lib/mida/vocabularies/schemaorg/motel.rb +21 -0
  177. data/lib/mida/vocabularies/schemaorg/motorcycledealer.rb +21 -0
  178. data/lib/mida/vocabularies/schemaorg/motorcyclerepair.rb +21 -0
  179. data/lib/mida/vocabularies/schemaorg/mountain.rb +17 -0
  180. data/lib/mida/vocabularies/schemaorg/movie.rb +65 -0
  181. data/lib/mida/vocabularies/schemaorg/movierentalstore.rb +21 -0
  182. data/lib/mida/vocabularies/schemaorg/movietheater.rb +23 -0
  183. data/lib/mida/vocabularies/schemaorg/movingcompany.rb +21 -0
  184. data/lib/mida/vocabularies/schemaorg/museum.rb +19 -0
  185. data/lib/mida/vocabularies/schemaorg/musicalbum.rb +26 -0
  186. data/lib/mida/vocabularies/schemaorg/musicevent.rb +17 -0
  187. data/lib/mida/vocabularies/schemaorg/musicgroup.rb +38 -0
  188. data/lib/mida/vocabularies/schemaorg/musicplaylist.rb +29 -0
  189. data/lib/mida/vocabularies/schemaorg/musicrecording.rb +45 -0
  190. data/lib/mida/vocabularies/schemaorg/musicstore.rb +21 -0
  191. data/lib/mida/vocabularies/schemaorg/musicvenue.rb +19 -0
  192. data/lib/mida/vocabularies/schemaorg/musicvideoobject.rb +19 -0
  193. data/lib/mida/vocabularies/schemaorg/nailsalon.rb +21 -0
  194. data/lib/mida/vocabularies/schemaorg/newsarticle.rb +19 -0
  195. data/lib/mida/vocabularies/schemaorg/ngo.rb +17 -0
  196. data/lib/mida/vocabularies/schemaorg/nightclub.rb +21 -0
  197. data/lib/mida/vocabularies/schemaorg/notary.rb +21 -0
  198. data/lib/mida/vocabularies/schemaorg/nutritioninformation.rb +86 -0
  199. data/lib/mida/vocabularies/schemaorg/oceanbodyofwater.rb +17 -0
  200. data/lib/mida/vocabularies/schemaorg/offer.rb +69 -0
  201. data/lib/mida/vocabularies/schemaorg/offeritemcondition.rb +17 -0
  202. data/lib/mida/vocabularies/schemaorg/officeequipmentstore.rb +21 -0
  203. data/lib/mida/vocabularies/schemaorg/optician.rb +21 -0
  204. data/lib/mida/vocabularies/schemaorg/organization.rb +96 -0
  205. data/lib/mida/vocabularies/schemaorg/outletstore.rb +21 -0
  206. data/lib/mida/vocabularies/schemaorg/painting.rb +17 -0
  207. data/lib/mida/vocabularies/schemaorg/park.rb +19 -0
  208. data/lib/mida/vocabularies/schemaorg/parkingfacility.rb +19 -0
  209. data/lib/mida/vocabularies/schemaorg/pawnshop.rb +21 -0
  210. data/lib/mida/vocabularies/schemaorg/performingartstheater.rb +19 -0
  211. data/lib/mida/vocabularies/schemaorg/performinggroup.rb +17 -0
  212. data/lib/mida/vocabularies/schemaorg/person.rb +164 -0
  213. data/lib/mida/vocabularies/schemaorg/petstore.rb +21 -0
  214. data/lib/mida/vocabularies/schemaorg/pharmacy.rb +21 -0
  215. data/lib/mida/vocabularies/schemaorg/photograph.rb +17 -0
  216. data/lib/mida/vocabularies/schemaorg/physician.rb +21 -0
  217. data/lib/mida/vocabularies/schemaorg/place.rb +80 -0
  218. data/lib/mida/vocabularies/schemaorg/placeofworship.rb +19 -0
  219. data/lib/mida/vocabularies/schemaorg/playground.rb +19 -0
  220. data/lib/mida/vocabularies/schemaorg/plumber.rb +21 -0
  221. data/lib/mida/vocabularies/schemaorg/policestation.rb +23 -0
  222. data/lib/mida/vocabularies/schemaorg/pond.rb +17 -0
  223. data/lib/mida/vocabularies/schemaorg/postaladdress.rb +39 -0
  224. data/lib/mida/vocabularies/schemaorg/postoffice.rb +21 -0
  225. data/lib/mida/vocabularies/schemaorg/preschool.rb +19 -0
  226. data/lib/mida/vocabularies/schemaorg/product.rb +55 -0
  227. data/lib/mida/vocabularies/schemaorg/professionalservice.rb +21 -0
  228. data/lib/mida/vocabularies/schemaorg/profilepage.rb +19 -0
  229. data/lib/mida/vocabularies/schemaorg/publicswimmingpool.rb +21 -0
  230. data/lib/mida/vocabularies/schemaorg/quantity.rb +15 -0
  231. data/lib/mida/vocabularies/schemaorg/radiostation.rb +21 -0
  232. data/lib/mida/vocabularies/schemaorg/rating.rb +30 -0
  233. data/lib/mida/vocabularies/schemaorg/realestateagent.rb +21 -0
  234. data/lib/mida/vocabularies/schemaorg/recipe.rb +61 -0
  235. data/lib/mida/vocabularies/schemaorg/recyclingcenter.rb +21 -0
  236. data/lib/mida/vocabularies/schemaorg/reservoir.rb +17 -0
  237. data/lib/mida/vocabularies/schemaorg/residence.rb +17 -0
  238. data/lib/mida/vocabularies/schemaorg/restaurant.rb +23 -0
  239. data/lib/mida/vocabularies/schemaorg/review.rb +33 -0
  240. data/lib/mida/vocabularies/schemaorg/riverbodyofwater.rb +17 -0
  241. data/lib/mida/vocabularies/schemaorg/roofingcontractor.rb +21 -0
  242. data/lib/mida/vocabularies/schemaorg/rvpark.rb +19 -0
  243. data/lib/mida/vocabularies/schemaorg/saleevent.rb +17 -0
  244. data/lib/mida/vocabularies/schemaorg/scholarlyarticle.rb +19 -0
  245. data/lib/mida/vocabularies/schemaorg/school.rb +19 -0
  246. data/lib/mida/vocabularies/schemaorg/sculpture.rb +17 -0
  247. data/lib/mida/vocabularies/schemaorg/seabodyofwater.rb +17 -0
  248. data/lib/mida/vocabularies/schemaorg/searchresultspage.rb +19 -0
  249. data/lib/mida/vocabularies/schemaorg/selfstorage.rb +21 -0
  250. data/lib/mida/vocabularies/schemaorg/shoestore.rb +21 -0
  251. data/lib/mida/vocabularies/schemaorg/shoppingcenter.rb +21 -0
  252. data/lib/mida/vocabularies/schemaorg/singlefamilyresidence.rb +17 -0
  253. data/lib/mida/vocabularies/schemaorg/sitenavigationelement.rb +17 -0
  254. data/lib/mida/vocabularies/schemaorg/skiresort.rb +21 -0
  255. data/lib/mida/vocabularies/schemaorg/socialevent.rb +17 -0
  256. data/lib/mida/vocabularies/schemaorg/sportinggoodsstore.rb +21 -0
  257. data/lib/mida/vocabularies/schemaorg/sportsactivitylocation.rb +21 -0
  258. data/lib/mida/vocabularies/schemaorg/sportsclub.rb +21 -0
  259. data/lib/mida/vocabularies/schemaorg/sportsevent.rb +17 -0
  260. data/lib/mida/vocabularies/schemaorg/sportsteam.rb +17 -0
  261. data/lib/mida/vocabularies/schemaorg/stadiumorarena.rb +23 -0
  262. data/lib/mida/vocabularies/schemaorg/state.rb +17 -0
  263. data/lib/mida/vocabularies/schemaorg/store.rb +21 -0
  264. data/lib/mida/vocabularies/schemaorg/structuredvalue.rb +15 -0
  265. data/lib/mida/vocabularies/schemaorg/subwaystation.rb +19 -0
  266. data/lib/mida/vocabularies/schemaorg/synagogue.rb +19 -0
  267. data/lib/mida/vocabularies/schemaorg/table.rb +17 -0
  268. data/lib/mida/vocabularies/schemaorg/tattooparlor.rb +21 -0
  269. data/lib/mida/vocabularies/schemaorg/taxistand.rb +19 -0
  270. data/lib/mida/vocabularies/schemaorg/televisionstation.rb +21 -0
  271. data/lib/mida/vocabularies/schemaorg/tenniscomplex.rb +21 -0
  272. data/lib/mida/vocabularies/schemaorg/theaterevent.rb +17 -0
  273. data/lib/mida/vocabularies/schemaorg/theatergroup.rb +17 -0
  274. data/lib/mida/vocabularies/schemaorg/thing.rb +29 -0
  275. data/lib/mida/vocabularies/schemaorg/tireshop.rb +21 -0
  276. data/lib/mida/vocabularies/schemaorg/touristattraction.rb +17 -0
  277. data/lib/mida/vocabularies/schemaorg/touristinformationcenter.rb +21 -0
  278. data/lib/mida/vocabularies/schemaorg/toystore.rb +21 -0
  279. data/lib/mida/vocabularies/schemaorg/trainstation.rb +19 -0
  280. data/lib/mida/vocabularies/schemaorg/travelagency.rb +21 -0
  281. data/lib/mida/vocabularies/schemaorg/tvepisode.rb +77 -0
  282. data/lib/mida/vocabularies/schemaorg/tvseason.rb +58 -0
  283. data/lib/mida/vocabularies/schemaorg/tvseries.rb +87 -0
  284. data/lib/mida/vocabularies/schemaorg/userblocks.rb +17 -0
  285. data/lib/mida/vocabularies/schemaorg/usercheckins.rb +17 -0
  286. data/lib/mida/vocabularies/schemaorg/usercomments.rb +17 -0
  287. data/lib/mida/vocabularies/schemaorg/userdownloads.rb +17 -0
  288. data/lib/mida/vocabularies/schemaorg/userinteraction.rb +17 -0
  289. data/lib/mida/vocabularies/schemaorg/userlikes.rb +17 -0
  290. data/lib/mida/vocabularies/schemaorg/userpagevisits.rb +17 -0
  291. data/lib/mida/vocabularies/schemaorg/userplays.rb +17 -0
  292. data/lib/mida/vocabularies/schemaorg/userplusones.rb +17 -0
  293. data/lib/mida/vocabularies/schemaorg/usertweets.rb +17 -0
  294. data/lib/mida/vocabularies/schemaorg/veterinarycare.rb +21 -0
  295. data/lib/mida/vocabularies/schemaorg/videogallery.rb +19 -0
  296. data/lib/mida/vocabularies/schemaorg/videoobject.rb +42 -0
  297. data/lib/mida/vocabularies/schemaorg/visualartsevent.rb +17 -0
  298. data/lib/mida/vocabularies/schemaorg/volcano.rb +17 -0
  299. data/lib/mida/vocabularies/schemaorg/waterfall.rb +17 -0
  300. data/lib/mida/vocabularies/schemaorg/webpage.rb +46 -0
  301. data/lib/mida/vocabularies/schemaorg/webpageelement.rb +17 -0
  302. data/lib/mida/vocabularies/schemaorg/wholesalestore.rb +21 -0
  303. data/lib/mida/vocabularies/schemaorg/winery.rb +23 -0
  304. data/lib/mida/vocabularies/schemaorg/wpadblock.rb +17 -0
  305. data/lib/mida/vocabularies/schemaorg/wpfooter.rb +17 -0
  306. data/lib/mida/vocabularies/schemaorg/wpheader.rb +17 -0
  307. data/lib/mida/vocabularies/schemaorg/wpsidebar.rb +17 -0
  308. data/lib/mida/vocabularies/schemaorg/zoo.rb +19 -0
  309. data/lib/mida/vocabulary.rb +11 -6
  310. data/spec/datatype/boolean_spec.rb +21 -8
  311. data/spec/datatype/enumeration_spec.rb +30 -0
  312. data/spec/datatype/float_spec.rb +8 -10
  313. data/spec/datatype/generic_spec.rb +44 -0
  314. data/spec/datatype/integer_spec.rb +11 -8
  315. data/spec/datatype/iso8601date_spec.rb +15 -8
  316. data/spec/datatype/number_spec.rb +8 -10
  317. data/spec/datatype/text_spec.rb +8 -6
  318. data/spec/datatype/url_spec.rb +27 -0
  319. data/spec/document_spec.rb +0 -21
  320. data/spec/item_spec.rb +41 -48
  321. data/spec/vocabulary_spec.rb +51 -0
  322. metadata +316 -10
@@ -2,26 +2,39 @@ require 'mida/datatype'
2
2
 
3
3
  describe Mida::DataType::Boolean do
4
4
 
5
- it '#extract should raise an exception if some other text' do
6
- test = lambda {Mida::DataType::Boolean.extract('hello')}
5
+ it '#parse should raise an exception if a invalid text passed' do
6
+ test = lambda {Mida::DataType::Boolean.parse('example')}
7
7
  test.should raise_error(ArgumentError)
8
8
  end
9
9
 
10
- it '#extract should raise an exception if value is empty' do
11
- test = lambda {Mida::DataType::Boolean.extract('')}
10
+ it '#parse should raise an exception if value is empty' do
11
+ test = lambda {Mida::DataType::Boolean.parse('')}
12
12
  test.should raise_error(ArgumentError)
13
13
  end
14
14
 
15
- it '#extract should return true for "True" whatever the case' do
15
+ it '#parse should return true for "True" whatever the case' do
16
16
  ['true', 'True', 'TRUE', 'tRUE'].each do |true_text|
17
- Mida::DataType::Boolean.extract(true_text).should be_true
17
+ Mida::DataType::Boolean.parse(true_text).should be_true
18
18
  end
19
19
  end
20
20
 
21
- it '#extract should return false for "False" whatever the case' do
21
+ it '#parse should return false for "False" whatever the case' do
22
22
  ['false', 'False', 'FALSE', 'fALSE'].each do |false_text|
23
- Mida::DataType::Boolean.extract(false_text).should be_false
23
+ Mida::DataType::Boolean.parse(false_text).should be_false
24
24
  end
25
25
  end
26
26
 
27
+ it '#to_s should return proper string representation of boolean' do
28
+ Mida::DataType::Boolean.parse('fALSE').to_s.should == 'False'
29
+ Mida::DataType::Boolean.parse('tRUE').to_s.should == 'True'
30
+ end
31
+
32
+ it '! should negate as if a TrueClass/FalseClass' do
33
+ true_boolean = Mida::DataType::Boolean.parse('true')
34
+ false_boolean = Mida::DataType::Boolean.parse('false')
35
+
36
+ (!true_boolean).should be_false
37
+ (!false_boolean).should be_true
38
+ end
39
+
27
40
  end
@@ -0,0 +1,30 @@
1
+ require 'mida/datatype'
2
+ require 'mida/datatype/url'
3
+
4
+ describe Mida::DataType::Enumeration do
5
+ before :all do
6
+ class BookType < Mida::DataType::Enumeration
7
+ VALID_VALUES = [
8
+ [::Mida::DataType::URL, %r{http://example.com/ebook}i],
9
+ [::Mida::DataType::URL, %r{http://example.com/paperback}i]
10
+ ]
11
+ end
12
+ end
13
+
14
+ it '#parse should raise an exception if an invalid url passed' do
15
+ test = lambda {BookType.parse('http://example.com/hardback')}
16
+ test.should raise_error(ArgumentError)
17
+ end
18
+
19
+ it '#parse should raise an exception if value is empty' do
20
+ test = lambda {BookType.parse('')}
21
+ test.should raise_error(ArgumentError)
22
+ end
23
+
24
+ it '#parse should accept a valid value' do
25
+ url_text = 'http://example.com/ebook'
26
+ url = BookType.parse(url_text)
27
+ url.to_s.should == url_text
28
+ end
29
+
30
+ end
@@ -2,22 +2,20 @@ require 'mida/datatype'
2
2
 
3
3
  describe Mida::DataType::Float do
4
4
 
5
- it '#extract should raise an exception if not a number' do
6
- test = lambda {Mida::DataType::Float.extract('hello')}
5
+ it '#parse should raise an exception if not a number' do
6
+ test = lambda {Mida::DataType::Float.parse('hello')}
7
7
  test.should raise_error(ArgumentError)
8
8
  end
9
9
 
10
- it '#extract should raise an exception if value is empty' do
11
- test = lambda {Mida::DataType::Float.extract('')}
10
+ it '#parse should raise an exception if value is empty' do
11
+ test = lambda {Mida::DataType::Float.parse('')}
12
12
  test.should raise_error(ArgumentError)
13
13
  end
14
14
 
15
- it '#extract? should return the input value as a Float if a floating point' do
16
- Mida::DataType::Float.extract("3.14").should == 3.14
17
- end
18
-
19
- it '#extract? should return the input value as a Float if a integer' do
20
- Mida::DataType::Float.extract("3").should == 3
15
+ it '#parse should accept a valid number' do
16
+ float_text = '3.14'
17
+ float = Mida::DataType::Float.parse(float_text)
18
+ float.to_s.should == float_text
21
19
  end
22
20
 
23
21
  end
@@ -0,0 +1,44 @@
1
+ require 'mida/datatype'
2
+
3
+ describe Mida::DataType::Generic do
4
+
5
+ before do
6
+ class Number < Mida::DataType::Generic
7
+ def initialize(value)
8
+ @parsedValue = Float(value)
9
+ end
10
+ end
11
+ end
12
+
13
+ it '#parse should provide pass value straight to #new' do
14
+ number = Number.parse('2.34')
15
+ number == 2.34
16
+ end
17
+
18
+ it "should provide access to the underlying type's methods" do
19
+ number = Number.new('2.34')
20
+ number.floor.should == 2
21
+ end
22
+
23
+ it '#to_s should use the underlying types #to_s method' do
24
+ number = Number.parse('2.34')
25
+ number.to_s.should == '2.34'
26
+ end
27
+
28
+ it '#to_yaml should provide a yaml representation of the items #to_s method' do
29
+ number = Number.parse('2.34')
30
+ number.to_yaml.should =~ /---\s+"2.34"\n/
31
+ end
32
+
33
+ it '#== should match against underlying type, string representation and self' do
34
+ number = Number.new('2.34')
35
+ (number == 2.34).should be_true
36
+ (number == '2.34').should be_true
37
+ (number == number).should be_true
38
+
39
+ (number == 2.44).should be_false
40
+ (number == '2.44').should be_false
41
+ (number == Number.new('2.44')).should be_false
42
+ end
43
+
44
+ end
@@ -2,22 +2,25 @@ require 'mida/datatype'
2
2
 
3
3
  describe Mida::DataType::Integer do
4
4
 
5
- it '#extract should raise an exception if not a number' do
6
- test = lambda {Mida::DataType::Integer.extract('hello')}
5
+ it '#parse should raise an exception if not a number' do
6
+ test = lambda {Mida::DataType::Integer.parse('hello')}
7
7
  test.should raise_error(ArgumentError)
8
8
  end
9
9
 
10
- it '#extract should raise an exception if value is empty' do
11
- test = lambda {Mida::DataType::Integer.extract('')}
10
+ it '#parse should raise an exception if not an integer' do
11
+ test = lambda {Mida::DataType::Integer.parse('3.14')}
12
12
  test.should raise_error(ArgumentError)
13
13
  end
14
14
 
15
- it '#extract? should raise an exception if a floating point number' do
16
- test = lambda {Mida::DataType::Integer.extract('3.14')}
15
+ it '#parse should raise an exception if value is empty' do
16
+ test = lambda {Mida::DataType::Integer.parse('')}
17
17
  test.should raise_error(ArgumentError)
18
18
  end
19
19
 
20
- it '#extract? should return the input value as a Integer if a integer' do
21
- Mida::DataType::Integer.extract("3").should == 3
20
+ it '#parse should accept a valid number' do
21
+ integer_text = '3'
22
+ integer = Mida::DataType::Integer.parse(integer_text)
23
+ integer.to_s.should == integer_text
22
24
  end
25
+
23
26
  end
@@ -2,19 +2,26 @@ require 'mida/datatype'
2
2
 
3
3
  describe Mida::DataType::ISO8601Date do
4
4
 
5
- it '#extract should raise an exception if some other text' do
6
- test = lambda {Mida::DataType::ISO8601Date.extract('27th Aug 2009')}
5
+ it '#parse should raise an exception if invalid date format' do
6
+ test = lambda {Mida::DataType::ISO8601Date.parse('27th August 2009')}
7
7
  test.should raise_error(ArgumentError)
8
8
  end
9
9
 
10
- it '#extract should raise an exception if value is empty' do
11
- test = lambda {Mida::DataType::ISO8601Date.extract('')}
10
+ it '#parse should raise an exception if value is empty' do
11
+ test = lambda {Mida::DataType::ISO8601Date.parse('')}
12
12
  test.should raise_error(ArgumentError)
13
13
  end
14
14
 
15
- it '#extract? should return the input value' do
16
- date = "2009-08-27T01:13:04+05:10"
17
- Mida::DataType::ISO8601Date.extract(date).should == DateTime.parse(date)
18
- Mida::DataType::ISO8601Date.extract(date).to_s.should == date
15
+ context 'when passed a valid date' do
16
+ before do
17
+ @date_text = "2009-08-27T01:13:04+05:10"
18
+ @date = Mida::DataType::ISO8601Date.parse(@date_text)
19
+ end
20
+
21
+ it '#to_s should return the date as an rfc822 text string' do
22
+ @date.to_s.should == "Thu, 27 Aug 2009 01:13:04 +0510"
23
+ end
24
+
19
25
  end
26
+
20
27
  end
@@ -2,22 +2,20 @@ require 'mida/datatype'
2
2
 
3
3
  describe Mida::DataType::Number do
4
4
 
5
- it '#extract should raise an exception if not a number' do
6
- test = lambda {Mida::DataType::Number.extract('hello')}
5
+ it '#parse should raise an exception if not a number' do
6
+ test = lambda {Mida::DataType::Number.parse('hello')}
7
7
  test.should raise_error(ArgumentError)
8
8
  end
9
9
 
10
- it '#extract should raise an exception if value is empty' do
11
- test = lambda {Mida::DataType::Number.extract('')}
10
+ it '#parse should raise an exception if value is empty' do
11
+ test = lambda {Mida::DataType::Number.parse('')}
12
12
  test.should raise_error(ArgumentError)
13
13
  end
14
14
 
15
- it '#extract? should return the input value as a number if a floating point' do
16
- Mida::DataType::Number.extract("3.14").should == 3.14
17
- end
18
-
19
- it '#extract? should return the input value as a number if a integer' do
20
- Mida::DataType::Number.extract("3").should == 3
15
+ it '#parse should accept a valid number' do
16
+ num_text = '3.14'
17
+ num = Mida::DataType::Number.parse(num_text)
18
+ num.to_s.should == num_text
21
19
  end
22
20
 
23
21
  end
@@ -2,13 +2,15 @@ require 'mida/datatype'
2
2
 
3
3
  describe Mida::DataType::Text do
4
4
 
5
- it '#extract should return an empty string if an empty string passed' do
6
- value = ''
7
- Mida::DataType::Text.extract(value).should == value
5
+ it '#parse should accept an empty string' do
6
+ text = Mida::DataType::Text.parse('')
7
+ text.should == ''
8
8
  end
9
9
 
10
- it '#extract should return the input value' do
11
- value = 'A Test Value'
12
- Mida::DataType::Text.extract(value).should == value
10
+ it '#parse should return the input value' do
11
+ test_text = 'Some text'
12
+ text = Mida::DataType::Text.parse(test_text)
13
+ text.should == test_text
13
14
  end
15
+
14
16
  end
@@ -0,0 +1,27 @@
1
+ require 'mida/datatype'
2
+ require 'yaml'
3
+
4
+ describe Mida::DataType::URL do
5
+
6
+ it '#parse should raise an exception if a bad url passed' do
7
+ test = lambda {Mida::DataType::URL.parse('example.com')}
8
+ test.should raise_error(ArgumentError)
9
+ end
10
+
11
+ it '#parse should raise an exception if value is empty' do
12
+ test = lambda {Mida::DataType::URL.parse('')}
13
+ test.should raise_error(ArgumentError)
14
+ end
15
+
16
+ it '#parse should accept a valid url' do
17
+ url_text = 'http://example.com/test/'
18
+ url = Mida::DataType::URL.parse(url_text)
19
+ url.to_s.should == url_text
20
+ end
21
+
22
+
23
+ it '#parse should accept a valid url' do
24
+ url_text = 'http://example.com/test/'
25
+ url = Mida::DataType::URL.parse(url_text)
26
+ end
27
+ end
@@ -85,27 +85,6 @@ describe Mida::Document, 'when initialized' do
85
85
  end
86
86
  end
87
87
 
88
- context 'with validation on' do
89
- before do
90
- @md = Mida::Document.new(@html)
91
- end
92
-
93
- it 'should reject properties for items of known vocabularies that are not valid' do
94
- @md.items[0].properties.should == {}
95
- end
96
- end
97
-
98
- context 'with validation off' do
99
- before do
100
- @md = Mida::Document.new(@html, false)
101
- end
102
-
103
- it 'should accept properties for items of known vocabularies even if not valid' do
104
- @md.items[0].properties['itemreviewed'].should ==
105
- ['Romeo Pizza', 'Some Other Pizza']
106
- end
107
- end
108
-
109
88
  after do
110
89
  Mida::Vocabulary.unregister(Review)
111
90
  end
data/spec/item_spec.rb CHANGED
@@ -82,7 +82,9 @@ describe Mida::Item, 'when initialized with an itemscope of a known type' do
82
82
  has_many 'date' do
83
83
  extract Mida::DataType::ISO8601Date, Mida::DataType::Text
84
84
  end
85
- has_many 'url'
85
+ has_many 'url' do
86
+ extract Mida::DataType::URL
87
+ end
86
88
  end
87
89
 
88
90
  itemscope = mock(Mida::Itemscope)
@@ -106,7 +108,8 @@ describe Mida::Item, 'when initialized with an itemscope of a known type' do
106
108
  end
107
109
 
108
110
  it 'should return has_many properties as an array' do
109
- @item.properties['url'].should == ['http://example.com/user/lorry']
111
+ @item.properties['url'].length == 1
112
+ @item.properties['url'].first.to_s.should == 'http://example.com/user/lorry'
110
113
  end
111
114
 
112
115
  it 'should accept datatypes that are valid' do
@@ -114,25 +117,18 @@ describe Mida::Item, 'when initialized with an itemscope of a known type' do
114
117
  end
115
118
 
116
119
  it 'should accept datatypes that are valid' do
117
- @item.properties['date'][1].should == Date.iso8601('2009-10-02')
120
+ @item.properties['date'][1].should.to_s == Date.iso8601('2009-10-02').rfc822
118
121
  end
119
122
 
120
123
  it '#properties should return the same properties as the itemscope' do
121
- @item.properties.should == {
122
- 'name' => 'Lorry Woodman',
123
- 'date' => ['2nd October 2009', Date.iso8601('2009-10-02')],
124
- 'url' => ['http://example.com/user/lorry']
125
- }
124
+ @item.properties.keys.should == ['name', 'date', 'url']
125
+ @item.properties['date'].length == 2
126
126
  end
127
127
 
128
128
  it '#to_h should return the correct type and properties' do
129
129
  @item.to_h.should == {
130
130
  type: 'http://example.com/vocab/person',
131
- properties: {
132
- 'name' => 'Lorry Woodman',
133
- 'date' => ['2nd October 2009', Date.iso8601('2009-10-02')],
134
- 'url' => ['http://example.com/user/lorry']
135
- }
131
+ properties: @item.properties
136
132
  }
137
133
  end
138
134
 
@@ -153,10 +149,10 @@ describe Mida::Item, 'when initialized with an itemscope of a known type that do
153
149
  end
154
150
  end
155
151
 
156
- @itemscope = mock(Mida::Itemscope)
157
- @itemscope.stub!(:type).and_return("http://example.com/vocab/person")
158
- @itemscope.stub!(:id).and_return(nil)
159
- @itemscope.stub!(:properties).and_return(
152
+ itemscope = mock(Mida::Itemscope)
153
+ itemscope.stub!(:type).and_return("http://example.com/vocab/person")
154
+ itemscope.stub!(:id).and_return(nil)
155
+ itemscope.stub!(:properties).and_return(
160
156
  { 'name' => ['Lorry Woodman'],
161
157
  'tel' => ['000004847582', '111111857485'],
162
158
  'url' => ['http://example.com/user/lorry'],
@@ -164,42 +160,19 @@ describe Mida::Item, 'when initialized with an itemscope of a known type that do
164
160
  'dob' => 'When I was born'
165
161
  }
166
162
  )
163
+ @item = Mida::Item.new(itemscope)
167
164
  end
168
165
 
169
- context 'when validation selected' do
170
- before do
171
- @item = Mida::Item.new(@itemscope)
172
- end
173
-
174
- it '#vocabulary should return the correct vocabulary' do
175
- @item.vocabulary.should == Person
176
- end
177
-
178
- it 'should not keep properties that have too many values' do
179
- @item.properties.should_not have_key('tel')
180
- end
181
-
182
- it 'should not keep properties that have the wrong DataType' do
183
- @item.properties.should_not have_key('dob')
184
- end
166
+ it '#vocabulary should return the correct vocabulary' do
167
+ @item.vocabulary.should == Person
185
168
  end
186
169
 
187
- context 'when validation not selected' do
188
- before do
189
- @item = Mida::Item.new(@itemscope, false)
190
- end
191
-
192
- it '#vocabulary should return the correct vocabulary' do
193
- @item.vocabulary.should == Person
194
- end
195
-
196
- it 'should keep properties even if they have too many values' do
197
- @item.properties.should have_key('tel')
198
- end
170
+ it 'should not keep properties that have too many values' do
171
+ @item.properties.should_not have_key('tel')
172
+ end
199
173
 
200
- it 'should keep properties even if they have the wrong DataType' do
201
- @item.properties.should have_key('dob')
202
- end
174
+ it 'should not keep properties that have the wrong DataType' do
175
+ @item.properties.should_not have_key('dob')
203
176
  end
204
177
 
205
178
  end
@@ -255,6 +228,22 @@ describe Mida::Item, 'when initialized with an itemscope containing another corr
255
228
  @item.properties['tel'][0].should == '000004847582'
256
229
  end
257
230
 
231
+ it "#to_h shouldnt return nested items properly" do
232
+ @item.to_h.should == {
233
+ type: 'http://example.com/vocab/person',
234
+ properties: {
235
+ 'name' => 'Lorry Woodman',
236
+ 'tel' => [ '000004847582',
237
+ { type: 'http://example.com/vocab/tel',
238
+ properties: { 'dial_code' => '0248583',
239
+ 'number' => '000004847582'
240
+ }
241
+ }
242
+ ]
243
+ }
244
+ }
245
+ end
246
+
258
247
  end
259
248
 
260
249
  describe Mida::Item, 'when initialized with an itemscope that has a property type that is a child of the specified type' do
@@ -316,6 +305,10 @@ end
316
305
 
317
306
  describe Mida::Item, 'when initialized with an itemscope containing another invalid itemscope' do
318
307
  before do
308
+ # Make sure the class is redefined afresh to make sure that
309
+ # inherited() hook is called
310
+ Mida::Vocabulary.unregister(Person)
311
+ Object.send(:remove_const, :Person)
319
312
  class Person < Mida::Vocabulary
320
313
  itemtype %r{http://example.com/vocab/person}
321
314
  has_one 'name'