mida 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,11 @@
1
+ == 0.3.3 (31st July 2011)
2
+ * Removed validation from +new+ for +Item+ and +Document+
3
+ * Created <tt>vocabularies/</tt> to put the vocabularies in
4
+ * Added +URL+ and +Enumeration+ <tt>DataType</tt>s
5
+ * Converted <tt>DataTypes</tt>s to classes derived from +Generic+
6
+ * Now supports circular dependencies in vocabularies
7
+ * Added all the <tt>Schema.org</tt> vocabularies
8
+
1
9
  == 0.3.2 (9th July 2011)
2
10
  * Ensure <tt>bin/mida</tt> only searches if type regexp passed
3
11
  * Allow vocabularies to be included into other vocabularies
@@ -1,4 +1,4 @@
1
- = The MIT License
1
+ = The MIT Licence
2
2
 
3
3
  Copyright (c) 2011 Lawrence Woodman
4
4
 
data/README.rdoc CHANGED
@@ -131,6 +131,6 @@ If you find a bug or want to make a feature request, please report it at the
131
131
  Mida project's {issues tracker}[https://github.com/LawrenceWoodman/mida/issues]
132
132
  on github.
133
133
 
134
- == License
134
+ == Licence
135
135
  Copyright (c) 2011 Lawrence Woodman.
136
- This software is licensed under the MIT License. Please see the file, LICENSE.rdoc, for details.
136
+ This software is licensed under the MIT Licence. Please see the file, LICENCE.rdoc, for details.
data/Rakefile CHANGED
@@ -5,8 +5,8 @@ require 'rubygems/package_task'
5
5
  spec = Gem::Specification.new do |s|
6
6
  s.name = "mida"
7
7
  s.summary = "A Microdata parser/extractor library"
8
- s.description = "A Microdata parser and extractor library, based on the latest published version of the Microdata Specification, dated 5th April 2011."
9
- s.version = "0.3.2"
8
+ s.description = "A Microdata parser and extractor library which includes support for the schema.org vocabularies"
9
+ s.version = "0.3.3"
10
10
  s.author = "Lawrence Woodman"
11
11
  s.email = "lwoodman@vlifesystems.com"
