openactive 0.1.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (864) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +68 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +98 -0
  5. data/.yardopts +1 -0
  6. data/Gemfile +6 -0
  7. data/LICENSE +21 -0
  8. data/Makefile +11 -0
  9. data/README.md +35 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/lib/openactive/base_model.rb +122 -0
  14. data/lib/openactive/concerns/json_ld_serializable.rb +43 -0
  15. data/lib/openactive/concerns/type_checker.rb +65 -0
  16. data/lib/openactive/enums/available_channel_type.rb +14 -0
  17. data/lib/openactive/enums/broker_type.rb +11 -0
  18. data/lib/openactive/enums/facility_setting_type.rb +12 -0
  19. data/lib/openactive/enums/gender_restriction_type.rb +12 -0
  20. data/lib/openactive/enums/open_booking_flow_requirement.rb +14 -0
  21. data/lib/openactive/enums/order_creation_status.rb +12 -0
  22. data/lib/openactive/enums/order_item_status.rb +13 -0
  23. data/lib/openactive/enums/order_proposal_status.rb +12 -0
  24. data/lib/openactive/enums/payment_method.rb +10 -0
  25. data/lib/openactive/enums/required_status_type.rb +11 -0
  26. data/lib/openactive/enums/schema/action_status_type.rb +15 -0
  27. data/lib/openactive/enums/schema/boarding_policy_type.rb +13 -0
  28. data/lib/openactive/enums/schema/book_format_type.rb +15 -0
  29. data/lib/openactive/enums/schema/business_entity_type.rb +21 -0
  30. data/lib/openactive/enums/schema/business_function.rb +25 -0
  31. data/lib/openactive/enums/schema/contact_point_option.rb +13 -0
  32. data/lib/openactive/enums/schema/day_of_week.rb +21 -0
  33. data/lib/openactive/enums/schema/delivery_method.rb +26 -0
  34. data/lib/openactive/enums/schema/digital_document_permission_type.rb +14 -0
  35. data/lib/openactive/enums/schema/event_status_type.rb +15 -0
  36. data/lib/openactive/enums/schema/game_play_mode.rb +14 -0
  37. data/lib/openactive/enums/schema/game_server_status.rb +15 -0
  38. data/lib/openactive/enums/schema/gender_type.rb +13 -0
  39. data/lib/openactive/enums/schema/health_aspect_enumeration.rb +33 -0
  40. data/lib/openactive/enums/schema/item_availability.rb +20 -0
  41. data/lib/openactive/enums/schema/item_list_order_type.rb +14 -0
  42. data/lib/openactive/enums/schema/legal_force_status.rb +14 -0
  43. data/lib/openactive/enums/schema/legal_value_level.rb +15 -0
  44. data/lib/openactive/enums/schema/map_category_type.rb +15 -0
  45. data/lib/openactive/enums/schema/music_album_production_type.rb +20 -0
  46. data/lib/openactive/enums/schema/music_album_release_type.rb +15 -0
  47. data/lib/openactive/enums/schema/music_release_format_type.rb +18 -0
  48. data/lib/openactive/enums/schema/offer_item_condition.rb +15 -0
  49. data/lib/openactive/enums/schema/order_status.rb +19 -0
  50. data/lib/openactive/enums/schema/payment_method.rb +26 -0
  51. data/lib/openactive/enums/schema/payment_status_type.rb +16 -0
  52. data/lib/openactive/enums/schema/product_return_enumeration.rb +15 -0
  53. data/lib/openactive/enums/schema/qualitative_value.rb +11 -0
  54. data/lib/openactive/enums/schema/refund_type_enumeration.rb +14 -0
  55. data/lib/openactive/enums/schema/reservation_status_type.rb +15 -0
  56. data/lib/openactive/enums/schema/restricted_diet.rb +22 -0
  57. data/lib/openactive/enums/schema/return_fees_enumeration.rb +14 -0
  58. data/lib/openactive/enums/schema/rsvp_response_type.rb +14 -0
  59. data/lib/openactive/enums/schema/specialty.rb +11 -0
  60. data/lib/openactive/enums/schema/warranty_scope.rb +20 -0
  61. data/lib/openactive/enums/tax_mode.rb +10 -0
  62. data/lib/openactive/exceptions/invalid_argument_exception.rb +6 -0
  63. data/lib/openactive/files_index.json +815 -0
  64. data/lib/openactive/helpers/json_ld.rb +82 -0
  65. data/lib/openactive/json_ld_model.rb +33 -0
  66. data/lib/openactive/models/action.rb +22 -0
  67. data/lib/openactive/models/baby_changing.rb +17 -0
  68. data/lib/openactive/models/bar.rb +13 -0
  69. data/lib/openactive/models/barcode.rb +22 -0
  70. data/lib/openactive/models/booking_service.rb +31 -0
  71. data/lib/openactive/models/boolean_form_field_specification.rb +17 -0
  72. data/lib/openactive/models/brand.rb +46 -0
  73. data/lib/openactive/models/cafe.rb +13 -0
  74. data/lib/openactive/models/cancellation_not_permitted_error.rb +11 -0
  75. data/lib/openactive/models/changing_facilities.rb +17 -0
  76. data/lib/openactive/models/concept.rb +42 -0
  77. data/lib/openactive/models/concept_collection.rb +12 -0
  78. data/lib/openactive/models/concept_scheme.rb +37 -0
  79. data/lib/openactive/models/course.rb +57 -0
  80. data/lib/openactive/models/course_instance.rb +17 -0
  81. data/lib/openactive/models/creche.rb +17 -0
  82. data/lib/openactive/models/data_download.rb +37 -0
  83. data/lib/openactive/models/dataset.rb +100 -0
  84. data/lib/openactive/models/dropdown_form_field_specification.rb +17 -0
  85. data/lib/openactive/models/dynamic_payment.rb +11 -0
  86. data/lib/openactive/models/entry_point.rb +27 -0
  87. data/lib/openactive/models/event.rb +261 -0
  88. data/lib/openactive/models/event_series.rb +12 -0
  89. data/lib/openactive/models/facility_use.rb +139 -0
  90. data/lib/openactive/models/geo_coordinates.rb +24 -0
  91. data/lib/openactive/models/gone_error.rb +11 -0
  92. data/lib/openactive/models/headline_event.rb +17 -0
  93. data/lib/openactive/models/image_object.rb +22 -0
  94. data/lib/openactive/models/incomplete_attendee_details_error.rb +11 -0
  95. data/lib/openactive/models/incomplete_broker_details_error.rb +11 -0
  96. data/lib/openactive/models/incomplete_customer_details_error.rb +11 -0
  97. data/lib/openactive/models/incomplete_intake_form_error.rb +11 -0
  98. data/lib/openactive/models/incomplete_order_item_error.rb +11 -0
  99. data/lib/openactive/models/incomplete_payment_details_error.rb +11 -0
  100. data/lib/openactive/models/indicative_offer.rb +13 -0
  101. data/lib/openactive/models/individual_facility_use.rb +21 -0
  102. data/lib/openactive/models/invalid_apitoken_error.rb +11 -0
  103. data/lib/openactive/models/invalid_authorization_details_error.rb +11 -0
  104. data/lib/openactive/models/invalid_intake_form_error.rb +11 -0
  105. data/lib/openactive/models/invalid_payment_details_error.rb +11 -0
  106. data/lib/openactive/models/lease.rb +26 -0
  107. data/lib/openactive/models/location_feature_specification.rb +23 -0
  108. data/lib/openactive/models/lockers.rb +17 -0
  109. data/lib/openactive/models/method_not_allowed.rb +11 -0
  110. data/lib/openactive/models/no_apitoken_error.rb +11 -0
  111. data/lib/openactive/models/not_found_error.rb +11 -0
  112. data/lib/openactive/models/offer.rb +94 -0
  113. data/lib/openactive/models/offer_override.rb +12 -0
  114. data/lib/openactive/models/open_booking_error.rb +47 -0
  115. data/lib/openactive/models/opening_hours_specification.rb +30 -0
  116. data/lib/openactive/models/opportunity_capacity_is_reserved_by_lease_error.rb +11 -0
  117. data/lib/openactive/models/opportunity_has_insufficient_capacity_error.rb +11 -0
  118. data/lib/openactive/models/opportunity_is_full_error.rb +11 -0
  119. data/lib/openactive/models/opportunity_is_in_conflict_error.rb +11 -0
  120. data/lib/openactive/models/order.rb +91 -0
  121. data/lib/openactive/models/order_already_exists_error.rb +11 -0
  122. data/lib/openactive/models/order_creation_failed_error.rb +11 -0
  123. data/lib/openactive/models/order_item.rb +89 -0
  124. data/lib/openactive/models/order_proposal.rb +28 -0
  125. data/lib/openactive/models/order_quote.rb +33 -0
  126. data/lib/openactive/models/organization.rb +92 -0
  127. data/lib/openactive/models/paragraph_form_field_specification.rb +12 -0
  128. data/lib/openactive/models/parking.rb +17 -0
  129. data/lib/openactive/models/partial_schedule.rb +17 -0
  130. data/lib/openactive/models/patch_contains_excessive_properties.rb +11 -0
  131. data/lib/openactive/models/patch_not_allowed_on_property.rb +11 -0
  132. data/lib/openactive/models/payment.rb +41 -0
  133. data/lib/openactive/models/person.rb +108 -0
  134. data/lib/openactive/models/place.rb +82 -0
  135. data/lib/openactive/models/postal_address.rb +37 -0
  136. data/lib/openactive/models/price_specification.rb +23 -0
  137. data/lib/openactive/models/privacy_policy.rb +11 -0
  138. data/lib/openactive/models/property_value.rb +35 -0
  139. data/lib/openactive/models/property_value_specification.rb +27 -0
  140. data/lib/openactive/models/quantitative_value.rb +24 -0
  141. data/lib/openactive/models/reserve_action.rb +12 -0
  142. data/lib/openactive/models/schedule.rb +100 -0
  143. data/lib/openactive/models/scheduled_session.rb +28 -0
  144. data/lib/openactive/models/schema/3dmodel.rb +13 -0
  145. data/lib/openactive/models/schema/about_page.rb +13 -0
  146. data/lib/openactive/models/schema/accept_action.rb +13 -0
  147. data/lib/openactive/models/schema/accommodation.rb +71 -0
  148. data/lib/openactive/models/schema/accounting_service.rb +13 -0
  149. data/lib/openactive/models/schema/achieve_action.rb +13 -0
  150. data/lib/openactive/models/schema/action.rb +77 -0
  151. data/lib/openactive/models/schema/action_access_specification.rb +61 -0
  152. data/lib/openactive/models/schema/activate_action.rb +13 -0
  153. data/lib/openactive/models/schema/add_action.rb +13 -0
  154. data/lib/openactive/models/schema/administrative_area.rb +13 -0
  155. data/lib/openactive/models/schema/adult_entertainment.rb +13 -0
  156. data/lib/openactive/models/schema/advertiser_content_article.rb +13 -0
  157. data/lib/openactive/models/schema/aggregate_offer.rb +38 -0
  158. data/lib/openactive/models/schema/aggregate_rating.rb +30 -0
  159. data/lib/openactive/models/schema/agree_action.rb +13 -0
  160. data/lib/openactive/models/schema/airline.rb +24 -0
  161. data/lib/openactive/models/schema/airport.rb +23 -0
  162. data/lib/openactive/models/schema/alignment_object.rb +38 -0
  163. data/lib/openactive/models/schema/allocate_action.rb +13 -0
  164. data/lib/openactive/models/schema/amradio_channel.rb +13 -0
  165. data/lib/openactive/models/schema/amusement_park.rb +13 -0
  166. data/lib/openactive/models/schema/analysis_news_article.rb +13 -0
  167. data/lib/openactive/models/schema/animal_shelter.rb +13 -0
  168. data/lib/openactive/models/schema/answer.rb +13 -0
  169. data/lib/openactive/models/schema/apartment.rb +25 -0
  170. data/lib/openactive/models/schema/apartment_complex.rb +13 -0
  171. data/lib/openactive/models/schema/apireference.rb +38 -0
  172. data/lib/openactive/models/schema/append_action.rb +13 -0
  173. data/lib/openactive/models/schema/apply_action.rb +13 -0
  174. data/lib/openactive/models/schema/aquarium.rb +13 -0
  175. data/lib/openactive/models/schema/archive_component.rb +25 -0
  176. data/lib/openactive/models/schema/archive_organization.rb +18 -0
  177. data/lib/openactive/models/schema/arrive_action.rb +13 -0
  178. data/lib/openactive/models/schema/art_gallery.rb +13 -0
  179. data/lib/openactive/models/schema/article.rb +60 -0
  180. data/lib/openactive/models/schema/ask_action.rb +18 -0
  181. data/lib/openactive/models/schema/ask_public_news_article.rb +13 -0
  182. data/lib/openactive/models/schema/assess_action.rb +13 -0
  183. data/lib/openactive/models/schema/assign_action.rb +13 -0
  184. data/lib/openactive/models/schema/attorney.rb +13 -0
  185. data/lib/openactive/models/schema/audience.rb +23 -0
  186. data/lib/openactive/models/schema/audio_object.rb +24 -0
  187. data/lib/openactive/models/schema/authorize_action.rb +21 -0
  188. data/lib/openactive/models/schema/auto_body_shop.rb +13 -0
  189. data/lib/openactive/models/schema/auto_dealer.rb +13 -0
  190. data/lib/openactive/models/schema/auto_parts_store.rb +13 -0
  191. data/lib/openactive/models/schema/auto_rental.rb +13 -0
  192. data/lib/openactive/models/schema/auto_repair.rb +13 -0
  193. data/lib/openactive/models/schema/auto_wash.rb +13 -0
  194. data/lib/openactive/models/schema/automated_teller.rb +13 -0
  195. data/lib/openactive/models/schema/automotive_business.rb +13 -0
  196. data/lib/openactive/models/schema/background_news_article.rb +13 -0
  197. data/lib/openactive/models/schema/bakery.rb +13 -0
  198. data/lib/openactive/models/schema/bank_account.rb +29 -0
  199. data/lib/openactive/models/schema/bank_or_credit_union.rb +13 -0
  200. data/lib/openactive/models/schema/bar_or_pub.rb +13 -0
  201. data/lib/openactive/models/schema/barcode.rb +13 -0
  202. data/lib/openactive/models/schema/beach.rb +13 -0
  203. data/lib/openactive/models/schema/beauty_salon.rb +13 -0
  204. data/lib/openactive/models/schema/bed_and_breakfast.rb +13 -0
  205. data/lib/openactive/models/schema/bed_details.rb +25 -0
  206. data/lib/openactive/models/schema/bed_type.rb +13 -0
  207. data/lib/openactive/models/schema/befriend_action.rb +13 -0
  208. data/lib/openactive/models/schema/bike_store.rb +13 -0
  209. data/lib/openactive/models/schema/blog.rb +28 -0
  210. data/lib/openactive/models/schema/blog_posting.rb +13 -0
  211. data/lib/openactive/models/schema/body_of_water.rb +13 -0
  212. data/lib/openactive/models/schema/book.rb +40 -0
  213. data/lib/openactive/models/schema/book_series.rb +13 -0
  214. data/lib/openactive/models/schema/book_store.rb +13 -0
  215. data/lib/openactive/models/schema/bookmark_action.rb +13 -0
  216. data/lib/openactive/models/schema/borrow_action.rb +19 -0
  217. data/lib/openactive/models/schema/bowling_alley.rb +13 -0
  218. data/lib/openactive/models/schema/brand.rb +34 -0
  219. data/lib/openactive/models/schema/breadcrumb_list.rb +13 -0
  220. data/lib/openactive/models/schema/brewery.rb +13 -0
  221. data/lib/openactive/models/schema/bridge.rb +13 -0
  222. data/lib/openactive/models/schema/broadcast_channel.rb +45 -0
  223. data/lib/openactive/models/schema/broadcast_event.rb +35 -0
  224. data/lib/openactive/models/schema/broadcast_frequency_specification.rb +32 -0
  225. data/lib/openactive/models/schema/broadcast_service.rb +64 -0
  226. data/lib/openactive/models/schema/brokerage_account.rb +13 -0
  227. data/lib/openactive/models/schema/buddhist_temple.rb +13 -0
  228. data/lib/openactive/models/schema/bus_reservation.rb +13 -0
  229. data/lib/openactive/models/schema/bus_station.rb +13 -0
  230. data/lib/openactive/models/schema/bus_stop.rb +13 -0
  231. data/lib/openactive/models/schema/bus_trip.rb +35 -0
  232. data/lib/openactive/models/schema/business_audience.rb +28 -0
  233. data/lib/openactive/models/schema/business_event.rb +13 -0
  234. data/lib/openactive/models/schema/buy_action.rb +30 -0
  235. data/lib/openactive/models/schema/cable_or_satellite_service.rb +13 -0
  236. data/lib/openactive/models/schema/cafe_or_coffee_shop.rb +13 -0
  237. data/lib/openactive/models/schema/campground.rb +13 -0
  238. data/lib/openactive/models/schema/camping_pitch.rb +13 -0
  239. data/lib/openactive/models/schema/canal.rb +13 -0
  240. data/lib/openactive/models/schema/cancel_action.rb +13 -0
  241. data/lib/openactive/models/schema/car.rb +13 -0
  242. data/lib/openactive/models/schema/casino.rb +13 -0
  243. data/lib/openactive/models/schema/category_code.rb +24 -0
  244. data/lib/openactive/models/schema/category_code_set.rb +18 -0
  245. data/lib/openactive/models/schema/catholic_church.rb +13 -0
  246. data/lib/openactive/models/schema/cemetery.rb +13 -0
  247. data/lib/openactive/models/schema/check_action.rb +13 -0
  248. data/lib/openactive/models/schema/check_in_action.rb +13 -0
  249. data/lib/openactive/models/schema/check_out_action.rb +13 -0
  250. data/lib/openactive/models/schema/checkout_page.rb +13 -0
  251. data/lib/openactive/models/schema/child_care.rb +13 -0
  252. data/lib/openactive/models/schema/childrens_event.rb +13 -0
  253. data/lib/openactive/models/schema/choose_action.rb +25 -0
  254. data/lib/openactive/models/schema/church.rb +13 -0
  255. data/lib/openactive/models/schema/city.rb +13 -0
  256. data/lib/openactive/models/schema/city_hall.rb +13 -0
  257. data/lib/openactive/models/schema/civic_structure.rb +18 -0
  258. data/lib/openactive/models/schema/claim.rb +23 -0
  259. data/lib/openactive/models/schema/claim_review.rb +18 -0
  260. data/lib/openactive/models/schema/clip.rb +73 -0
  261. data/lib/openactive/models/schema/clothing_store.rb +13 -0
  262. data/lib/openactive/models/schema/code.rb +13 -0
  263. data/lib/openactive/models/schema/collection_page.rb +13 -0
  264. data/lib/openactive/models/schema/college_or_university.rb +13 -0
  265. data/lib/openactive/models/schema/comedy_club.rb +13 -0
  266. data/lib/openactive/models/schema/comedy_event.rb +13 -0
  267. data/lib/openactive/models/schema/comment.rb +30 -0
  268. data/lib/openactive/models/schema/comment_action.rb +18 -0
  269. data/lib/openactive/models/schema/communicate_action.rb +37 -0
  270. data/lib/openactive/models/schema/complete_data_feed.rb +13 -0
  271. data/lib/openactive/models/schema/compound_price_specification.rb +18 -0
  272. data/lib/openactive/models/schema/computer_language.rb +13 -0
  273. data/lib/openactive/models/schema/computer_store.rb +13 -0
  274. data/lib/openactive/models/schema/confirm_action.rb +13 -0
  275. data/lib/openactive/models/schema/consortium.rb +13 -0
  276. data/lib/openactive/models/schema/consume_action.rb +23 -0
  277. data/lib/openactive/models/schema/contact_page.rb +13 -0
  278. data/lib/openactive/models/schema/contact_point.rb +71 -0
  279. data/lib/openactive/models/schema/continent.rb +13 -0
  280. data/lib/openactive/models/schema/control_action.rb +13 -0
  281. data/lib/openactive/models/schema/convenience_store.rb +13 -0
  282. data/lib/openactive/models/schema/conversation.rb +13 -0
  283. data/lib/openactive/models/schema/cook_action.rb +29 -0
  284. data/lib/openactive/models/schema/corporation.rb +18 -0
  285. data/lib/openactive/models/schema/correction_comment.rb +13 -0
  286. data/lib/openactive/models/schema/country.rb +13 -0
  287. data/lib/openactive/models/schema/course.rb +44 -0
  288. data/lib/openactive/models/schema/course_instance.rb +29 -0
  289. data/lib/openactive/models/schema/courthouse.rb +13 -0
  290. data/lib/openactive/models/schema/create_action.rb +13 -0
  291. data/lib/openactive/models/schema/creative_work.rb +538 -0
  292. data/lib/openactive/models/schema/creative_work_season.rb +75 -0
  293. data/lib/openactive/models/schema/creative_work_series.rb +32 -0
  294. data/lib/openactive/models/schema/credit_card.rb +20 -0
  295. data/lib/openactive/models/schema/crematorium.rb +13 -0
  296. data/lib/openactive/models/schema/critic_review.rb +13 -0
  297. data/lib/openactive/models/schema/css_selector_type.rb +13 -0
  298. data/lib/openactive/models/schema/currency_conversion_service.rb +13 -0
  299. data/lib/openactive/models/schema/dance_event.rb +13 -0
  300. data/lib/openactive/models/schema/dance_group.rb +13 -0
  301. data/lib/openactive/models/schema/data_catalog.rb +24 -0
  302. data/lib/openactive/models/schema/data_download.rb +19 -0
  303. data/lib/openactive/models/schema/data_feed.rb +20 -0
  304. data/lib/openactive/models/schema/data_feed_item.rb +39 -0
  305. data/lib/openactive/models/schema/data_type.rb +13 -0
  306. data/lib/openactive/models/schema/dataset.rb +56 -0
  307. data/lib/openactive/models/schema/dated_money_specification.rb +39 -0
  308. data/lib/openactive/models/schema/day_spa.rb +13 -0
  309. data/lib/openactive/models/schema/deactivate_action.rb +13 -0
  310. data/lib/openactive/models/schema/defence_establishment.rb +13 -0
  311. data/lib/openactive/models/schema/defined_term.rb +24 -0
  312. data/lib/openactive/models/schema/defined_term_set.rb +18 -0
  313. data/lib/openactive/models/schema/delete_action.rb +13 -0
  314. data/lib/openactive/models/schema/delivery_charge_specification.rb +41 -0
  315. data/lib/openactive/models/schema/delivery_event.rb +36 -0
  316. data/lib/openactive/models/schema/demand.rb +204 -0
  317. data/lib/openactive/models/schema/dentist.rb +13 -0
  318. data/lib/openactive/models/schema/depart_action.rb +13 -0
  319. data/lib/openactive/models/schema/department_store.rb +13 -0
  320. data/lib/openactive/models/schema/deposit_account.rb +13 -0
  321. data/lib/openactive/models/schema/digital_document.rb +18 -0
  322. data/lib/openactive/models/schema/digital_document_permission.rb +27 -0
  323. data/lib/openactive/models/schema/disagree_action.rb +13 -0
  324. data/lib/openactive/models/schema/discover_action.rb +13 -0
  325. data/lib/openactive/models/schema/discussion_forum_posting.rb +13 -0
  326. data/lib/openactive/models/schema/dislike_action.rb +13 -0
  327. data/lib/openactive/models/schema/distance.rb +13 -0
  328. data/lib/openactive/models/schema/distillery.rb +13 -0
  329. data/lib/openactive/models/schema/donate_action.rb +21 -0
  330. data/lib/openactive/models/schema/download_action.rb +13 -0
  331. data/lib/openactive/models/schema/draw_action.rb +13 -0
  332. data/lib/openactive/models/schema/drawing.rb +13 -0
  333. data/lib/openactive/models/schema/drink_action.rb +13 -0
  334. data/lib/openactive/models/schema/drive_wheel_configuration_value.rb +13 -0
  335. data/lib/openactive/models/schema/dry_cleaning_or_laundry.rb +13 -0
  336. data/lib/openactive/models/schema/duration.rb +13 -0
  337. data/lib/openactive/models/schema/eat_action.rb +13 -0
  338. data/lib/openactive/models/schema/education_event.rb +13 -0
  339. data/lib/openactive/models/schema/educational_audience.rb +18 -0
  340. data/lib/openactive/models/schema/educational_occupational_credential.rb +39 -0
  341. data/lib/openactive/models/schema/educational_occupational_program.rb +39 -0
  342. data/lib/openactive/models/schema/educational_organization.rb +18 -0
  343. data/lib/openactive/models/schema/electrician.rb +13 -0
  344. data/lib/openactive/models/schema/electronics_store.rb +13 -0
  345. data/lib/openactive/models/schema/elementary_school.rb +13 -0
  346. data/lib/openactive/models/schema/email_message.rb +13 -0
  347. data/lib/openactive/models/schema/embassy.rb +13 -0
  348. data/lib/openactive/models/schema/emergency_service.rb +13 -0
  349. data/lib/openactive/models/schema/employee_role.rb +26 -0
  350. data/lib/openactive/models/schema/employer_aggregate_rating.rb +13 -0
  351. data/lib/openactive/models/schema/employer_review.rb +13 -0
  352. data/lib/openactive/models/schema/employment_agency.rb +13 -0
  353. data/lib/openactive/models/schema/endorse_action.rb +19 -0
  354. data/lib/openactive/models/schema/endorsement_rating.rb +13 -0
  355. data/lib/openactive/models/schema/energy.rb +13 -0
  356. data/lib/openactive/models/schema/engine_specification.rb +21 -0
  357. data/lib/openactive/models/schema/entertainment_business.rb +13 -0
  358. data/lib/openactive/models/schema/entry_point.rb +49 -0
  359. data/lib/openactive/models/schema/enumeration.rb +13 -0
  360. data/lib/openactive/models/schema/episode.rb +66 -0
  361. data/lib/openactive/models/schema/event.rb +213 -0
  362. data/lib/openactive/models/schema/event_reservation.rb +13 -0
  363. data/lib/openactive/models/schema/event_series.rb +13 -0
  364. data/lib/openactive/models/schema/event_venue.rb +13 -0
  365. data/lib/openactive/models/schema/exchange_rate_specification.rb +25 -0
  366. data/lib/openactive/models/schema/exercise_action.rb +58 -0
  367. data/lib/openactive/models/schema/exercise_gym.rb +13 -0
  368. data/lib/openactive/models/schema/exhibition_event.rb +13 -0
  369. data/lib/openactive/models/schema/faqpage.rb +13 -0
  370. data/lib/openactive/models/schema/fast_food_restaurant.rb +13 -0
  371. data/lib/openactive/models/schema/festival.rb +13 -0
  372. data/lib/openactive/models/schema/film_action.rb +13 -0
  373. data/lib/openactive/models/schema/financial_product.rb +33 -0
  374. data/lib/openactive/models/schema/financial_service.rb +19 -0
  375. data/lib/openactive/models/schema/find_action.rb +13 -0
  376. data/lib/openactive/models/schema/fire_station.rb +13 -0
  377. data/lib/openactive/models/schema/flight.rb +95 -0
  378. data/lib/openactive/models/schema/flight_reservation.rb +35 -0
  379. data/lib/openactive/models/schema/float.rb +13 -0
  380. data/lib/openactive/models/schema/florist.rb +13 -0
  381. data/lib/openactive/models/schema/fmradio_channel.rb +13 -0
  382. data/lib/openactive/models/schema/follow_action.rb +19 -0
  383. data/lib/openactive/models/schema/food_establishment.rb +45 -0
  384. data/lib/openactive/models/schema/food_establishment_reservation.rb +34 -0
  385. data/lib/openactive/models/schema/food_event.rb +13 -0
  386. data/lib/openactive/models/schema/food_service.rb +13 -0
  387. data/lib/openactive/models/schema/funding_agency.rb +13 -0
  388. data/lib/openactive/models/schema/funding_scheme.rb +13 -0
  389. data/lib/openactive/models/schema/furniture_store.rb +13 -0
  390. data/lib/openactive/models/schema/game.rb +40 -0
  391. data/lib/openactive/models/schema/game_server.rb +30 -0
  392. data/lib/openactive/models/schema/garden_store.rb +13 -0
  393. data/lib/openactive/models/schema/gas_station.rb +13 -0
  394. data/lib/openactive/models/schema/gated_residence_community.rb +13 -0
  395. data/lib/openactive/models/schema/general_contractor.rb +13 -0
  396. data/lib/openactive/models/schema/geo_circle.rb +26 -0
  397. data/lib/openactive/models/schema/geo_coordinates.rb +51 -0
  398. data/lib/openactive/models/schema/geo_shape.rb +57 -0
  399. data/lib/openactive/models/schema/geospatial_geometry.rb +13 -0
  400. data/lib/openactive/models/schema/give_action.rb +21 -0
  401. data/lib/openactive/models/schema/golf_course.rb +13 -0
  402. data/lib/openactive/models/schema/government_building.rb +13 -0
  403. data/lib/openactive/models/schema/government_office.rb +13 -0
  404. data/lib/openactive/models/schema/government_organization.rb +13 -0
  405. data/lib/openactive/models/schema/government_permit.rb +13 -0
  406. data/lib/openactive/models/schema/government_service.rb +18 -0
  407. data/lib/openactive/models/schema/grant.rb +18 -0
  408. data/lib/openactive/models/schema/grocery_store.rb +13 -0
  409. data/lib/openactive/models/schema/hair_salon.rb +13 -0
  410. data/lib/openactive/models/schema/hardware_store.rb +13 -0
  411. data/lib/openactive/models/schema/health_and_beauty_business.rb +13 -0
  412. data/lib/openactive/models/schema/health_club.rb +13 -0
  413. data/lib/openactive/models/schema/health_insurance_plan.rb +54 -0
  414. data/lib/openactive/models/schema/health_plan_cost_sharing_specification.rb +39 -0
  415. data/lib/openactive/models/schema/health_plan_formulary.rb +30 -0
  416. data/lib/openactive/models/schema/health_plan_network.rb +29 -0
  417. data/lib/openactive/models/schema/health_topic_content.rb +19 -0
  418. data/lib/openactive/models/schema/high_school.rb +13 -0
  419. data/lib/openactive/models/schema/hindu_temple.rb +13 -0
  420. data/lib/openactive/models/schema/hobby_shop.rb +13 -0
  421. data/lib/openactive/models/schema/home_and_construction_business.rb +13 -0
  422. data/lib/openactive/models/schema/home_goods_store.rb +13 -0
  423. data/lib/openactive/models/schema/hospital.rb +13 -0
  424. data/lib/openactive/models/schema/hostel.rb +13 -0
  425. data/lib/openactive/models/schema/hotel.rb +13 -0
  426. data/lib/openactive/models/schema/hotel_room.rb +25 -0
  427. data/lib/openactive/models/schema/house.rb +20 -0
  428. data/lib/openactive/models/schema/house_painter.rb +13 -0
  429. data/lib/openactive/models/schema/how_to.rb +70 -0
  430. data/lib/openactive/models/schema/how_to_direction.rb +61 -0
  431. data/lib/openactive/models/schema/how_to_item.rb +21 -0
  432. data/lib/openactive/models/schema/how_to_section.rb +20 -0
  433. data/lib/openactive/models/schema/how_to_step.rb +13 -0
  434. data/lib/openactive/models/schema/how_to_supply.rb +19 -0
  435. data/lib/openactive/models/schema/how_to_tip.rb +13 -0
  436. data/lib/openactive/models/schema/how_to_tool.rb +13 -0
  437. data/lib/openactive/models/schema/hvacbusiness.rb +13 -0
  438. data/lib/openactive/models/schema/ice_cream_shop.rb +13 -0
  439. data/lib/openactive/models/schema/ignore_action.rb +13 -0
  440. data/lib/openactive/models/schema/image_gallery.rb +13 -0
  441. data/lib/openactive/models/schema/image_object.rb +36 -0
  442. data/lib/openactive/models/schema/individual_product.rb +18 -0
  443. data/lib/openactive/models/schema/inform_action.rb +18 -0
  444. data/lib/openactive/models/schema/insert_action.rb +18 -0
  445. data/lib/openactive/models/schema/install_action.rb +13 -0
  446. data/lib/openactive/models/schema/insurance_agency.rb +13 -0
  447. data/lib/openactive/models/schema/intangible.rb +13 -0
  448. data/lib/openactive/models/schema/integer.rb +13 -0
  449. data/lib/openactive/models/schema/interact_action.rb +13 -0
  450. data/lib/openactive/models/schema/interaction_counter.rb +30 -0
  451. data/lib/openactive/models/schema/internet_cafe.rb +13 -0
  452. data/lib/openactive/models/schema/investment_fund.rb +13 -0
  453. data/lib/openactive/models/schema/investment_or_deposit.rb +20 -0
  454. data/lib/openactive/models/schema/invite_action.rb +18 -0
  455. data/lib/openactive/models/schema/invoice.rb +107 -0
  456. data/lib/openactive/models/schema/item_list.rb +33 -0
  457. data/lib/openactive/models/schema/item_page.rb +13 -0
  458. data/lib/openactive/models/schema/jewelry_store.rb +13 -0
  459. data/lib/openactive/models/schema/job_posting.rb +175 -0
  460. data/lib/openactive/models/schema/join_action.rb +18 -0
  461. data/lib/openactive/models/schema/lake_body_of_water.rb +13 -0
  462. data/lib/openactive/models/schema/landform.rb +13 -0
  463. data/lib/openactive/models/schema/landmarks_or_historical_buildings.rb +13 -0
  464. data/lib/openactive/models/schema/language.rb +13 -0
  465. data/lib/openactive/models/schema/leave_action.rb +18 -0
  466. data/lib/openactive/models/schema/legal_service.rb +13 -0
  467. data/lib/openactive/models/schema/legislation.rb +81 -0
  468. data/lib/openactive/models/schema/legislation_object.rb +19 -0
  469. data/lib/openactive/models/schema/legislative_building.rb +13 -0
  470. data/lib/openactive/models/schema/lend_action.rb +18 -0
  471. data/lib/openactive/models/schema/library.rb +13 -0
  472. data/lib/openactive/models/schema/library_system.rb +13 -0
  473. data/lib/openactive/models/schema/like_action.rb +13 -0
  474. data/lib/openactive/models/schema/link_role.rb +18 -0
  475. data/lib/openactive/models/schema/liquor_store.rb +13 -0
  476. data/lib/openactive/models/schema/list_item.rb +35 -0
  477. data/lib/openactive/models/schema/listen_action.rb +13 -0
  478. data/lib/openactive/models/schema/literary_event.rb +13 -0
  479. data/lib/openactive/models/schema/live_blog_posting.rb +30 -0
  480. data/lib/openactive/models/schema/loan_or_credit.rb +65 -0
  481. data/lib/openactive/models/schema/local_business.rb +38 -0
  482. data/lib/openactive/models/schema/location_feature_specification.rb +32 -0
  483. data/lib/openactive/models/schema/locker_delivery.rb +13 -0
  484. data/lib/openactive/models/schema/locksmith.rb +13 -0
  485. data/lib/openactive/models/schema/lodging_business.rb +62 -0
  486. data/lib/openactive/models/schema/lodging_reservation.rb +53 -0
  487. data/lib/openactive/models/schema/lose_action.rb +18 -0
  488. data/lib/openactive/models/schema/manuscript.rb +13 -0
  489. data/lib/openactive/models/schema/map.rb +19 -0
  490. data/lib/openactive/models/schema/marry_action.rb +13 -0
  491. data/lib/openactive/models/schema/mass.rb +13 -0
  492. data/lib/openactive/models/schema/media_object.rb +109 -0
  493. data/lib/openactive/models/schema/media_subscription.rb +23 -0
  494. data/lib/openactive/models/schema/medical_organization.rb +24 -0
  495. data/lib/openactive/models/schema/meeting_room.rb +13 -0
  496. data/lib/openactive/models/schema/mens_clothing_store.rb +13 -0
  497. data/lib/openactive/models/schema/menu.rb +23 -0
  498. data/lib/openactive/models/schema/menu_item.rb +35 -0
  499. data/lib/openactive/models/schema/menu_section.rb +23 -0
  500. data/lib/openactive/models/schema/message.rb +74 -0
  501. data/lib/openactive/models/schema/middle_school.rb +13 -0
  502. data/lib/openactive/models/schema/mobile_application.rb +18 -0
  503. data/lib/openactive/models/schema/mobile_phone_store.rb +13 -0
  504. data/lib/openactive/models/schema/monetary_amount.rb +53 -0
  505. data/lib/openactive/models/schema/monetary_amount_distribution.rb +18 -0
  506. data/lib/openactive/models/schema/monetary_grant.rb +13 -0
  507. data/lib/openactive/models/schema/money_transfer.rb +19 -0
  508. data/lib/openactive/models/schema/mortgage_loan.rb +24 -0
  509. data/lib/openactive/models/schema/mosque.rb +13 -0
  510. data/lib/openactive/models/schema/motel.rb +13 -0
  511. data/lib/openactive/models/schema/motorcycle_dealer.rb +13 -0
  512. data/lib/openactive/models/schema/motorcycle_repair.rb +13 -0
  513. data/lib/openactive/models/schema/mountain.rb +13 -0
  514. data/lib/openactive/models/schema/move_action.rb +23 -0
  515. data/lib/openactive/models/schema/movie.rb +66 -0
  516. data/lib/openactive/models/schema/movie_clip.rb +13 -0
  517. data/lib/openactive/models/schema/movie_rental_store.rb +13 -0
  518. data/lib/openactive/models/schema/movie_series.rb +49 -0
  519. data/lib/openactive/models/schema/movie_theater.rb +19 -0
  520. data/lib/openactive/models/schema/moving_company.rb +13 -0
  521. data/lib/openactive/models/schema/museum.rb +13 -0
  522. data/lib/openactive/models/schema/music_album.rb +36 -0
  523. data/lib/openactive/models/schema/music_composition.rb +64 -0
  524. data/lib/openactive/models/schema/music_event.rb +13 -0
  525. data/lib/openactive/models/schema/music_group.rb +45 -0
  526. data/lib/openactive/models/schema/music_playlist.rb +30 -0
  527. data/lib/openactive/models/schema/music_recording.rb +45 -0
  528. data/lib/openactive/models/schema/music_release.rb +46 -0
  529. data/lib/openactive/models/schema/music_store.rb +13 -0
  530. data/lib/openactive/models/schema/music_venue.rb +13 -0
  531. data/lib/openactive/models/schema/music_video_object.rb +13 -0
  532. data/lib/openactive/models/schema/nail_salon.rb +13 -0
  533. data/lib/openactive/models/schema/news_article.rb +38 -0
  534. data/lib/openactive/models/schema/news_media_organization.rb +81 -0
  535. data/lib/openactive/models/schema/ngo.rb +13 -0
  536. data/lib/openactive/models/schema/night_club.rb +13 -0
  537. data/lib/openactive/models/schema/notary.rb +13 -0
  538. data/lib/openactive/models/schema/note_digital_document.rb +13 -0
  539. data/lib/openactive/models/schema/nutrition_information.rb +73 -0
  540. data/lib/openactive/models/schema/observation.rb +40 -0
  541. data/lib/openactive/models/schema/occupation.rb +60 -0
  542. data/lib/openactive/models/schema/ocean_body_of_water.rb +13 -0
  543. data/lib/openactive/models/schema/offer.rb +254 -0
  544. data/lib/openactive/models/schema/offer_catalog.rb +13 -0
  545. data/lib/openactive/models/schema/offer_for_lease.rb +13 -0
  546. data/lib/openactive/models/schema/offer_for_purchase.rb +13 -0
  547. data/lib/openactive/models/schema/office_equipment_store.rb +13 -0
  548. data/lib/openactive/models/schema/on_demand_event.rb +13 -0
  549. data/lib/openactive/models/schema/opening_hours_specification.rb +45 -0
  550. data/lib/openactive/models/schema/opinion_news_article.rb +13 -0
  551. data/lib/openactive/models/schema/order.rb +139 -0
  552. data/lib/openactive/models/schema/order_action.rb +19 -0
  553. data/lib/openactive/models/schema/order_item.rb +42 -0
  554. data/lib/openactive/models/schema/organization.rb +349 -0
  555. data/lib/openactive/models/schema/organization_role.rb +19 -0
  556. data/lib/openactive/models/schema/organize_action.rb +13 -0
  557. data/lib/openactive/models/schema/outlet_store.rb +13 -0
  558. data/lib/openactive/models/schema/ownership_info.rb +37 -0
  559. data/lib/openactive/models/schema/paint_action.rb +13 -0
  560. data/lib/openactive/models/schema/painting.rb +13 -0
  561. data/lib/openactive/models/schema/parcel_delivery.rb +79 -0
  562. data/lib/openactive/models/schema/parcel_service.rb +13 -0
  563. data/lib/openactive/models/schema/parent_audience.rb +25 -0
  564. data/lib/openactive/models/schema/park.rb +13 -0
  565. data/lib/openactive/models/schema/parking_facility.rb +13 -0
  566. data/lib/openactive/models/schema/pawn_shop.rb +13 -0
  567. data/lib/openactive/models/schema/pay_action.rb +21 -0
  568. data/lib/openactive/models/schema/payment_card.rb +31 -0
  569. data/lib/openactive/models/schema/payment_charge_specification.rb +25 -0
  570. data/lib/openactive/models/schema/payment_service.rb +13 -0
  571. data/lib/openactive/models/schema/people_audience.rb +47 -0
  572. data/lib/openactive/models/schema/perform_action.rb +18 -0
  573. data/lib/openactive/models/schema/performance_role.rb +18 -0
  574. data/lib/openactive/models/schema/performing_arts_theater.rb +13 -0
  575. data/lib/openactive/models/schema/performing_group.rb +13 -0
  576. data/lib/openactive/models/schema/periodical.rb +13 -0
  577. data/lib/openactive/models/schema/permit.rb +52 -0
  578. data/lib/openactive/models/schema/person.rb +339 -0
  579. data/lib/openactive/models/schema/pet_store.rb +13 -0
  580. data/lib/openactive/models/schema/pharmacy.rb +13 -0
  581. data/lib/openactive/models/schema/photograph.rb +13 -0
  582. data/lib/openactive/models/schema/photograph_action.rb +13 -0
  583. data/lib/openactive/models/schema/physician.rb +13 -0
  584. data/lib/openactive/models/schema/place.rb +247 -0
  585. data/lib/openactive/models/schema/place_of_worship.rb +13 -0
  586. data/lib/openactive/models/schema/plan_action.rb +19 -0
  587. data/lib/openactive/models/schema/play.rb +13 -0
  588. data/lib/openactive/models/schema/play_action.rb +23 -0
  589. data/lib/openactive/models/schema/playground.rb +13 -0
  590. data/lib/openactive/models/schema/plumber.rb +13 -0
  591. data/lib/openactive/models/schema/podcast_episode.rb +13 -0
  592. data/lib/openactive/models/schema/podcast_season.rb +13 -0
  593. data/lib/openactive/models/schema/podcast_series.rb +18 -0
  594. data/lib/openactive/models/schema/police_station.rb +13 -0
  595. data/lib/openactive/models/schema/pond.rb +13 -0
  596. data/lib/openactive/models/schema/post_office.rb +13 -0
  597. data/lib/openactive/models/schema/postal_address.rb +44 -0
  598. data/lib/openactive/models/schema/poster.rb +13 -0
  599. data/lib/openactive/models/schema/pre_order_action.rb +13 -0
  600. data/lib/openactive/models/schema/prepend_action.rb +13 -0
  601. data/lib/openactive/models/schema/preschool.rb +13 -0
  602. data/lib/openactive/models/schema/presentation_digital_document.rb +13 -0
  603. data/lib/openactive/models/schema/price_specification.rb +67 -0
  604. data/lib/openactive/models/schema/product.rb +218 -0
  605. data/lib/openactive/models/schema/product_model.rb +28 -0
  606. data/lib/openactive/models/schema/product_return_policy.rb +48 -0
  607. data/lib/openactive/models/schema/professional_service.rb +13 -0
  608. data/lib/openactive/models/schema/profile_page.rb +13 -0
  609. data/lib/openactive/models/schema/program_membership.rb +47 -0
  610. data/lib/openactive/models/schema/project.rb +13 -0
  611. data/lib/openactive/models/schema/property_value.rb +67 -0
  612. data/lib/openactive/models/schema/property_value_specification.rb +77 -0
  613. data/lib/openactive/models/schema/public_swimming_pool.rb +13 -0
  614. data/lib/openactive/models/schema/public_toilet.rb +13 -0
  615. data/lib/openactive/models/schema/publication_event.rb +30 -0
  616. data/lib/openactive/models/schema/publication_issue.rb +39 -0
  617. data/lib/openactive/models/schema/publication_volume.rb +39 -0
  618. data/lib/openactive/models/schema/qapage.rb +13 -0
  619. data/lib/openactive/models/schema/quantitative_value.rb +60 -0
  620. data/lib/openactive/models/schema/quantitative_value_distribution.rb +49 -0
  621. data/lib/openactive/models/schema/quantity.rb +13 -0
  622. data/lib/openactive/models/schema/question.rb +43 -0
  623. data/lib/openactive/models/schema/quotation.rb +19 -0
  624. data/lib/openactive/models/schema/quote_action.rb +13 -0
  625. data/lib/openactive/models/schema/radio_broadcast_service.rb +13 -0
  626. data/lib/openactive/models/schema/radio_channel.rb +13 -0
  627. data/lib/openactive/models/schema/radio_clip.rb +13 -0
  628. data/lib/openactive/models/schema/radio_episode.rb +13 -0
  629. data/lib/openactive/models/schema/radio_season.rb +13 -0
  630. data/lib/openactive/models/schema/radio_series.rb +86 -0
  631. data/lib/openactive/models/schema/radio_station.rb +13 -0
  632. data/lib/openactive/models/schema/rating.rb +50 -0
  633. data/lib/openactive/models/schema/react_action.rb +13 -0
  634. data/lib/openactive/models/schema/read_action.rb +13 -0
  635. data/lib/openactive/models/schema/real_estate_agent.rb +13 -0
  636. data/lib/openactive/models/schema/real_estate_listing.rb +20 -0
  637. data/lib/openactive/models/schema/receive_action.rb +26 -0
  638. data/lib/openactive/models/schema/recipe.rb +68 -0
  639. data/lib/openactive/models/schema/recycling_center.rb +13 -0
  640. data/lib/openactive/models/schema/register_action.rb +13 -0
  641. data/lib/openactive/models/schema/reject_action.rb +13 -0
  642. data/lib/openactive/models/schema/rent_action.rb +24 -0
  643. data/lib/openactive/models/schema/rental_car_reservation.rb +35 -0
  644. data/lib/openactive/models/schema/repayment_specification.rb +42 -0
  645. data/lib/openactive/models/schema/replace_action.rb +23 -0
  646. data/lib/openactive/models/schema/reply_action.rb +18 -0
  647. data/lib/openactive/models/schema/report.rb +18 -0
  648. data/lib/openactive/models/schema/reportage_news_article.rb +13 -0
  649. data/lib/openactive/models/schema/research_project.rb +13 -0
  650. data/lib/openactive/models/schema/reservation.rb +88 -0
  651. data/lib/openactive/models/schema/reservation_package.rb +18 -0
  652. data/lib/openactive/models/schema/reserve_action.rb +13 -0
  653. data/lib/openactive/models/schema/reservoir.rb +13 -0
  654. data/lib/openactive/models/schema/residence.rb +13 -0
  655. data/lib/openactive/models/schema/resort.rb +13 -0
  656. data/lib/openactive/models/schema/restaurant.rb +13 -0
  657. data/lib/openactive/models/schema/resume_action.rb +13 -0
  658. data/lib/openactive/models/schema/return_action.rb +21 -0
  659. data/lib/openactive/models/schema/review.rb +33 -0
  660. data/lib/openactive/models/schema/review_action.rb +18 -0
  661. data/lib/openactive/models/schema/review_news_article.rb +13 -0
  662. data/lib/openactive/models/schema/river_body_of_water.rb +13 -0
  663. data/lib/openactive/models/schema/role.rb +39 -0
  664. data/lib/openactive/models/schema/roofing_contractor.rb +13 -0
  665. data/lib/openactive/models/schema/room.rb +13 -0
  666. data/lib/openactive/models/schema/rsvp_action.rb +30 -0
  667. data/lib/openactive/models/schema/rvpark.rb +13 -0
  668. data/lib/openactive/models/schema/sale_event.rb +13 -0
  669. data/lib/openactive/models/schema/satirical_article.rb +13 -0
  670. data/lib/openactive/models/schema/schedule.rb +57 -0
  671. data/lib/openactive/models/schema/schedule_action.rb +13 -0
  672. data/lib/openactive/models/schema/scholarly_article.rb +13 -0
  673. data/lib/openactive/models/schema/school.rb +13 -0
  674. data/lib/openactive/models/schema/screening_event.rb +29 -0
  675. data/lib/openactive/models/schema/sculpture.rb +13 -0
  676. data/lib/openactive/models/schema/sea_body_of_water.rb +13 -0
  677. data/lib/openactive/models/schema/search_action.rb +18 -0
  678. data/lib/openactive/models/schema/search_results_page.rb +13 -0
  679. data/lib/openactive/models/schema/season.rb +13 -0
  680. data/lib/openactive/models/schema/seat.rb +35 -0
  681. data/lib/openactive/models/schema/self_storage.rb +13 -0
  682. data/lib/openactive/models/schema/sell_action.rb +23 -0
  683. data/lib/openactive/models/schema/send_action.rb +27 -0
  684. data/lib/openactive/models/schema/series.rb +13 -0
  685. data/lib/openactive/models/schema/service.rb +146 -0
  686. data/lib/openactive/models/schema/service_channel.rb +55 -0
  687. data/lib/openactive/models/schema/share_action.rb +13 -0
  688. data/lib/openactive/models/schema/sheet_music.rb +13 -0
  689. data/lib/openactive/models/schema/shoe_store.rb +13 -0
  690. data/lib/openactive/models/schema/shopping_center.rb +13 -0
  691. data/lib/openactive/models/schema/short_story.rb +13 -0
  692. data/lib/openactive/models/schema/single_family_residence.rb +25 -0
  693. data/lib/openactive/models/schema/site_navigation_element.rb +13 -0
  694. data/lib/openactive/models/schema/ski_resort.rb +13 -0
  695. data/lib/openactive/models/schema/social_event.rb +13 -0
  696. data/lib/openactive/models/schema/social_media_posting.rb +18 -0
  697. data/lib/openactive/models/schema/software_application.rb +142 -0
  698. data/lib/openactive/models/schema/software_source_code.rb +49 -0
  699. data/lib/openactive/models/schema/some_products.rb +18 -0
  700. data/lib/openactive/models/schema/speakable_specification.rb +23 -0
  701. data/lib/openactive/models/schema/sporting_goods_store.rb +13 -0
  702. data/lib/openactive/models/schema/sports_activity_location.rb +13 -0
  703. data/lib/openactive/models/schema/sports_club.rb +13 -0
  704. data/lib/openactive/models/schema/sports_event.rb +31 -0
  705. data/lib/openactive/models/schema/sports_organization.rb +19 -0
  706. data/lib/openactive/models/schema/sports_team.rb +30 -0
  707. data/lib/openactive/models/schema/spreadsheet_digital_document.rb +13 -0
  708. data/lib/openactive/models/schema/stadium_or_arena.rb +13 -0
  709. data/lib/openactive/models/schema/state.rb +13 -0
  710. data/lib/openactive/models/schema/statistical_population.rb +29 -0
  711. data/lib/openactive/models/schema/steering_position_value.rb +13 -0
  712. data/lib/openactive/models/schema/store.rb +13 -0
  713. data/lib/openactive/models/schema/structured_value.rb +13 -0
  714. data/lib/openactive/models/schema/subscribe_action.rb +13 -0
  715. data/lib/openactive/models/schema/subway_station.rb +13 -0
  716. data/lib/openactive/models/schema/suite.rb +32 -0
  717. data/lib/openactive/models/schema/suspend_action.rb +13 -0
  718. data/lib/openactive/models/schema/synagogue.rb +13 -0
  719. data/lib/openactive/models/schema/table.rb +13 -0
  720. data/lib/openactive/models/schema/take_action.rb +13 -0
  721. data/lib/openactive/models/schema/tattoo_parlor.rb +13 -0
  722. data/lib/openactive/models/schema/taxi.rb +13 -0
  723. data/lib/openactive/models/schema/taxi_reservation.rb +31 -0
  724. data/lib/openactive/models/schema/taxi_service.rb +13 -0
  725. data/lib/openactive/models/schema/taxi_stand.rb +13 -0
  726. data/lib/openactive/models/schema/tech_article.rb +23 -0
  727. data/lib/openactive/models/schema/television_channel.rb +13 -0
  728. data/lib/openactive/models/schema/television_station.rb +13 -0
  729. data/lib/openactive/models/schema/tennis_complex.rb +13 -0
  730. data/lib/openactive/models/schema/text_digital_document.rb +13 -0
  731. data/lib/openactive/models/schema/theater_event.rb +13 -0
  732. data/lib/openactive/models/schema/theater_group.rb +13 -0
  733. data/lib/openactive/models/schema/thing.rb +78 -0
  734. data/lib/openactive/models/schema/ticket.rb +60 -0
  735. data/lib/openactive/models/schema/tie_action.rb +13 -0
  736. data/lib/openactive/models/schema/tip_action.rb +21 -0
  737. data/lib/openactive/models/schema/tire_shop.rb +13 -0
  738. data/lib/openactive/models/schema/tourist_attraction.rb +25 -0
  739. data/lib/openactive/models/schema/tourist_destination.rb +18 -0
  740. data/lib/openactive/models/schema/tourist_information_center.rb +13 -0
  741. data/lib/openactive/models/schema/tourist_trip.rb +13 -0
  742. data/lib/openactive/models/schema/toy_store.rb +13 -0
  743. data/lib/openactive/models/schema/track_action.rb +19 -0
  744. data/lib/openactive/models/schema/trade_action.rb +30 -0
  745. data/lib/openactive/models/schema/train_reservation.rb +13 -0
  746. data/lib/openactive/models/schema/train_station.rb +13 -0
  747. data/lib/openactive/models/schema/train_trip.rb +43 -0
  748. data/lib/openactive/models/schema/transfer_action.rb +23 -0
  749. data/lib/openactive/models/schema/travel_action.rb +18 -0
  750. data/lib/openactive/models/schema/travel_agency.rb +13 -0
  751. data/lib/openactive/models/schema/trip.rb +54 -0
  752. data/lib/openactive/models/schema/tvclip.rb +18 -0
  753. data/lib/openactive/models/schema/tvepisode.rb +29 -0
  754. data/lib/openactive/models/schema/tvseason.rb +23 -0
  755. data/lib/openactive/models/schema/tvseries.rb +91 -0
  756. data/lib/openactive/models/schema/type_and_quantity_node.rb +42 -0
  757. data/lib/openactive/models/schema/un_register_action.rb +13 -0
  758. data/lib/openactive/models/schema/unit_price_specification.rb +40 -0
  759. data/lib/openactive/models/schema/update_action.rb +23 -0
  760. data/lib/openactive/models/schema/url.rb +13 -0
  761. data/lib/openactive/models/schema/use_action.rb +13 -0
  762. data/lib/openactive/models/schema/user_blocks.rb +13 -0
  763. data/lib/openactive/models/schema/user_checkins.rb +13 -0
  764. data/lib/openactive/models/schema/user_comments.rb +41 -0
  765. data/lib/openactive/models/schema/user_downloads.rb +13 -0
  766. data/lib/openactive/models/schema/user_interaction.rb +13 -0
  767. data/lib/openactive/models/schema/user_likes.rb +13 -0
  768. data/lib/openactive/models/schema/user_page_visits.rb +13 -0
  769. data/lib/openactive/models/schema/user_plays.rb +13 -0
  770. data/lib/openactive/models/schema/user_plus_ones.rb +13 -0
  771. data/lib/openactive/models/schema/user_review.rb +13 -0
  772. data/lib/openactive/models/schema/user_tweets.rb +13 -0
  773. data/lib/openactive/models/schema/vehicle.rb +161 -0
  774. data/lib/openactive/models/schema/video_gallery.rb +13 -0
  775. data/lib/openactive/models/schema/video_game.rb +72 -0
  776. data/lib/openactive/models/schema/video_game_clip.rb +13 -0
  777. data/lib/openactive/models/schema/video_game_series.rb +131 -0
  778. data/lib/openactive/models/schema/video_object.rb +65 -0
  779. data/lib/openactive/models/schema/view_action.rb +13 -0
  780. data/lib/openactive/models/schema/visual_arts_event.rb +13 -0
  781. data/lib/openactive/models/schema/visual_artwork.rb +62 -0
  782. data/lib/openactive/models/schema/volcano.rb +13 -0
  783. data/lib/openactive/models/schema/vote_action.rb +18 -0
  784. data/lib/openactive/models/schema/want_action.rb +13 -0
  785. data/lib/openactive/models/schema/warranty_promise.rb +24 -0
  786. data/lib/openactive/models/schema/watch_action.rb +13 -0
  787. data/lib/openactive/models/schema/waterfall.rb +13 -0
  788. data/lib/openactive/models/schema/wear_action.rb +13 -0
  789. data/lib/openactive/models/schema/web_api.rb +19 -0
  790. data/lib/openactive/models/schema/web_application.rb +18 -0
  791. data/lib/openactive/models/schema/web_content.rb +13 -0
  792. data/lib/openactive/models/schema/web_page.rb +68 -0
  793. data/lib/openactive/models/schema/web_page_element.rb +23 -0
  794. data/lib/openactive/models/schema/web_site.rb +18 -0
  795. data/lib/openactive/models/schema/wholesale_store.rb +13 -0
  796. data/lib/openactive/models/schema/win_action.rb +18 -0
  797. data/lib/openactive/models/schema/winery.rb +13 -0
  798. data/lib/openactive/models/schema/work_based_program.rb +18 -0
  799. data/lib/openactive/models/schema/workers_union.rb +13 -0
  800. data/lib/openactive/models/schema/wpad_block.rb +13 -0
  801. data/lib/openactive/models/schema/wpfooter.rb +13 -0
  802. data/lib/openactive/models/schema/wpheader.rb +13 -0
  803. data/lib/openactive/models/schema/wpside_bar.rb +13 -0
  804. data/lib/openactive/models/schema/write_action.rb +24 -0
  805. data/lib/openactive/models/schema/xpath_type.rb +13 -0
  806. data/lib/openactive/models/schema/zoo.rb +13 -0
  807. data/lib/openactive/models/session_series.rb +23 -0
  808. data/lib/openactive/models/short_answer_form_field_specification.rb +12 -0
  809. data/lib/openactive/models/showers.rb +17 -0
  810. data/lib/openactive/models/slot.rb +219 -0
  811. data/lib/openactive/models/sports_activity_location.rb +18 -0
  812. data/lib/openactive/models/tax_charge_specification.rb +43 -0
  813. data/lib/openactive/models/temporarily_unable_to_create_order_error.rb +11 -0
  814. data/lib/openactive/models/temporarily_unable_to_delete_order_error.rb +11 -0
  815. data/lib/openactive/models/temporarily_unable_to_produce_order_quote_error.rb +11 -0
  816. data/lib/openactive/models/temporarily_unable_to_update_order_error.rb +11 -0
  817. data/lib/openactive/models/terms.rb +27 -0
  818. data/lib/openactive/models/terms_of_use.rb +11 -0
  819. data/lib/openactive/models/toilets.rb +17 -0
  820. data/lib/openactive/models/too_many_requests_error.rb +11 -0
  821. data/lib/openactive/models/total_payment_due_mismatch_error.rb +11 -0
  822. data/lib/openactive/models/towels.rb +17 -0
  823. data/lib/openactive/models/unable_to_process_order_item_error.rb +11 -0
  824. data/lib/openactive/models/unacceptable_offer_error.rb +11 -0
  825. data/lib/openactive/models/unauthenticated_error.rb +11 -0
  826. data/lib/openactive/models/unavailable_opportunity_error.rb +11 -0
  827. data/lib/openactive/models/unknown_offer_error.rb +11 -0
  828. data/lib/openactive/models/unknown_opportunity_details_error.rb +11 -0
  829. data/lib/openactive/models/unknown_or_incorrect_endpoint_error.rb +11 -0
  830. data/lib/openactive/models/unknown_order_error.rb +11 -0
  831. data/lib/openactive/models/web_api.rb +57 -0
  832. data/lib/openactive/rpde/exceptions/deleted_items_data_exception.rb +11 -0
  833. data/lib/openactive/rpde/exceptions/first_time_after_change_number_exception.rb +13 -0
  834. data/lib/openactive/rpde/exceptions/first_time_after_timestamp_and_after_id_exception.rb +13 -0
  835. data/lib/openactive/rpde/exceptions/incomplete_items_data_exception.rb +11 -0
  836. data/lib/openactive/rpde/exceptions/modified_id_items_order_exception.rb +12 -0
  837. data/lib/openactive/rpde/exceptions/next_change_numbers_items_order_exception.rb +12 -0
  838. data/lib/openactive/rpde/exceptions/rpde_exception.rb +8 -0
  839. data/lib/openactive/rpde/rpde_body.rb +157 -0
  840. data/lib/openactive/rpde/rpde_item.rb +11 -0
  841. data/lib/openactive/rpde/rpde_kind.rb +19 -0
  842. data/lib/openactive/rpde/rpde_state.rb +8 -0
  843. data/lib/openactive/validators/array_of_validator.rb +45 -0
  844. data/lib/openactive/validators/array_validator.rb +13 -0
  845. data/lib/openactive/validators/base_model_validator.rb +17 -0
  846. data/lib/openactive/validators/base_validator.rb +79 -0
  847. data/lib/openactive/validators/bool_validator.rb +13 -0
  848. data/lib/openactive/validators/date_interval_validator.rb +38 -0
  849. data/lib/openactive/validators/date_time_validator.rb +40 -0
  850. data/lib/openactive/validators/enum_validator.rb +33 -0
  851. data/lib/openactive/validators/float_validator.rb +26 -0
  852. data/lib/openactive/validators/instance_validator.rb +19 -0
  853. data/lib/openactive/validators/int_validator.rb +26 -0
  854. data/lib/openactive/validators/null_validator.rb +13 -0
  855. data/lib/openactive/validators/number_validator.rb +26 -0
  856. data/lib/openactive/validators/string_validator.rb +26 -0
  857. data/lib/openactive/validators/time_validator.rb +29 -0
  858. data/lib/openactive/validators/uri_validator.rb +27 -0
  859. data/lib/openactive/version.rb +3 -0
  860. data/lib/openactive.rb +52 -0
  861. data/openactive.gemspec +35 -0
  862. data/yard_extensions/define_property_handler.rb +68 -0
  863. data/yard_extensions.rb +4 -0
  864. metadata +1033 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 93c227814f9139f11ffc43555c7d667fdc100e04110de9d70612811c6fb22aaa
