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
@@ -0,0 +1,40 @@
1
+ module OpenActive
2
+ module Validators
3
+ class DateTimeValidator < BaseValidator
4
+ # Coerce given value to the type the validator is validating against.
5
+ # PLEASE NOTE: no checks are performed on the given value.
6
+ # It is therefore recommended to call the "run" method first before this.
7
+ #
8
+ # @param value [mixed] The value to coerce.
9
+ # @return [mixed] The same value.
10
+ def coerce(value)
11
+ return value if value.is_a?(::DateTime)
12
+
13
+ # if it's a date/time object other than datetime, convert it (Date/Time)
14
+ return value.to_datetime if value.respond_to?(:to_datetime)
15
+
16
+ parse_date(value)
17
+ end
18
+
19
+ # Run validation on the given value.
20
+ #
21
+ # @param value [mixed] The value to validate.
22
+ # @return [Boolean] Whether validation passes or not.
23
+ def run(value)
24
+ return true if value.is_a?(::DateTime) || value.respond_to?(:to_datetime)
25
+
26
+ return false unless value.is_a?(String)
27
+
28
+ !parse_date(value).nil?
29
+ end
30
+
31
+ private
32
+
33
+ def parse_date(value)
34
+ DateTime.parse(value)
35
+ rescue ArgumentError => _e
36
+ nil
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,33 @@
1
+ module OpenActive
2
+ module Validators
3
+ class EnumValidator < BaseValidator
4
+ def initialize(classname)
5
+ @classname = classname
6
+ end
7
+
8
+ # Coerce enum url to the enum instance
9
+ #
10
+ # @param value [mixed] Unum instance or URL
11
+ # @return [int] The coerced enum
12
+ def coerce(value)
13
+ return value if value.is_a?(classname)
14
+
15
+ classname.find_by_value(value)
16
+ end
17
+
18
+ # Run validation on the given value.
19
+ #
20
+ # @param value [mixed] The value to validate.
21
+ # @return [Boolean] Whether validation passes or not.
22
+ def run(value)
23
+ return true if value.is_a?(classname)
24
+
25
+ classname.find_by_value(value)
26
+ end
27
+
28
+ private
29
+
30
+ attr_accessor :classname
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,26 @@
1
+ module OpenActive
2
+ module Validators
3
+ class FloatValidator < BaseValidator
4
+ # Coerce given value to the type the validator is validating against.
5
+ # PLEASE NOTE: no checks are performed on the given value.
6
+ # It is therefore recommended to call the "run" method first before this.
7
+ #
8
+ # @param value [mixed] The value to coerce.
9
+ # @return [float] The coerced value
10
+ def coerce(value)
11
+ value.to_f
12
+ end
13
+
14
+ # Run validation on the given value.
15
+ #
16
+ # @param value [mixed] The value to validate.
17
+ # @return [Boolean] Whether validation passes or not.
18
+ def run(value)
19
+ Float(value)
20
+ true
21
+ rescue ArgumentError => _e
22
+ false
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,19 @@
1
+ module OpenActive
2
+ module Validators
3
+ class InstanceValidator < BaseValidator
4
+ attr_accessor :classname
5
+
6
+ def initialize(classname)
7
+ @classname = classname
8
+ end
9
+
10
+ # Run validation on the given value.
11
+ #
12
+ # @param value [mixed] The value to validate.
13
+ # @return [Boolean] Whether validation passes or not.
14
+ def run(value)
15
+ value.is_a?(classname)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,26 @@
1
+ module OpenActive
2
+ module Validators
3
+ class IntValidator < BaseValidator
4
+ # Coerce given value to the type the validator is validating against.
5
+ # PLEASE NOTE: no checks are performed on the given value.
6
+ # It is therefore recommended to call the "run" method first before this.
7
+ #
8
+ # @param value [mixed] The value to coerce.
9
+ # @return [int] The coerced value
10
+ def coerce(value)
11
+ value.to_i
12
+ end
13
+
14
+ # Run validation on the given value.
15
+ #
16
+ # @param value [mixed] The value to validate.
17
+ # @return [Boolean] Whether validation passes or not.
18
+ def run(value)
19
+ Integer(value)
20
+ true
21
+ rescue ArgumentError => _e
22
+ false
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,13 @@
1
+ module OpenActive
2
+ module Validators
3
+ class NullValidator < BaseValidator
4
+ # Run validation on the given value.
5
+ #
6
+ # @param value [mixed] The value to validate.
7
+ # @return [Boolean] Whether validation passes or not.
8
+ def run(value)
9
+ value.nil?
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,26 @@
1
+ module OpenActive
2
+ module Validators
3
+ class NumberValidator < BaseValidator
4
+ # Coerce given value to the type the validator is validating against.
5
+ # PLEASE NOTE: no checks are performed on the given value.
6
+ # It is therefore recommended to call the "run" method first before this.
7
+ #
8
+ # @param value [mixed] The value to coerce.
9
+ # @return [float] The coerced value
10
+ def coerce(value)
11
+ BigDecimal(value.to_s)
12
+ end
13
+
14
+ # Run validation on the given value.
15
+ #
16
+ # @param value [mixed] The value to validate.
17
+ # @return [Boolean] Whether validation passes or not.
18
+ def run(value)
19
+ BigDecimal(value.to_s)
20
+ true
21
+ rescue ArgumentError => _e
22
+ false
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ module OpenActive
2
+ module Validators
3
+ class StringValidator < BaseValidator
4
+ # Coerce given value to the type the validator is validating against.
5
+ # PLEASE NOTE: no checks are performed on the given value.
6
+ # It is therefore recommended to call the "run" method first before this.
7
+ #
8
+ # @param value [mixed] The value to coerce.
9
+ # @return [mixed] The same value.
10
+ def coerce(value)
11
+ value.to_str
12
+ end
13
+
14
+ # Run validation on the given value.
15
+ #
16
+ # @param value [mixed] The value to validate.
17
+ # @return [Boolean] Whether validation passes or not.
18
+ def run(value)
19
+ return true if value.is_a?(String)
20
+ return true if value.respond_to?(:to_str)
21
+
22
+ false
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,29 @@
1
+ module OpenActive
2
+ module Validators
3
+ # https://schema.org/Time
4
+ # format spec: https://www.w3.org/TR/xmlschema-2/#time
5
+ class TimeValidator < BaseValidator
6
+ # https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch04s07.html#id2175516
7
+ # Minor additions to make second values and timezone optional
8
+ REGEX = /(?<hour>2[0-3]|[01][0-9]):?(?<minute>[0-5][0-9]):?(?<second>[0-5][0-9])?(?<timezone>Z|[+-](?:2[0-3]|[01][0-9])(?::?(?:[0-5][0-9]))?)?/
9
+
10
+ # Coerce given value to the type the validator is validating against.
11
+ # PLEASE NOTE: no checks are performed on the given value.
12
+ # It is therefore recommended to call the "run" method first before this.
13
+ #
14
+ # @param value [mixed] The value to coerce.
15
+ # @return [mixed] The same value.
16
+ def coerce(value)
17
+ value
18
+ end
19
+
20
+ # Run validation on the given value.
21
+ #
22
+ # @param value [mixed] The value to validate.
23
+ # @return [Boolean] Whether validation passes or not.
24
+ def run(value)
25
+ REGEX =~ value
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,27 @@
1
+ module OpenActive
2
+ module Validators
3
+ class UriValidator < BaseValidator
4
+ # Coerce given value to the type the validator is validating against.
5
+ # PLEASE NOTE: no checks are performed on the given value.
6
+ # It is therefore recommended to call the "run" method first before this.
7
+ #
8
+ # @param value [mixed] The value to coerce.
9
+ # @return [mixed] The same value.
10
+ def coerce(value)
11
+ return value if value.is_a?(::URI)
12
+
13
+ URI.parse(value)
14
+ end
15
+
16
+ # Run validation on the given value.
17
+ #
18
+ # @param value [mixed] The value to validate.
19
+ # @return [Boolean] Whether validation passes or not.
20
+ def run(value)
21
+ return true if value.is_a?(::URI)
22
+
23
+ value =~ ::URI::DEFAULT_PARSER.make_regexp
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ module OpenActive
2
+ VERSION = "0.1.0.rc1".freeze
3
+ end
data/lib/openactive.rb ADDED
@@ -0,0 +1,52 @@
1
+ require 'json'
2
+ require 'active_support/duration'
3
+ require 'active_support/core_ext/date_time'
4
+ require 'typesafe_enum'
5
+ module OpenActive
6
+ require "openactive/version"
7
+
8
+ require "openactive/concerns/type_checker"
9
+ require "openactive/concerns/json_ld_serializable"
10
+
11
+ require "openactive/exceptions/invalid_argument_exception"
12
+
13
+ require "openactive/helpers/json_ld"
14
+
15
+ require "openactive/validators/base_validator"
16
+ require "openactive/validators/array_of_validator"
17
+ require "openactive/validators/array_validator"
18
+ require "openactive/validators/base_model_validator"
19
+ require "openactive/validators/bool_validator"
20
+ require "openactive/validators/date_interval_validator"
21
+ require "openactive/validators/date_time_validator"
22
+ require "openactive/validators/enum_validator"
23
+ require "openactive/validators/float_validator"
24
+ require "openactive/validators/instance_validator"
25
+ require "openactive/validators/int_validator"
26
+ require "openactive/validators/null_validator"
27
+ require "openactive/validators/number_validator"
28
+ require "openactive/validators/string_validator"
29
+ require "openactive/validators/time_validator"
30
+ require "openactive/validators/uri_validator"
31
+
32
+ require "openactive/base_model"
33
+ require "openactive/json_ld_model"
34
+
35
+ require "openactive/rpde/rpde_body"
36
+ require "openactive/rpde/rpde_kind"
37
+ require "openactive/rpde/rpde_state"
38
+ require "openactive/rpde/rpde_item"
39
+
40
+ require "openactive/rpde/exceptions/rpde_exception"
41
+ require "openactive/rpde/exceptions/deleted_items_data_exception"
42
+ require "openactive/rpde/exceptions/first_time_after_change_number_exception"
43
+ require "openactive/rpde/exceptions/first_time_after_timestamp_and_after_id_exception"
44
+ require "openactive/rpde/exceptions/incomplete_items_data_exception"
45
+ require "openactive/rpde/exceptions/modified_id_items_order_exception"
46
+ require "openactive/rpde/exceptions/next_change_numbers_items_order_exception"
47
+
48
+ generated_files = JSON.parse(File.read(File.join(__dir__, 'openactive', 'files_index.json')))
49
+ generated_files.each do |file|
50
+ require File.join(__dir__, 'openactive', file)
51
+ end
52
+ end
@@ -0,0 +1,35 @@
1
+ lib = File.expand_path('lib', __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require "openactive/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "openactive"
7
+ spec.version = OpenActive::VERSION
8
+ spec.authors = ["OpenActive Community"]
9
+ spec.email = ["hello@openactive.io"]
10
+
11
+ spec.summary = 'OpenActive.io objects turned into strongly typed classes for use in Ruby.'
12
+ spec.description = 'OpenActive.io objects turned into strongly typed classes for use in Ruby. All classes can be serialized into JSON/JSON-LD, to provide easy conformance with the OpenActive Modelling Specification.'
13
+ spec.homepage = "https://github.com/openactive/models-ruby/"
14
+ spec.license = "MIT"
15
+
16
+ # Specify which files should be added to the gem when it is released.
17
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
18
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
19
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
+ end
21
+ spec.bindir = "exe"
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.require_paths = ["lib"]
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.17"
26
+ spec.add_development_dependency "rake", "~> 10.0"
27
+ spec.add_development_dependency "rspec", "~> 3.0"
28
+ spec.add_development_dependency "rspec-json_expectations"
29
+ spec.add_development_dependency "rubocop"
30
+ spec.add_development_dependency "rubocop-rspec"
31
+ spec.add_development_dependency "yard"
32
+
33
+ spec.add_runtime_dependency "activesupport"
34
+ spec.add_runtime_dependency "typesafe_enum"
35
+ end
@@ -0,0 +1,68 @@
1
+ # Heavily based on YARD::Handlers::Ruby::AttributeHandler
2
+ class DefinePropertyHandler < YARD::Handlers::Ruby::Base
3
+ handles method_call(:define_property)
4
+ namespace_only
5
+
6
+ process do
7
+ return if statement.type == :var_ref || statement.type == :vcall
8
+
9
+ read = true
10
+ write = true
11
+ params = statement.parameters(false).dup
12
+
13
+ # Add all attributes
14
+ name = validated_attribute_names(params)
15
+
16
+ namespace.attributes[scope][name] ||= SymbolHash[read: nil, write: nil]
17
+
18
+ # Show their methods as well
19
+ {read: name, write: "#{name}="}.each do |type, meth|
20
+ if type == :read ? read : write
21
+ o = MethodObject.new(namespace, meth, scope)
22
+ if type == :write
23
+ o.parameters = [['value', nil]]
24
+ src = "def #{meth}(value)"
25
+ full_src = "#{src}\n @#{name} = value\nend"
26
+ doc = "Sets the attribute #{name}\n@param value the value to set the attribute #{name} to."
27
+ else
28
+ src = "def #{meth}"
29
+ full_src = "#{src}\n @#{name}\nend"
30
+ doc = "Returns the value of attribute #{name}"
31
+ end
32
+ o.source ||= full_src
33
+ o.signature ||= src
34
+ register(o)
35
+ o.docstring = doc if o.docstring.blank?(false)
36
+
37
+ # Register the object explicitly
38
+ namespace.attributes[scope][name][type] = o
39
+ else
40
+ obj = namespace.children.find { |other| other.name == meth.to_sym && other.scope == scope }
41
+
42
+ # register an existing method as attribute
43
+ namespace.attributes[scope][name][type] = obj if obj
44
+ end
45
+ end
46
+ end
47
+
48
+ protected
49
+
50
+ # Strips out any non-essential arguments from the attr statement.
51
+ #
52
+ # @param [Array<Parser::Ruby::AstNode>] params a list of the parameters
53
+ # in the attr call.
54
+ # @return [Array<String>] the validated attribute names
55
+ # @raise [Parser::UndocumentableError] if the arguments are not valid.
56
+ def validated_attribute_names(params)
57
+ obj = params.first
58
+
59
+ case obj.type
60
+ when :symbol_literal
61
+ obj.jump(:ident, :op, :kw, :const).source
62
+ when :string_literal
63
+ obj.jump(:string_content).source
64
+ else
65
+ raise YARD::Parser::UndocumentableError, obj.source
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,4 @@
1
+ # Load all Ruby files inside of the YARD extensions directory.
2
+ Dir.glob('yard_extensions/**.rb') do |file|
3
+ require_relative file
4
+ end