12
12
  s.homepage = %q{http://lawrencewoodman.github.com/mida/}
@@ -14,9 +14,10 @@ spec = Gem::Specification.new do |s|
14
14
  s.required_ruby_version = '>=1.9'
15
15
  s.files = Dir['lib/**/*.rb'] + Dir['spec/**/*.rb'] + Dir['*.rdoc'] + Dir['Rakefile']
16
16
  s.executables = ['mida']
17
- s.extra_rdoc_files = ['README.rdoc', 'LICENSE.rdoc', 'CHANGELOG.rdoc']
17
+ s.extra_rdoc_files = ['README.rdoc', 'LICENCE.rdoc', 'CHANGELOG.rdoc']
18
18
  s.rdoc_options << '--main' << 'README.rdoc'
19
19
  s.add_dependency('nokogiri', '>= 1.5')
20
+ s.add_dependency('blankslate')
20
21
  s.add_development_dependency('rspec', '>= 2.0' )
21
22
  s.add_development_dependency('bundler')
22
23
  end
data/bin/mida CHANGED
@@ -32,7 +32,17 @@ rescue LoadError
32
32
  raise
33
33
  end
34
34
 
35
- options = {sourcename: true, validate: true}
35
+ # Turn off validation by unregistering all the vocabularies apart from
36
+ # GenericVocabulary
37
+ def turnOffValidation
38
+ Mida::Vocabulary.vocabularies.each do |vocabulary|
39
+ unless vocabulary == Mida::GenericVocabulary
40
+ Mida::Vocabulary.unregister(vocabulary)
41
+ end
42
+ end
43
+ end
44
+
45
+ options = {sourcename: true}
36
46
  ARGV.options do |option|
37
47
  option.banner = banner
38
48
  option.on('-c','--count', 'Display the counts of each Microdata Type') do
@@ -47,7 +57,7 @@ ARGV.options do |option|
47
57
  end
48
58
  option.on('-v','--no-validate',
49
59
  "Don't validate the items against known Vocabularies") do
50
- options[:validate] = false
60
+ turnOffValidation
51
61
  end
52
62
  option.on_tail('-h','--help', 'This help message') {puts option; exit}
53
63
 
@@ -84,7 +94,7 @@ def parse_source(source, options)
84
94
  url = get_url
85
95
  begin
86
96
  open(source) do |f|
87
- doc = Mida::Document.new(f, url, options[:validate])
97
+ doc = Mida::Document.new(f, url)
88
98
  items = if options[:type]
89
99
  doc.search(options[:type])
90
100
  else
data/lib/mida.rb CHANGED
@@ -6,4 +6,5 @@ module Mida
6
6
 
7
7
  end
8
8
 
9
- require 'mida/genericvocabulary'
9
+ require 'mida/vocabularies/genericvocabulary'
10
+ require 'mida/vocabularies/schemaorg'
data/lib/mida/datatype.rb CHANGED
@@ -8,8 +8,10 @@ module Mida
8
8
  end
9
9
 
10
10
  require 'mida/datatype/boolean'
11
+ require 'mida/datatype/enumeration'
11
12
  require 'mida/datatype/float'
12
13
  require 'mida/datatype/integer'
13
14
  require 'mida/datatype/iso8601date'
14
15
  require 'mida/datatype/number'
15
16
  require 'mida/datatype/text'
17
+ require 'mida/datatype/url'
@@ -1,18 +1,30 @@
1
+ require 'mida/datatype/generic'
2
+
1
3
  module Mida
2
4
  module DataType
3
5
 
4
6
  # Boolean data type
5
- module Boolean
7
+ # Provides access to TrueClass/FalseClass methods
8
+ class Boolean < Generic
9
+
10
+ # Raises +ArgumentError+ if value not valid boolean
11
+ def initialize(value)
12
+ @parsedValue = case value.downcase
13
+ when 'true' then true
14
+ when 'false' then false
15
+ else raise ::ArgumentError, 'Invalid value'
16
+ end
17
+ end
6
18
 
7
- # Returns the +value+ as a boolean
8
- # or raises ArgumentError if not valid
9
- def self.extract(value)
10
- case value.downcase
11
- when 'true' then true
12
- when 'false' then false
13
- else raise ArgumentError, 'Invalid value'
14
- end
19
+ def to_s
20
+ @parsedValue.to_s.capitalize
15
21
  end
22
+
23
+ def !@
24
+ !@parsedValue
25
+ end
26
+
16
27
  end
28
+
17
29
  end
18
30
  end
@@ -0,0 +1,28 @@
1
+ require 'mida/datatype/generic'
2
+ require 'mida/datatype/url'
3
+ require 'uri'
4
+
5
+ module Mida
6
+ module DataType
7
+
8
+ # Enumeration data type
9
+ # Provides access to underly DataType methods
10
+ # Subclasses should implement VALID_VALUES as an array of the form:
11
+ # [[DataType, Regexp], [DataType, Regexp]]
12
+ class Enumeration < Generic
13
+
14
+ Enumeration.reveal(:class)
15
+
16
+ # Raises +ArgumentError+ if value not valid value
17
+ def initialize(value)
18
+ value_is_valid = self.class::VALID_VALUES.any? do |valid_value|
19
+ @parsedValue = valid_value[0].parse(value)
20
+ @parsedValue.to_s =~ valid_value[1]
21
+ end
22
+ raise ArgumentError unless value_is_valid
23
+ end
24
+
25
+ end
26
+
27
+ end
28
+ end
@@ -1,15 +1,18 @@
1
+ require 'mida/datatype/generic'
2
+
1
3
  module Mida
2
4
  module DataType
3
5
 
4
6
  # Float data type
5
- module Float
7
+ # Provides access to Float methods
8
+ class Float < Generic
6
9
 
7
- # Returns the +value+ as a floating point number
8
- # Relies on +Float+ to raise +ArgumentError+ if not valid
9
- def self.extract(value)
10
- Float(value)
10
+ # Raises +ArgumentError+ if value not valid
11
+ def initialize(value)
12
+ @parsedValue = ::Kernel.Float(value)
11
13
  end
12
14
 
13
15
  end
16
+
14
17
  end
15
18
  end
@@ -0,0 +1,33 @@
1
+ require 'blankslate'
2
+
3
+ module Mida
4
+ module DataType
5
+
6
+ # The base DataType Parser
7
+ class Generic < BlankSlate
8
+
9
+ # Convenience method, same as +new+
10
+ def self.parse(value)
11
+ self.new(value)
12
+ end
13
+
14
+ def method_missing(name, *args, &block)
15
+ @parsedValue.send(name, *args, &block)
16
+ end
17
+
18
+ def to_s
19
+ @parsedValue.to_s
20
+ end
21
+
22
+ def to_yaml(options={})
23
+ to_s.to_yaml(options)
24
+ end
25
+
26
+ def ==(other)
27
+ @parsedValue.to_s.downcase == other.to_s.downcase
28
+ end
29
+
30
+ end
31
+
32
+ end
33
+ end
@@ -2,12 +2,12 @@ module Mida
2
2
  module DataType
3
3
 
4
4
  # Integer data type
5
- module Integer
5
+ # Provides access to Integer methods
6
+ class Integer < Generic
6
7
 
7
- # Returns the +value+ as an integer
8
- # Relies on +Integer+ to raise +ArgumentError+ if not valid
9
- def self.extract(value)
10
- Integer(value)
8
+ # Raises +ArgumentError+ if value not valid
9
+ def initialize(value)
10
+ @parsedValue = ::Kernel.Integer(value)
11
11
  end
12
12
 
13
13
  end
@@ -1,17 +1,23 @@
1
+ require 'mida/datatype/generic'
1
2
  require 'date'
2
3
 
3
4
  module Mida
4
5
  module DataType
5
6
 
6
7
  # ISO 8601 Date data type
7
- module ISO8601Date
8
+ # Provides access to DateTime methods
9
+ class ISO8601Date < Generic
8
10
 
9
- # Returns the +value+ as a +DateTime+ instance
10
- # Relies on <tt>DateTime#iso8601</tt> to raise
11
- # +ArgumentError+ if not valid
12
- def self.extract(value)
13
- DateTime.iso8601(value)
11
+ # Raises +ArgumentError+ if value not valid
12
+ def initialize(value)
13
+ @parsedValue = ::DateTime.iso8601(value)
14
14
  end
15
+
16
+ def to_s
17
+ @parsedValue.rfc822
18
+ end
19
+
15
20
  end
21
+
16
22
  end
17
23
  end
@@ -2,14 +2,15 @@ module Mida
2
2
  module DataType
3
3
 
4
4
  # Number data type
5
- module Number
5
+ # Provides access to Float methods
6
+ class Number < Generic
6
7
 
7
- # Returns the +value+ as a number
8
- # Relies on +Float+ to raise +ArgumentError+ if not valid
9
- def self.extract(value)
10
- Float(value)
8
+ # Raises +ArgumentError+ if value not valid
9
+ def initialize(value)
10
+ @parsedValue = ::Kernel.Float(value)
11
11
  end
12
12
 
13
13
  end
14
+
14
15
  end
15
16
  end
@@ -2,12 +2,14 @@ module Mida
2
2
  module DataType
3
3
 
4
4
  # Text data type
5
- module Text
5
+ class Text < Generic
6
6
 
7
7
  # Returns the value extracted
8
- def self.extract(value)
9
- value
8
+ def initialize(value)
9
+ @parsedValue = value
10
10
  end
11
+
11
12
  end
13
+
12
14
  end
13
15
  end
@@ -0,0 +1,20 @@
1
+ require 'mida/datatype/generic'
2
+ require 'uri'
3
+
4
+ module Mida
5
+ module DataType
6
+
7
+ # URL data type
8
+ # Provides access to URI methods
9
+ class URL < Generic
10
+
11
+ # Raises +ArgumentError+ if value not valid url
12
+ def initialize(value)
13
+ raise ::ArgumentError unless value =~ ::URI::DEFAULT_PARSER.regexp[:ABS_URI]
14
+ @parsedValue = ::URI.parse(value)
15
+ end
16
+
17
+ end
18
+
19
+ end
20
+ end
data/lib/mida/document.rb CHANGED
@@ -15,11 +15,10 @@ module Mida
15
15
  # [target] The string containing the html that you want to parse.
16
16
  # [page_url] The url of target used for form absolute urls. This must
17
17
  # include the filename, e.g. index.html.
18
- # [validate] Whether to validate the items against known vocabularies.
19
- def initialize(target, page_url=nil, validate=true)
18
+ def initialize(target, page_url=nil)
20
19
  @doc = Nokogiri(target)
21
20
  @page_url = page_url
22
- @items = extract_items(validate)
21
+ @items = extract_items
23
22
  end
24
23
 
25
24
  # Implements method for Enumerable
@@ -46,13 +45,13 @@ module Mida
46
45
  end
47
46
 
48
47
  private
49
- def extract_items(validate)
48
+ def extract_items
50
49
  itemscopes = @doc.search('//*[@itemscope and not(@itemprop)]')
51
50
  return nil unless itemscopes
52
51
 
53
52
  itemscopes.collect do |itemscope|
54
53
  itemscope = Itemscope.new(itemscope, @page_url)
55
- Item.new(itemscope, validate)
54
+ Item.new(itemscope)
56
55
  end
57
56
  end
58
57
 
data/lib/mida/item.rb CHANGED
@@ -24,13 +24,12 @@ module Mida
24
24
  # its +properties+
25
25
  #
26
26
  # [itemscope] The itemscope that has been parsed by +Itemscope+
27
- # [validate] Whether to validate the item against known vocabularies
28
- def initialize(itemscope, validate=true)
27
+ def initialize(itemscope)
29
28
  @type = itemscope.type
30
29
  @id = itemscope.id
31
30
  @vocabulary = Mida::Vocabulary.find(@type)
32
31
  @properties = itemscope.properties
33
- validate_properties if validate
32
+ validate_properties
34
33
  end
35
34
 
36
35
  # Return a Hash representation
@@ -149,7 +148,7 @@ module Mida
149
148
  def datatype_extract(valid_types, value)
150
149
  valid_types.find do |type|
151
150
  begin
152
- return type.extract(value) if type.respond_to?(:extract)
151
+ return type.parse(value) if type.respond_to?(:parse)
153
152
  rescue ArgumentError
154
153
  end
155
154
  end
@@ -0,0 +1 @@
1
+ Dir.glob(File.dirname(__FILE__) + '/schemaorg/*.rb') {|file| require file}
@@ -0,0 +1,19 @@
1
+ require 'mida/vocabulary'
2
+
3
+ module Mida
4
+ module SchemaOrg
5
+
6
+ autoload :Thing, 'mida/vocabularies/schemaorg/thing'
7
+ autoload :CreativeWork, 'mida/vocabularies/schemaorg/creativework'
8
+ autoload :WebPage, 'mida/vocabularies/schemaorg/webpage'
9
+
10
+ # Web page type: About page.
11
+ class AboutPage < Mida::Vocabulary
12
+ itemtype %r{http://schema.org/AboutPage}i
13
+ include_vocabulary Mida::SchemaOrg::Thing
14
+ include_vocabulary Mida::SchemaOrg::CreativeWork
15
+ include_vocabulary Mida::SchemaOrg::WebPage
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ require 'mida/vocabulary'
2
+
3
+ module Mida
4
+ module SchemaOrg
5
+
6
+ autoload :Thing, 'mida/vocabularies/schemaorg/thing'
7
+ autoload :Place, 'mida/vocabularies/schemaorg/place'
8
+ autoload :Organization, 'mida/vocabularies/schemaorg/organization'
9
+ autoload :LocalBusiness, 'mida/vocabularies/schemaorg/localbusiness'
10
+
11
+ # Accountancy business.
12
+ class AccountingService < Mida::Vocabulary
13
+ itemtype %r{http://schema.org/AccountingService}i
14
+ include_vocabulary Mida::SchemaOrg::Thing
15
+ include_vocabulary Mida::SchemaOrg::Place
16
+ include_vocabulary Mida::SchemaOrg::Organization
17
+ include_vocabulary Mida::SchemaOrg::LocalBusiness
18
+ end
19
+
20
+ end
21
+ end