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.
- data/CHANGELOG.rdoc +8 -0
- data/{LICENSE.rdoc → LICENCE.rdoc} +1 -1
- data/README.rdoc +2 -2
- data/Rakefile +4 -3
- data/bin/mida +13 -3
- data/lib/mida.rb +2 -1
- data/lib/mida/datatype.rb +2 -0
- data/lib/mida/datatype/boolean.rb +21 -9
- data/lib/mida/datatype/enumeration.rb +28 -0
- data/lib/mida/datatype/float.rb +8 -5
- data/lib/mida/datatype/generic.rb +33 -0
- data/lib/mida/datatype/integer.rb +5 -5
- data/lib/mida/datatype/iso8601date.rb +12 -6
- data/lib/mida/datatype/number.rb +6 -5
- data/lib/mida/datatype/text.rb +5 -3
- data/lib/mida/datatype/url.rb +20 -0
- data/lib/mida/document.rb +4 -5
- data/lib/mida/item.rb +3 -4
- data/lib/mida/{genericvocabulary.rb → vocabularies/genericvocabulary.rb} +0 -0
- data/lib/mida/vocabularies/schemaorg.rb +1 -0
- data/lib/mida/vocabularies/schemaorg/aboutpage.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/accountingservice.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/administrativearea.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/adultentertainment.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/aggregateoffer.rb +34 -0
- data/lib/mida/vocabularies/schemaorg/aggregaterating.rb +33 -0
- data/lib/mida/vocabularies/schemaorg/airport.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/amusementpark.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/animalshelter.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/apartmentcomplex.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/aquarium.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/artgallery.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/article.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/attorney.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/audioobject.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/autobodyshop.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/autodealer.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/automatedteller.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/automotivebusiness.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/autopartsstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/autorental.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/autorepair.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/autowash.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/bakery.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/bankorcreditunion.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/barorpub.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/beach.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/beautysalon.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/bedandbreakfast.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/bikestore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/blog.rb +24 -0
- data/lib/mida/vocabularies/schemaorg/blogposting.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/bodyofwater.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/book.rb +41 -0
- data/lib/mida/vocabularies/schemaorg/bookformattype.rb +16 -0
- data/lib/mida/vocabularies/schemaorg/bookstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/bowlingalley.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/brewery.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/buddhisttemple.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/businessevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/busstation.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/busstop.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/cafeorcoffeeshop.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/campground.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/canal.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/casino.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/catholicchurch.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/cemetery.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/checkoutpage.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/childcare.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/childrensevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/church.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/city.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/cityhall.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/civicstructure.rb +24 -0
- data/lib/mida/vocabularies/schemaorg/clothingstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/collectionpage.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/collegeoruniversity.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/comedyclub.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/comedyevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/computerstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/contactpage.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/contactpoint.rb +27 -0
- data/lib/mida/vocabularies/schemaorg/continent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/conveniencestore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/corporation.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/country.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/courthouse.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/creativework.rb +122 -0
- data/lib/mida/vocabularies/schemaorg/crematorium.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/danceevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/dancegroup.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/dayspa.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/defenceestablishment.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/dentist.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/departmentstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/distance.rb +15 -0
- data/lib/mida/vocabularies/schemaorg/drycleaningorlaundry.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/duration.rb +13 -0
- data/lib/mida/vocabularies/schemaorg/educationalorganization.rb +24 -0
- data/lib/mida/vocabularies/schemaorg/educationevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/electrician.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/electronicsstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/elementaryschool.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/embassy.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/emergencyservice.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/employmentagency.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/energy.rb +15 -0
- data/lib/mida/vocabularies/schemaorg/entertainmentbusiness.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/enumeration.rb +15 -0
- data/lib/mida/vocabularies/schemaorg/event.rb +77 -0
- data/lib/mida/vocabularies/schemaorg/eventvenue.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/exercisegym.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/fastfoodrestaurant.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/festival.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/financialservice.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/firestation.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/florist.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/foodestablishment.rb +36 -0
- data/lib/mida/vocabularies/schemaorg/foodevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/furniturestore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/gardenstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/gasstation.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/gatedresidencecommunity.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/generalcontractor.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/geocoordinates.rb +33 -0
- data/lib/mida/vocabularies/schemaorg/golfcourse.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/governmentbuilding.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/governmentoffice.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/governmentorganization.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/grocerystore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/hairsalon.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/hardwarestore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/healthandbeautybusiness.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/healthclub.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/highschool.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/hindutemple.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/hobbyshop.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/homeandconstructionbusiness.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/homegoodsstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/hospital.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/hostel.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/hotel.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/housepainter.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/hvacbusiness.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/icecreamshop.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/imagegallery.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/imageobject.rb +37 -0
- data/lib/mida/vocabularies/schemaorg/insuranceagency.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/intangible.rb +15 -0
- data/lib/mida/vocabularies/schemaorg/internetcafe.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/itemavailability.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/itemlist.rb +20 -0
- data/lib/mida/vocabularies/schemaorg/itempage.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/jewelrystore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/lakebodyofwater.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/landform.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/landmarksorhistoricalbuildings.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/language.rb +15 -0
- data/lib/mida/vocabularies/schemaorg/legislativebuilding.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/library.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/liquorstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/literaryevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/localbusiness.rb +41 -0
- data/lib/mida/vocabularies/schemaorg/locksmith.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/lodgingbusiness.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/map.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/mass.rb +15 -0
- data/lib/mida/vocabularies/schemaorg/mediaobject.rb +87 -0
- data/lib/mida/vocabularies/schemaorg/medicalclinic.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/medicalorganization.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/mensclothingstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/middleschool.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/mobilephonestore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/mosque.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/motel.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/motorcycledealer.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/motorcyclerepair.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/mountain.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/movie.rb +65 -0
- data/lib/mida/vocabularies/schemaorg/movierentalstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/movietheater.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/movingcompany.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/museum.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/musicalbum.rb +26 -0
- data/lib/mida/vocabularies/schemaorg/musicevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/musicgroup.rb +38 -0
- data/lib/mida/vocabularies/schemaorg/musicplaylist.rb +29 -0
- data/lib/mida/vocabularies/schemaorg/musicrecording.rb +45 -0
- data/lib/mida/vocabularies/schemaorg/musicstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/musicvenue.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/musicvideoobject.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/nailsalon.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/newsarticle.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/ngo.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/nightclub.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/notary.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/nutritioninformation.rb +86 -0
- data/lib/mida/vocabularies/schemaorg/oceanbodyofwater.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/offer.rb +69 -0
- data/lib/mida/vocabularies/schemaorg/offeritemcondition.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/officeequipmentstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/optician.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/organization.rb +96 -0
- data/lib/mida/vocabularies/schemaorg/outletstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/painting.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/park.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/parkingfacility.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/pawnshop.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/performingartstheater.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/performinggroup.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/person.rb +164 -0
- data/lib/mida/vocabularies/schemaorg/petstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/pharmacy.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/photograph.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/physician.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/place.rb +80 -0
- data/lib/mida/vocabularies/schemaorg/placeofworship.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/playground.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/plumber.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/policestation.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/pond.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/postaladdress.rb +39 -0
- data/lib/mida/vocabularies/schemaorg/postoffice.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/preschool.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/product.rb +55 -0
- data/lib/mida/vocabularies/schemaorg/professionalservice.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/profilepage.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/publicswimmingpool.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/quantity.rb +15 -0
- data/lib/mida/vocabularies/schemaorg/radiostation.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/rating.rb +30 -0
- data/lib/mida/vocabularies/schemaorg/realestateagent.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/recipe.rb +61 -0
- data/lib/mida/vocabularies/schemaorg/recyclingcenter.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/reservoir.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/residence.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/restaurant.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/review.rb +33 -0
- data/lib/mida/vocabularies/schemaorg/riverbodyofwater.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/roofingcontractor.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/rvpark.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/saleevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/scholarlyarticle.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/school.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/sculpture.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/seabodyofwater.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/searchresultspage.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/selfstorage.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/shoestore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/shoppingcenter.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/singlefamilyresidence.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/sitenavigationelement.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/skiresort.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/socialevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/sportinggoodsstore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/sportsactivitylocation.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/sportsclub.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/sportsevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/sportsteam.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/stadiumorarena.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/state.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/store.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/structuredvalue.rb +15 -0
- data/lib/mida/vocabularies/schemaorg/subwaystation.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/synagogue.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/table.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/tattooparlor.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/taxistand.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/televisionstation.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/tenniscomplex.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/theaterevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/theatergroup.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/thing.rb +29 -0
- data/lib/mida/vocabularies/schemaorg/tireshop.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/touristattraction.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/touristinformationcenter.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/toystore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/trainstation.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/travelagency.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/tvepisode.rb +77 -0
- data/lib/mida/vocabularies/schemaorg/tvseason.rb +58 -0
- data/lib/mida/vocabularies/schemaorg/tvseries.rb +87 -0
- data/lib/mida/vocabularies/schemaorg/userblocks.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/usercheckins.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/usercomments.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/userdownloads.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/userinteraction.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/userlikes.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/userpagevisits.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/userplays.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/userplusones.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/usertweets.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/veterinarycare.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/videogallery.rb +19 -0
- data/lib/mida/vocabularies/schemaorg/videoobject.rb +42 -0
- data/lib/mida/vocabularies/schemaorg/visualartsevent.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/volcano.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/waterfall.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/webpage.rb +46 -0
- data/lib/mida/vocabularies/schemaorg/webpageelement.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/wholesalestore.rb +21 -0
- data/lib/mida/vocabularies/schemaorg/winery.rb +23 -0
- data/lib/mida/vocabularies/schemaorg/wpadblock.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/wpfooter.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/wpheader.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/wpsidebar.rb +17 -0
- data/lib/mida/vocabularies/schemaorg/zoo.rb +19 -0
- data/lib/mida/vocabulary.rb +11 -6
- data/spec/datatype/boolean_spec.rb +21 -8
- data/spec/datatype/enumeration_spec.rb +30 -0
- data/spec/datatype/float_spec.rb +8 -10
- data/spec/datatype/generic_spec.rb +44 -0
- data/spec/datatype/integer_spec.rb +11 -8
- data/spec/datatype/iso8601date_spec.rb +15 -8
- data/spec/datatype/number_spec.rb +8 -10
- data/spec/datatype/text_spec.rb +8 -6
- data/spec/datatype/url_spec.rb +27 -0
- data/spec/document_spec.rb +0 -21
- data/spec/item_spec.rb +41 -48
- data/spec/vocabulary_spec.rb +51 -0
- metadata +316 -10
|
@@ -2,26 +2,39 @@ require 'mida/datatype'
|
|
|
2
2
|
|
|
3
3
|
describe Mida::DataType::Boolean do
|
|
4
4
|
|
|
5
|
-
it '#
|
|
6
|
-
test = lambda {Mida::DataType::Boolean.
|
|
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 '#
|
|
11
|
-
test = lambda {Mida::DataType::Boolean.
|
|
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 '#
|
|
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.
|
|
17
|
+
Mida::DataType::Boolean.parse(true_text).should be_true
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
it '#
|
|
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.
|
|
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
|
data/spec/datatype/float_spec.rb
CHANGED
|
@@ -2,22 +2,20 @@ require 'mida/datatype'
|
|
|
2
2
|
|
|
3
3
|
describe Mida::DataType::Float do
|
|
4
4
|
|
|
5
|
-
it '#
|
|
6
|
-
test = lambda {Mida::DataType::Float.
|
|
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 '#
|
|
11
|
-
test = lambda {Mida::DataType::Float.
|
|
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 '#
|
|
16
|
-
|
|
17
|
-
|
|
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 '#
|
|
6
|
-
test = lambda {Mida::DataType::Integer.
|
|
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 '#
|
|
11
|
-
test = lambda {Mida::DataType::Integer.
|
|
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 '#
|
|
16
|
-
test = lambda {Mida::DataType::Integer.
|
|
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 '#
|
|
21
|
-
|
|
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 '#
|
|
6
|
-
test = lambda {Mida::DataType::ISO8601Date.
|
|
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 '#
|
|
11
|
-
test = lambda {Mida::DataType::ISO8601Date.
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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 '#
|
|
6
|
-
test = lambda {Mida::DataType::Number.
|
|
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 '#
|
|
11
|
-
test = lambda {Mida::DataType::Number.
|
|
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 '#
|
|
16
|
-
|
|
17
|
-
|
|
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
|
data/spec/datatype/text_spec.rb
CHANGED
|
@@ -2,13 +2,15 @@ require 'mida/datatype'
|
|
|
2
2
|
|
|
3
3
|
describe Mida::DataType::Text do
|
|
4
4
|
|
|
5
|
-
it '#
|
|
6
|
-
|
|
7
|
-
|
|
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 '#
|
|
11
|
-
|
|
12
|
-
Mida::DataType::Text.
|
|
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
|
data/spec/document_spec.rb
CHANGED
|
@@ -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'].
|
|
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
|
-
|
|
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
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
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
|
-
|
|
170
|
-
|
|
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
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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
|
-
|
|
201
|
-
|
|
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'
|