4
+ data.tar.gz: 2ec12d6038256e74a7f01ba2ac38139fec37dd0dd0d61bdaa72b5b191eb1dd8a
5
+ SHA512:
6
+ metadata.gz: e8ed3a7f93fca01494ed42d8e9acfe256a6297f9e273f42b5bcd7bfd1fcafeeeb4820248104fbfeecb68f0ea59413360d19e88404ceadb94dd4f94c1e19146e0
7
+ data.tar.gz: c48c618544c7be88f31adec42443ab9067acd440842bc07b0b045b875a7184b32d34a016d26a5ce0ebca40aea9159091b846d556cf59c457f4e4bd4332c16992
data/.gitignore ADDED
@@ -0,0 +1,68 @@
1
+ ### Ruby template
2
+ *.gem
3
+ *.rbc
4
+ /.config
5
+ /coverage/
6
+ /InstalledFiles
7
+ /pkg/
8
+ /spec/reports/
9
+ /spec/examples.txt
10
+ /test/tmp/
11
+ /test/version_tmp/
12
+ /tmp/
13
+ Gemfile.lock
14
+
15
+ # Used by dotenv library to load environment variables.
16
+ # .env
17
+
18
+ # Ignore Byebug command history file.
19
+ .byebug_history
20
+
21
+
22
+ ## Documentation cache and generated files:
23
+ /.yardoc/
24
+ /_yardoc/
25
+ /doc/
26
+ /rdoc/
27
+
28
+ ## Environment normalization:
29
+ /.bundle/
30
+ /vendor/bundle
31
+ /lib/bundler/man/
32
+
33
+ # for a library or gem, you might want to ignore these files since the code is
34
+ # intended to run in multiple environments; otherwise, check them in:
35
+ # Gemfile.lock
36
+ # .ruby-version
37
+ # .ruby-gemset
38
+
39
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
40
+ .rvmrc
41
+
42
+ ### macOS template
43
+ # General
44
+ .DS_Store
45
+ .AppleDouble
46
+ .LSOverride
47
+
48
+ # Icon must end with two \r
49
+ Icon
50
+
51
+ # Thumbnails
52
+ ._*
53
+
54
+ # Files that might appear in the root of a volume
55
+ .DocumentRevisions-V100
56
+ .fseventsd
57
+ .Spotlight-V100
58
+ .TemporaryItems
59
+ .Trashes
60
+ .VolumeIcon.icns
61
+ .com.apple.timemachine.donotpresent
62
+
63
+ # Directories potentially created on remote AFP share
64
+ .AppleDB
65
+ .AppleDesktop
66
+ Network Trash Folder
67
+ Temporary Items
68
+ .apdisk
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,98 @@
1
+ require:
2
+ - rubocop-rspec
3
+
4
+ Layout/SpaceInsideHashLiteralBraces:
5
+ Enabled: false
6
+
7
+ Lint/ScriptPermission:
8
+ Enabled: false
9
+ Metrics/AbcSize:
10
+ Enabled: false
11
+ Metrics/BlockLength:
12
+ Enabled: false
13
+ Metrics/MethodLength:
14
+ Enabled: true
15
+ Max: 20
16
+ Exclude:
17
+ - 'db/**/*.rb'
18
+
19
+ Bundler/OrderedGems:
20
+ Enabled: false
21
+ RSpec/ExampleWording:
22
+ Enabled: false
23
+ RSpec/MultipleExpectations:
24
+ Enabled: false
25
+ Style/Documentation:
26
+ Enabled: false
27
+ Style/EmptyCaseCondition:
28
+ Enabled: false
29
+ Style/FrozenStringLiteralComment:
30
+ Enabled: false
31
+ Style/StringLiterals:
32
+ Enabled: false
33
+ # check this against SW styleguide
34
+ Style/TrailingCommaInArrayLiteral:
35
+ Enabled: false
36
+ EnforcedStyleForMultiline: comma
37
+ Style/TrailingCommaInArguments:
38
+ Enabled: true
39
+ EnforcedStyleForMultiline: comma
40
+ # check this against SW styleguide
41
+ Style/TrailingCommaInHashLiteral:
42
+ Enabled: false
43
+ EnforcedStyleForMultiline: comma
44
+ Style/SymbolArray:
45
+ EnforcedStyle: brackets
46
+ Style/WordArray:
47
+ EnforcedStyle: brackets
48
+ RSpec/ExampleLength:
49
+ Max: 15
50
+ Exclude:
51
+ - 'spec/features/**/*.rb' # feature specs are just naturally long
52
+ Style/ClassAndModuleChildren:
53
+ AutoCorrect: true
54
+ RSpec/NestedGroups:
55
+ Max: 5
56
+ Style/AsciiComments:
57
+ Enabled: false
58
+
59
+ Naming/UncommunicativeMethodParamName:
60
+ AllowedNames:
61
+ - as
62
+ - id
63
+
64
+ Metrics/LineLength:
65
+ Enabled: true
66
+ Max: 120
67
+ Exclude:
68
+ - 'lib/openactive/models/**/*.rb'
69
+ - 'lib/openactive/enums/**/*.rb'
70
+ - 'openactive.gemspec'
71
+ Naming/PredicateName:
72
+ Exclude:
73
+ - 'lib/openactive/models/**/*.rb'
74
+ - 'lib/openactive/enums/**/*.rb'
75
+ Style/TrivialAccessors:
76
+ Exclude:
77
+ - 'lib/openactive/models/**/*.rb'
78
+ - 'lib/openactive/enums/**/*.rb'
79
+ Metrics/ClassLength:
80
+ Exclude:
81
+ - 'lib/openactive/models/**/*.rb'
82
+ - 'lib/openactive/enums/**/*.rb'
83
+ Layout/SpaceInsideArrayLiteralBrackets:
84
+ Exclude:
85
+ - 'lib/openactive/models/**/*.rb'
86
+
87
+ # Specs aren't being used in an entirely typical way, so these rules clash
88
+ RSpec/DescribeClass:
89
+ Enabled: false
90
+ RSpec/FilePath:
91
+ Enabled: false
92
+
93
+ # While these do great at indicating code smell, the code is inheritantly complicated and would need major refactoring
94
+ # (which would further obfuscate what it's doing!)
95
+ Metrics/CyclomaticComplexity:
96
+ Enabled: false
97
+ Metrics/PerceivedComplexity:
98
+ Enabled: false
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ -e yard_extensions.rb
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in OpenActive.gemspec
6
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2019 OpenActive
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/Makefile ADDED
@@ -0,0 +1,11 @@
1
+ .PHONY :
2
+
3
+ lint_rb:
4
+ bundle exec rubocop
5
+
6
+ fix_rb:
7
+ bundle exec rubocop -a
8
+
9
+ lint: lint_rb
10
+
11
+ fix: fix_rb
data/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # openactive gem - Ruby implementation of OpenActive's data model
2
+
3
+ Ruby Models for the OpenActive Opportunity and Booking Specifications
4
+
5
+ OpenActive aims to provide model files for all classes defined in its Opportunity and Booking specifications across the PHP, Ruby, and .NET languages. This repository is intended for the Ruby files; see also the [PHP](https://github.com/openactive/models-php) and [.NET](https://github.com/openactive/OpenActive.NET) implementations.
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'openactive'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install openactive
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/openactive/models-ruby.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "openactive"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,122 @@
1
+ module OpenActive
2
+ class BaseModel
3
+ include OpenActive::Concerns::JsonLdSerializable
4
+ include OpenActive::Concerns::TypeChecker
5
+
6
+ def initialize(attributes = {})
7
+ assign_attributes(attributes) if attributes
8
+
9
+ super()
10
+ end
11
+
12
+ def assign_attributes(attributes)
13
+ attributes.each do |key, value|
14
+ set_property(key, value)
15
+ end
16
+ end
17
+
18
+ def self.define_property(property, types: nil, as: nil, default: nil)
19
+ attr_accessor property
20
+ property property, as: as || property.to_s if as != false
21
+ validate_property property, types: types if types
22
+
23
+ if default
24
+ define_method property do
25
+ instance_variable_get("@#{property}") || default
26
+ end
27
+ end
28
+ property
29
+ end
30
+
31
+ def set_property(key, value)
32
+ attr_name = key.to_s.underscore
33
+
34
+ attr_name = attr_name[1..] if attr_name.start_with?('@')
35
+
36
+ val = value
37
+
38
+ val = deserialize_value(value) if value.is_a?(Array) || value.is_a?(Hash)
39
+
40
+ return if ["context", "type"].include?(attr_name)
41
+
42
+ # Calling the setter will type-enforce it
43
+ send("#{attr_name}=", val)
44
+ end
45
+
46
+ ##
47
+ # Returns an object from a given JSON-LD representation.
48
+ #
49
+ # @param data [string,Array] If a string is provided, we attempt JSON-decoding first
50
+ # @return [object]
51
+ #
52
+ def self.deserialize(data)
53
+ # If a string is provided, we attempt JSON-decoding first
54
+ data = JSON.parse(data) if data.is_a?(String)
55
+
56
+ inst = new
57
+
58
+ # If data provided is not an array, return an empty class
59
+ return inst unless data.is_a?(Array) || data.is_a?(Hash)
60
+
61
+ data.each do |key, value|
62
+ inst.set_property(key, value)
63
+ end
64
+
65
+ inst
66
+ end
67
+
68
+ def deserialize(*data)
69
+ self.class.deserialize(data)
70
+ end
71
+
72
+ # Returns a value from a given JSON-LD deserialized array.
73
+ #
74
+ # @param value [mixed] If an array is provided, we recursively deserialize it
75
+ # @return [mixed]
76
+ def deserialize_value(value)
77
+ if value.is_a?(Hash)
78
+ # If an associative array with a type, return its deserialization form,
79
+ # so that it gets converted from array to object
80
+ # (associative arrays are still arrays in PHP)
81
+ if value.key?("@type") || value.key?("type")
82
+
83
+ type = value["@type"] || value["type"]
84
+
85
+ # only schema is in a subdir, everything else is flat
86
+ type = type.split(":")[1] if type.include?(':') && !type.start_with?("schema:")
87
+
88
+ klass = ::OpenActive::Models.const_get(type)
89
+
90
+ inst = klass.deserialize(value)
91
+
92
+ return inst
93
+ end
94
+ elsif value.is_a?(Array)
95
+ # NOTE: OpenActive is more strict than schema.org in this regard, so no single element array handling here.
96
+ # If providing a non-associative array
97
+ # Loop through it and serialize each item if needed
98
+ value = value.map do |item|
99
+ deserialize_value(item)
100
+ end
101
+ end
102
+ value
103
+ end
104
+
105
+ # Returns the JSON-LD representation of the given instance.
106
+ #
107
+ # @param obj [::OpenActive::BaseModel] The given instance to convert to JSON-LD
108
+ # @return [string] JSON-LD string representation of the given instance.
109
+ # TODO: make this more Ruby-esque (to_h, to_hash, to_json)
110
+ def self.serialize(obj, **kwargs)
111
+ ::OpenActive::Helpers::JsonLd.prepare_data_for_serialization(obj, **kwargs)
112
+ end
113
+
114
+ def serialize(**kwargs)
115
+ self.class.serialize(self, **kwargs)
116
+ end
117
+
118
+ def to_json(*args, schema: false, **kwargs)
119
+ serialize(schema: schema).to_json(*args, **kwargs)
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,43 @@
1
+ module OpenActive
2
+ module Concerns
3
+ module JsonLdSerializable
4
+ def self.included(base)
5
+ base.extend(ClassMethods)
6
+ end
7
+
8
+ module ClassMethods
9
+ def properties
10
+ @properties ||= begin
11
+ if superclass.respond_to?(:properties)
12
+ superclass.properties.clone
13
+ else
14
+ {}
15
+ end
16
+ end
17
+ end
18
+
19
+ def property(field, as:)
20
+ properties[as] = {
21
+ field: field,
22
+ }
23
+ end
24
+ end
25
+
26
+ def values
27
+ data = {}
28
+ self.class.properties.each do |key, field:|
29
+ data[key] = send(field)
30
+ end
31
+ data
32
+ end
33
+
34
+ def to_h
35
+ data = {}
36
+ self.class.properties.each do |_key, field:|
37
+ data[field] = send(field)
38
+ end
39
+ data
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,65 @@
1
+ module OpenActive
2
+ module Concerns
3
+ module TypeChecker
4
+ def self.included(base)
5
+ base.extend ClassMethods
6
+ end
7
+
8
+ module ClassMethods
9
+ def validate_property(meth, types:)
10
+ type_validation_module.define_method "#{meth}=" do |value|
11
+ result = check_types(value, types: types)
12
+ super(result)
13
+ rescue StandardError => e
14
+ raise $ERROR_INFO, "error setting field \"#{meth}\"", $ERROR_INFO.backtrace
15
+ end
16
+ end
17
+
18
+ def check_types(*args)
19
+ self.class.check_types(*args)
20
+ end
21
+
22
+ private
23
+
24
+ def type_validation_module
25
+ return @type_validation_module if @type_validation_module
26
+
27
+ mod = Module.new
28
+ const_set("TypeChecker", mod) # make it clear in ancestor chain
29
+ prepend mod
30
+
31
+ @type_validation_module ||= mod
32
+ end
33
+ end
34
+
35
+ # Check if the given value is of at least one of the given types.
36
+ #
37
+ # @param value [Object]
38
+ # @param types [Array<string>]
39
+ # @return [Boolean]
40
+ # @raise [OpenActive::Exceptions::InvalidArgumentException] If the provided argument is not of a supported type.
41
+ def check_types(value, types:)
42
+ validators = types.map { |type| OpenActive::Validators::BaseValidator.get_validator(type) }.compact
43
+
44
+ return value if validators.empty?
45
+
46
+ validators.each do |validator|
47
+ if validator.run(value)
48
+ # If validation passes for the given type
49
+ # We coerce the type to mitigate PHP loose types
50
+ return validator.coerce(value)
51
+ end
52
+ end
53
+
54
+ val = value.to_s
55
+ val += " (#{val.to_h})" if val.respond_to?(:to_h)
56
+
57
+ # If validation does not pass for any of the provided types,
58
+ # type invalid
59
+ raise StandardError,
60
+ "The first argument type does not match any of the declared parameter types "\
61
+ "(#{types.join(',')}) for #{val}."
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,14 @@
1
+ require 'typesafe_enum'
2
+
3
+ module OpenActive
4
+ module Enums
5
+ # [NOTICE: This is a beta enumeration, and is highly likely to change in future versions of this library.]
6
+ # An enumeration of channels through which a booking can be made.
7
+ class AvailableChannelType < TypesafeEnum::Base
8
+ new :TelephoneAdvanceBooking, "https://openactive.io/ns-beta#TelephoneAdvanceBooking"
9
+ new :TelephonePrepayment, "https://openactive.io/ns-beta#TelephonePrepayment"
10
+ new :OnlinePrepayment, "https://openactive.io/ns-beta#OnlinePrepayment"
11
+ new :OpenBookingPrepayment, "https://openactive.io/ns-beta#OpenBookingPrepayment"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ require 'typesafe_enum'
2
+
3
+ module OpenActive
4
+ module Enums
5
+ class BrokerType < TypesafeEnum::Base
6
+ new :AgentBroker, "https://openactive.io/AgentBroker"
7
+ new :NoBroker, "https://openactive.io/NoBroker"
8
+ new :ResellerBroker, "https://openactive.io/ResellerBroker"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ require 'typesafe_enum'
2
+
3
+ module OpenActive
4
+ module Enums
5
+ # [NOTICE: This is a beta enumeration, and is highly likely to change in future versions of this library.]
6
+ # An enumeration of settings in which a facility can exist.
7
+ class FacilitySettingType < TypesafeEnum::Base
8
+ new :IndoorFacility, "https://openactive.io/ns-beta#IndoorFacility"
9
+ new :OutdoorFacility, "https://openactive.io/ns-beta#OutdoorFacility"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ require 'typesafe_enum'
2
+
3
+ module OpenActive
4
+ module Enums
5
+ # Enumerated types for gender restrictions that are applied to Events
6
+ class GenderRestrictionType < TypesafeEnum::Base
7
+ new :NoRestriction, "https://openactive.io/NoRestriction"
8
+ new :MaleOnly, "https://openactive.io/MaleOnly"
9
+ new :FemaleOnly, "https://openactive.io/FemaleOnly"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ require 'typesafe_enum'
2
+
3
+ module OpenActive
4
+ module Enums
5
+ class OpenBookingFlowRequirement < TypesafeEnum::Base
6
+ new :OnlinePrepayment, "https://openactive.io/OnlinePrepayment"
7
+ new :OpenBookingIntakeForm, "https://openactive.io/OpenBookingIntakeForm"
8
+ new :OpenBookingAttendeeDetails, "https://openactive.io/OpenBookingAttendeeDetails"
9
+ new :OpenBookingApproval, "https://openactive.io/OpenBookingApproval"
10
+ new :OpenBookingNegotiation, "https://openactive.io/OpenBookingNegotiation"
11
+ new :OpenBookingMessageExchange, "https://openactive.io/OpenBookingMessageExchange"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ require 'typesafe_enum'
2
+
3
+ module OpenActive
4
+ module Enums
5
+ class OrderCreationStatus < TypesafeEnum::Base
6
+ new :OrderCreationPaymentAuthorized, "https://openactive.io/OrderCreationPaymentAuthorized"
7
+ new :OrderCreationPaymentCaptured, "https://openactive.io/OrderCreationPaymentCaptured"
8
+ new :OrderCreationComplete, "https://openactive.io/OrderCreationComplete"
9
+ new :OrderCreationPaymentDue, "https://openactive.io/OrderCreationPaymentDue"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ require 'typesafe_enum'
2
+
3
+ module OpenActive
4
+ module Enums
5
+ class OrderItemStatus < TypesafeEnum::Base
6
+ new :SellerCancelled, "https://openactive.io/SellerCancelled"
7
+ new :CustomerCancelled, "https://openactive.io/CustomerCancelled"
8
+ new :OrderProposed, "https://openactive.io/OrderProposed"
9
+ new :OrderConfirmed, "https://openactive.io/OrderConfirmed"
10
+ new :CustomerAttended, "https://openactive.io/CustomerAttended"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ require 'typesafe_enum'
2
+
3
+ module OpenActive
4
+ module Enums
5
+ class OrderProposalStatus < TypesafeEnum::Base
6
+ new :AwaitingSellerConfirmation, "https://openactive.io/AwaitingSellerConfirmation"
7
+ new :SellerAccepted, "https://openactive.io/SellerAccepted"
8
+ new :SellerRejected, "https://openactive.io/SellerRejected"
9
+ new :CustomerRejected, "https://openactive.io/CustomerRejected"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ require 'typesafe_enum'
2
+
3
+ module OpenActive
4
+ module Enums
5
+ class PaymentMethod < TypesafeEnum::Base
6
+ new :Cash, "http://purl.org/goodrelations/v1#Cash"
7
+ new :PaymentMethodCreditCard, "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ require 'typesafe_enum'
2
+
3
+ module OpenActive
4
+ module Enums
5
+ class RequiredStatusType < TypesafeEnum::Base
6
+ new :Required, "https://openactive.io/Required"
7
+ new :Optional, "https://openactive.io/Optional"
8
+ new :Unavailable, "https://openactive.io/Unavailable"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ require 'typesafe_enum'
2
+
3
+ module OpenActive
4
+ module Enums
5
+ module Schema
6
+ # The status of an Action.
7
+ class ActionStatusType < TypesafeEnum::Base
8
+ new :PotentialActionStatus, "https://schema.org/PotentialActionStatus"
9
+ new :FailedActionStatus, "https://schema.org/FailedActionStatus"
10
+ new :CompletedActionStatus, "https://schema.org/CompletedActionStatus"
11
+ new :ActiveActionStatus, "https://schema.org/ActiveActionStatus"
12
+ end
13
+ end
14
+ end
15
+ end