openactive 0.1.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +68 -0
- data/.rspec +2 -0
- data/.rubocop.yml +98 -0
- data/.yardopts +1 -0
- data/Gemfile +6 -0
- data/LICENSE +21 -0
- data/Makefile +11 -0
- data/README.md +35 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/openactive/base_model.rb +122 -0
- data/lib/openactive/concerns/json_ld_serializable.rb +43 -0
- data/lib/openactive/concerns/type_checker.rb +65 -0
- data/lib/openactive/enums/available_channel_type.rb +14 -0
- data/lib/openactive/enums/broker_type.rb +11 -0
- data/lib/openactive/enums/facility_setting_type.rb +12 -0
- data/lib/openactive/enums/gender_restriction_type.rb +12 -0
- data/lib/openactive/enums/open_booking_flow_requirement.rb +14 -0
- data/lib/openactive/enums/order_creation_status.rb +12 -0
- data/lib/openactive/enums/order_item_status.rb +13 -0
- data/lib/openactive/enums/order_proposal_status.rb +12 -0
- data/lib/openactive/enums/payment_method.rb +10 -0
- data/lib/openactive/enums/required_status_type.rb +11 -0
- data/lib/openactive/enums/schema/action_status_type.rb +15 -0
- data/lib/openactive/enums/schema/boarding_policy_type.rb +13 -0
- data/lib/openactive/enums/schema/book_format_type.rb +15 -0
- data/lib/openactive/enums/schema/business_entity_type.rb +21 -0
- data/lib/openactive/enums/schema/business_function.rb +25 -0
- data/lib/openactive/enums/schema/contact_point_option.rb +13 -0
- data/lib/openactive/enums/schema/day_of_week.rb +21 -0
- data/lib/openactive/enums/schema/delivery_method.rb +26 -0
- data/lib/openactive/enums/schema/digital_document_permission_type.rb +14 -0
- data/lib/openactive/enums/schema/event_status_type.rb +15 -0
- data/lib/openactive/enums/schema/game_play_mode.rb +14 -0
- data/lib/openactive/enums/schema/game_server_status.rb +15 -0
- data/lib/openactive/enums/schema/gender_type.rb +13 -0
- data/lib/openactive/enums/schema/health_aspect_enumeration.rb +33 -0
- data/lib/openactive/enums/schema/item_availability.rb +20 -0
- data/lib/openactive/enums/schema/item_list_order_type.rb +14 -0
- data/lib/openactive/enums/schema/legal_force_status.rb +14 -0
- data/lib/openactive/enums/schema/legal_value_level.rb +15 -0
- data/lib/openactive/enums/schema/map_category_type.rb +15 -0
- data/lib/openactive/enums/schema/music_album_production_type.rb +20 -0
- data/lib/openactive/enums/schema/music_album_release_type.rb +15 -0
- data/lib/openactive/enums/schema/music_release_format_type.rb +18 -0
- data/lib/openactive/enums/schema/offer_item_condition.rb +15 -0
- data/lib/openactive/enums/schema/order_status.rb +19 -0
- data/lib/openactive/enums/schema/payment_method.rb +26 -0
- data/lib/openactive/enums/schema/payment_status_type.rb +16 -0
- data/lib/openactive/enums/schema/product_return_enumeration.rb +15 -0
- data/lib/openactive/enums/schema/qualitative_value.rb +11 -0
- data/lib/openactive/enums/schema/refund_type_enumeration.rb +14 -0
- data/lib/openactive/enums/schema/reservation_status_type.rb +15 -0
- data/lib/openactive/enums/schema/restricted_diet.rb +22 -0
- data/lib/openactive/enums/schema/return_fees_enumeration.rb +14 -0
- data/lib/openactive/enums/schema/rsvp_response_type.rb +14 -0
- data/lib/openactive/enums/schema/specialty.rb +11 -0
- data/lib/openactive/enums/schema/warranty_scope.rb +20 -0
- data/lib/openactive/enums/tax_mode.rb +10 -0
- data/lib/openactive/exceptions/invalid_argument_exception.rb +6 -0
- data/lib/openactive/files_index.json +815 -0
- data/lib/openactive/helpers/json_ld.rb +82 -0
- data/lib/openactive/json_ld_model.rb +33 -0
- data/lib/openactive/models/action.rb +22 -0
- data/lib/openactive/models/baby_changing.rb +17 -0
- data/lib/openactive/models/bar.rb +13 -0
- data/lib/openactive/models/barcode.rb +22 -0
- data/lib/openactive/models/booking_service.rb +31 -0
- data/lib/openactive/models/boolean_form_field_specification.rb +17 -0
- data/lib/openactive/models/brand.rb +46 -0
- data/lib/openactive/models/cafe.rb +13 -0
- data/lib/openactive/models/cancellation_not_permitted_error.rb +11 -0
- data/lib/openactive/models/changing_facilities.rb +17 -0
- data/lib/openactive/models/concept.rb +42 -0
- data/lib/openactive/models/concept_collection.rb +12 -0
- data/lib/openactive/models/concept_scheme.rb +37 -0
- data/lib/openactive/models/course.rb +57 -0
- data/lib/openactive/models/course_instance.rb +17 -0
- data/lib/openactive/models/creche.rb +17 -0
- data/lib/openactive/models/data_download.rb +37 -0
- data/lib/openactive/models/dataset.rb +100 -0
- data/lib/openactive/models/dropdown_form_field_specification.rb +17 -0
- data/lib/openactive/models/dynamic_payment.rb +11 -0
- data/lib/openactive/models/entry_point.rb +27 -0
- data/lib/openactive/models/event.rb +261 -0
- data/lib/openactive/models/event_series.rb +12 -0
- data/lib/openactive/models/facility_use.rb +139 -0
- data/lib/openactive/models/geo_coordinates.rb +24 -0
- data/lib/openactive/models/gone_error.rb +11 -0
- data/lib/openactive/models/headline_event.rb +17 -0
- data/lib/openactive/models/image_object.rb +22 -0
- data/lib/openactive/models/incomplete_attendee_details_error.rb +11 -0
- data/lib/openactive/models/incomplete_broker_details_error.rb +11 -0
- data/lib/openactive/models/incomplete_customer_details_error.rb +11 -0
- data/lib/openactive/models/incomplete_intake_form_error.rb +11 -0
- data/lib/openactive/models/incomplete_order_item_error.rb +11 -0
- data/lib/openactive/models/incomplete_payment_details_error.rb +11 -0
- data/lib/openactive/models/indicative_offer.rb +13 -0
- data/lib/openactive/models/individual_facility_use.rb +21 -0
- data/lib/openactive/models/invalid_apitoken_error.rb +11 -0
- data/lib/openactive/models/invalid_authorization_details_error.rb +11 -0
- data/lib/openactive/models/invalid_intake_form_error.rb +11 -0
- data/lib/openactive/models/invalid_payment_details_error.rb +11 -0
- data/lib/openactive/models/lease.rb +26 -0
- data/lib/openactive/models/location_feature_specification.rb +23 -0
- data/lib/openactive/models/lockers.rb +17 -0
- data/lib/openactive/models/method_not_allowed.rb +11 -0
- data/lib/openactive/models/no_apitoken_error.rb +11 -0
- data/lib/openactive/models/not_found_error.rb +11 -0
- data/lib/openactive/models/offer.rb +94 -0
- data/lib/openactive/models/offer_override.rb +12 -0
- data/lib/openactive/models/open_booking_error.rb +47 -0
- data/lib/openactive/models/opening_hours_specification.rb +30 -0
- data/lib/openactive/models/opportunity_capacity_is_reserved_by_lease_error.rb +11 -0
- data/lib/openactive/models/opportunity_has_insufficient_capacity_error.rb +11 -0
- data/lib/openactive/models/opportunity_is_full_error.rb +11 -0
- data/lib/openactive/models/opportunity_is_in_conflict_error.rb +11 -0
- data/lib/openactive/models/order.rb +91 -0
- data/lib/openactive/models/order_already_exists_error.rb +11 -0
- data/lib/openactive/models/order_creation_failed_error.rb +11 -0
- data/lib/openactive/models/order_item.rb +89 -0
- data/lib/openactive/models/order_proposal.rb +28 -0
- data/lib/openactive/models/order_quote.rb +33 -0
- data/lib/openactive/models/organization.rb +92 -0
- data/lib/openactive/models/paragraph_form_field_specification.rb +12 -0
- data/lib/openactive/models/parking.rb +17 -0
- data/lib/openactive/models/partial_schedule.rb +17 -0
- data/lib/openactive/models/patch_contains_excessive_properties.rb +11 -0
- data/lib/openactive/models/patch_not_allowed_on_property.rb +11 -0
- data/lib/openactive/models/payment.rb +41 -0
- data/lib/openactive/models/person.rb +108 -0
- data/lib/openactive/models/place.rb +82 -0
- data/lib/openactive/models/postal_address.rb +37 -0
- data/lib/openactive/models/price_specification.rb +23 -0
- data/lib/openactive/models/privacy_policy.rb +11 -0
- data/lib/openactive/models/property_value.rb +35 -0
- data/lib/openactive/models/property_value_specification.rb +27 -0
- data/lib/openactive/models/quantitative_value.rb +24 -0
- data/lib/openactive/models/reserve_action.rb +12 -0
- data/lib/openactive/models/schedule.rb +100 -0
- data/lib/openactive/models/scheduled_session.rb +28 -0
- data/lib/openactive/models/schema/3dmodel.rb +13 -0
- data/lib/openactive/models/schema/about_page.rb +13 -0
- data/lib/openactive/models/schema/accept_action.rb +13 -0
- data/lib/openactive/models/schema/accommodation.rb +71 -0
- data/lib/openactive/models/schema/accounting_service.rb +13 -0
- data/lib/openactive/models/schema/achieve_action.rb +13 -0
- data/lib/openactive/models/schema/action.rb +77 -0
- data/lib/openactive/models/schema/action_access_specification.rb +61 -0
- data/lib/openactive/models/schema/activate_action.rb +13 -0
- data/lib/openactive/models/schema/add_action.rb +13 -0
- data/lib/openactive/models/schema/administrative_area.rb +13 -0
- data/lib/openactive/models/schema/adult_entertainment.rb +13 -0
- data/lib/openactive/models/schema/advertiser_content_article.rb +13 -0
- data/lib/openactive/models/schema/aggregate_offer.rb +38 -0
- data/lib/openactive/models/schema/aggregate_rating.rb +30 -0
- data/lib/openactive/models/schema/agree_action.rb +13 -0
- data/lib/openactive/models/schema/airline.rb +24 -0
- data/lib/openactive/models/schema/airport.rb +23 -0
- data/lib/openactive/models/schema/alignment_object.rb +38 -0
- data/lib/openactive/models/schema/allocate_action.rb +13 -0
- data/lib/openactive/models/schema/amradio_channel.rb +13 -0
- data/lib/openactive/models/schema/amusement_park.rb +13 -0
- data/lib/openactive/models/schema/analysis_news_article.rb +13 -0
- data/lib/openactive/models/schema/animal_shelter.rb +13 -0
- data/lib/openactive/models/schema/answer.rb +13 -0
- data/lib/openactive/models/schema/apartment.rb +25 -0
- data/lib/openactive/models/schema/apartment_complex.rb +13 -0
- data/lib/openactive/models/schema/apireference.rb +38 -0
- data/lib/openactive/models/schema/append_action.rb +13 -0
- data/lib/openactive/models/schema/apply_action.rb +13 -0
- data/lib/openactive/models/schema/aquarium.rb +13 -0
- data/lib/openactive/models/schema/archive_component.rb +25 -0
- data/lib/openactive/models/schema/archive_organization.rb +18 -0
- data/lib/openactive/models/schema/arrive_action.rb +13 -0
- data/lib/openactive/models/schema/art_gallery.rb +13 -0
- data/lib/openactive/models/schema/article.rb +60 -0
- data/lib/openactive/models/schema/ask_action.rb +18 -0
- data/lib/openactive/models/schema/ask_public_news_article.rb +13 -0
- data/lib/openactive/models/schema/assess_action.rb +13 -0
- data/lib/openactive/models/schema/assign_action.rb +13 -0
- data/lib/openactive/models/schema/attorney.rb +13 -0
- data/lib/openactive/models/schema/audience.rb +23 -0
- data/lib/openactive/models/schema/audio_object.rb +24 -0
- data/lib/openactive/models/schema/authorize_action.rb +21 -0
- data/lib/openactive/models/schema/auto_body_shop.rb +13 -0
- data/lib/openactive/models/schema/auto_dealer.rb +13 -0
- data/lib/openactive/models/schema/auto_parts_store.rb +13 -0
- data/lib/openactive/models/schema/auto_rental.rb +13 -0
- data/lib/openactive/models/schema/auto_repair.rb +13 -0
- data/lib/openactive/models/schema/auto_wash.rb +13 -0
- data/lib/openactive/models/schema/automated_teller.rb +13 -0
- data/lib/openactive/models/schema/automotive_business.rb +13 -0
- data/lib/openactive/models/schema/background_news_article.rb +13 -0
- data/lib/openactive/models/schema/bakery.rb +13 -0
- data/lib/openactive/models/schema/bank_account.rb +29 -0
- data/lib/openactive/models/schema/bank_or_credit_union.rb +13 -0
- data/lib/openactive/models/schema/bar_or_pub.rb +13 -0
- data/lib/openactive/models/schema/barcode.rb +13 -0
- data/lib/openactive/models/schema/beach.rb +13 -0
- data/lib/openactive/models/schema/beauty_salon.rb +13 -0
- data/lib/openactive/models/schema/bed_and_breakfast.rb +13 -0
- data/lib/openactive/models/schema/bed_details.rb +25 -0
- data/lib/openactive/models/schema/bed_type.rb +13 -0
- data/lib/openactive/models/schema/befriend_action.rb +13 -0
- data/lib/openactive/models/schema/bike_store.rb +13 -0
- data/lib/openactive/models/schema/blog.rb +28 -0
- data/lib/openactive/models/schema/blog_posting.rb +13 -0
- data/lib/openactive/models/schema/body_of_water.rb +13 -0
- data/lib/openactive/models/schema/book.rb +40 -0
- data/lib/openactive/models/schema/book_series.rb +13 -0
- data/lib/openactive/models/schema/book_store.rb +13 -0
- data/lib/openactive/models/schema/bookmark_action.rb +13 -0
- data/lib/openactive/models/schema/borrow_action.rb +19 -0
- data/lib/openactive/models/schema/bowling_alley.rb +13 -0
- data/lib/openactive/models/schema/brand.rb +34 -0
- data/lib/openactive/models/schema/breadcrumb_list.rb +13 -0
- data/lib/openactive/models/schema/brewery.rb +13 -0
- data/lib/openactive/models/schema/bridge.rb +13 -0
- data/lib/openactive/models/schema/broadcast_channel.rb +45 -0
- data/lib/openactive/models/schema/broadcast_event.rb +35 -0
- data/lib/openactive/models/schema/broadcast_frequency_specification.rb +32 -0
- data/lib/openactive/models/schema/broadcast_service.rb +64 -0
- data/lib/openactive/models/schema/brokerage_account.rb +13 -0
- data/lib/openactive/models/schema/buddhist_temple.rb +13 -0
- data/lib/openactive/models/schema/bus_reservation.rb +13 -0
- data/lib/openactive/models/schema/bus_station.rb +13 -0
- data/lib/openactive/models/schema/bus_stop.rb +13 -0
- data/lib/openactive/models/schema/bus_trip.rb +35 -0
- data/lib/openactive/models/schema/business_audience.rb +28 -0
- data/lib/openactive/models/schema/business_event.rb +13 -0
- data/lib/openactive/models/schema/buy_action.rb +30 -0
- data/lib/openactive/models/schema/cable_or_satellite_service.rb +13 -0
- data/lib/openactive/models/schema/cafe_or_coffee_shop.rb +13 -0
- data/lib/openactive/models/schema/campground.rb +13 -0
- data/lib/openactive/models/schema/camping_pitch.rb +13 -0
- data/lib/openactive/models/schema/canal.rb +13 -0
- data/lib/openactive/models/schema/cancel_action.rb +13 -0
- data/lib/openactive/models/schema/car.rb +13 -0
- data/lib/openactive/models/schema/casino.rb +13 -0
- data/lib/openactive/models/schema/category_code.rb +24 -0
- data/lib/openactive/models/schema/category_code_set.rb +18 -0
- data/lib/openactive/models/schema/catholic_church.rb +13 -0
- data/lib/openactive/models/schema/cemetery.rb +13 -0
- data/lib/openactive/models/schema/check_action.rb +13 -0
- data/lib/openactive/models/schema/check_in_action.rb +13 -0
- data/lib/openactive/models/schema/check_out_action.rb +13 -0
- data/lib/openactive/models/schema/checkout_page.rb +13 -0
- data/lib/openactive/models/schema/child_care.rb +13 -0
- data/lib/openactive/models/schema/childrens_event.rb +13 -0
- data/lib/openactive/models/schema/choose_action.rb +25 -0
- data/lib/openactive/models/schema/church.rb +13 -0
- data/lib/openactive/models/schema/city.rb +13 -0
- data/lib/openactive/models/schema/city_hall.rb +13 -0
- data/lib/openactive/models/schema/civic_structure.rb +18 -0
- data/lib/openactive/models/schema/claim.rb +23 -0
- data/lib/openactive/models/schema/claim_review.rb +18 -0
- data/lib/openactive/models/schema/clip.rb +73 -0
- data/lib/openactive/models/schema/clothing_store.rb +13 -0
- data/lib/openactive/models/schema/code.rb +13 -0
- data/lib/openactive/models/schema/collection_page.rb +13 -0
- data/lib/openactive/models/schema/college_or_university.rb +13 -0
- data/lib/openactive/models/schema/comedy_club.rb +13 -0
- data/lib/openactive/models/schema/comedy_event.rb +13 -0
- data/lib/openactive/models/schema/comment.rb +30 -0
- data/lib/openactive/models/schema/comment_action.rb +18 -0
- data/lib/openactive/models/schema/communicate_action.rb +37 -0
- data/lib/openactive/models/schema/complete_data_feed.rb +13 -0
- data/lib/openactive/models/schema/compound_price_specification.rb +18 -0
- data/lib/openactive/models/schema/computer_language.rb +13 -0
- data/lib/openactive/models/schema/computer_store.rb +13 -0
- data/lib/openactive/models/schema/confirm_action.rb +13 -0
- data/lib/openactive/models/schema/consortium.rb +13 -0
- data/lib/openactive/models/schema/consume_action.rb +23 -0
- data/lib/openactive/models/schema/contact_page.rb +13 -0
- data/lib/openactive/models/schema/contact_point.rb +71 -0
- data/lib/openactive/models/schema/continent.rb +13 -0
- data/lib/openactive/models/schema/control_action.rb +13 -0
- data/lib/openactive/models/schema/convenience_store.rb +13 -0
- data/lib/openactive/models/schema/conversation.rb +13 -0
- data/lib/openactive/models/schema/cook_action.rb +29 -0
- data/lib/openactive/models/schema/corporation.rb +18 -0
- data/lib/openactive/models/schema/correction_comment.rb +13 -0
- data/lib/openactive/models/schema/country.rb +13 -0
- data/lib/openactive/models/schema/course.rb +44 -0
- data/lib/openactive/models/schema/course_instance.rb +29 -0
- data/lib/openactive/models/schema/courthouse.rb +13 -0
- data/lib/openactive/models/schema/create_action.rb +13 -0
- data/lib/openactive/models/schema/creative_work.rb +538 -0
- data/lib/openactive/models/schema/creative_work_season.rb +75 -0
- data/lib/openactive/models/schema/creative_work_series.rb +32 -0
- data/lib/openactive/models/schema/credit_card.rb +20 -0
- data/lib/openactive/models/schema/crematorium.rb +13 -0
- data/lib/openactive/models/schema/critic_review.rb +13 -0
- data/lib/openactive/models/schema/css_selector_type.rb +13 -0
- data/lib/openactive/models/schema/currency_conversion_service.rb +13 -0
- data/lib/openactive/models/schema/dance_event.rb +13 -0
- data/lib/openactive/models/schema/dance_group.rb +13 -0
- data/lib/openactive/models/schema/data_catalog.rb +24 -0
- data/lib/openactive/models/schema/data_download.rb +19 -0
- data/lib/openactive/models/schema/data_feed.rb +20 -0
- data/lib/openactive/models/schema/data_feed_item.rb +39 -0
- data/lib/openactive/models/schema/data_type.rb +13 -0
- data/lib/openactive/models/schema/dataset.rb +56 -0
- data/lib/openactive/models/schema/dated_money_specification.rb +39 -0
- data/lib/openactive/models/schema/day_spa.rb +13 -0
- data/lib/openactive/models/schema/deactivate_action.rb +13 -0
- data/lib/openactive/models/schema/defence_establishment.rb +13 -0
- data/lib/openactive/models/schema/defined_term.rb +24 -0
- data/lib/openactive/models/schema/defined_term_set.rb +18 -0
- data/lib/openactive/models/schema/delete_action.rb +13 -0
- data/lib/openactive/models/schema/delivery_charge_specification.rb +41 -0
- data/lib/openactive/models/schema/delivery_event.rb +36 -0
- data/lib/openactive/models/schema/demand.rb +204 -0
- data/lib/openactive/models/schema/dentist.rb +13 -0
- data/lib/openactive/models/schema/depart_action.rb +13 -0
- data/lib/openactive/models/schema/department_store.rb +13 -0
- data/lib/openactive/models/schema/deposit_account.rb +13 -0
- data/lib/openactive/models/schema/digital_document.rb +18 -0
- data/lib/openactive/models/schema/digital_document_permission.rb +27 -0
- data/lib/openactive/models/schema/disagree_action.rb +13 -0
- data/lib/openactive/models/schema/discover_action.rb +13 -0
- data/lib/openactive/models/schema/discussion_forum_posting.rb +13 -0
- data/lib/openactive/models/schema/dislike_action.rb +13 -0
- data/lib/openactive/models/schema/distance.rb +13 -0
- data/lib/openactive/models/schema/distillery.rb +13 -0
- data/lib/openactive/models/schema/donate_action.rb +21 -0
- data/lib/openactive/models/schema/download_action.rb +13 -0
- data/lib/openactive/models/schema/draw_action.rb +13 -0
- data/lib/openactive/models/schema/drawing.rb +13 -0
- data/lib/openactive/models/schema/drink_action.rb +13 -0
- data/lib/openactive/models/schema/drive_wheel_configuration_value.rb +13 -0
- data/lib/openactive/models/schema/dry_cleaning_or_laundry.rb +13 -0
- data/lib/openactive/models/schema/duration.rb +13 -0
- data/lib/openactive/models/schema/eat_action.rb +13 -0
- data/lib/openactive/models/schema/education_event.rb +13 -0
- data/lib/openactive/models/schema/educational_audience.rb +18 -0
- data/lib/openactive/models/schema/educational_occupational_credential.rb +39 -0
- data/lib/openactive/models/schema/educational_occupational_program.rb +39 -0
- data/lib/openactive/models/schema/educational_organization.rb +18 -0
- data/lib/openactive/models/schema/electrician.rb +13 -0
- data/lib/openactive/models/schema/electronics_store.rb +13 -0
- data/lib/openactive/models/schema/elementary_school.rb +13 -0
- data/lib/openactive/models/schema/email_message.rb +13 -0
- data/lib/openactive/models/schema/embassy.rb +13 -0
- data/lib/openactive/models/schema/emergency_service.rb +13 -0
- data/lib/openactive/models/schema/employee_role.rb +26 -0
- data/lib/openactive/models/schema/employer_aggregate_rating.rb +13 -0
- data/lib/openactive/models/schema/employer_review.rb +13 -0
- data/lib/openactive/models/schema/employment_agency.rb +13 -0
- data/lib/openactive/models/schema/endorse_action.rb +19 -0
- data/lib/openactive/models/schema/endorsement_rating.rb +13 -0
- data/lib/openactive/models/schema/energy.rb +13 -0
- data/lib/openactive/models/schema/engine_specification.rb +21 -0
- data/lib/openactive/models/schema/entertainment_business.rb +13 -0
- data/lib/openactive/models/schema/entry_point.rb +49 -0
- data/lib/openactive/models/schema/enumeration.rb +13 -0
- data/lib/openactive/models/schema/episode.rb +66 -0
- data/lib/openactive/models/schema/event.rb +213 -0
- data/lib/openactive/models/schema/event_reservation.rb +13 -0
- data/lib/openactive/models/schema/event_series.rb +13 -0
- data/lib/openactive/models/schema/event_venue.rb +13 -0
- data/lib/openactive/models/schema/exchange_rate_specification.rb +25 -0
- data/lib/openactive/models/schema/exercise_action.rb +58 -0
- data/lib/openactive/models/schema/exercise_gym.rb +13 -0
- data/lib/openactive/models/schema/exhibition_event.rb +13 -0
- data/lib/openactive/models/schema/faqpage.rb +13 -0
- data/lib/openactive/models/schema/fast_food_restaurant.rb +13 -0
- data/lib/openactive/models/schema/festival.rb +13 -0
- data/lib/openactive/models/schema/film_action.rb +13 -0
- data/lib/openactive/models/schema/financial_product.rb +33 -0
- data/lib/openactive/models/schema/financial_service.rb +19 -0
- data/lib/openactive/models/schema/find_action.rb +13 -0
- data/lib/openactive/models/schema/fire_station.rb +13 -0
- data/lib/openactive/models/schema/flight.rb +95 -0
- data/lib/openactive/models/schema/flight_reservation.rb +35 -0
- data/lib/openactive/models/schema/float.rb +13 -0
- data/lib/openactive/models/schema/florist.rb +13 -0
- data/lib/openactive/models/schema/fmradio_channel.rb +13 -0
- data/lib/openactive/models/schema/follow_action.rb +19 -0
- data/lib/openactive/models/schema/food_establishment.rb +45 -0
- data/lib/openactive/models/schema/food_establishment_reservation.rb +34 -0
- data/lib/openactive/models/schema/food_event.rb +13 -0
- data/lib/openactive/models/schema/food_service.rb +13 -0
- data/lib/openactive/models/schema/funding_agency.rb +13 -0
- data/lib/openactive/models/schema/funding_scheme.rb +13 -0
- data/lib/openactive/models/schema/furniture_store.rb +13 -0
- data/lib/openactive/models/schema/game.rb +40 -0
- data/lib/openactive/models/schema/game_server.rb +30 -0
- data/lib/openactive/models/schema/garden_store.rb +13 -0
- data/lib/openactive/models/schema/gas_station.rb +13 -0
- data/lib/openactive/models/schema/gated_residence_community.rb +13 -0
- data/lib/openactive/models/schema/general_contractor.rb +13 -0
- data/lib/openactive/models/schema/geo_circle.rb +26 -0
- data/lib/openactive/models/schema/geo_coordinates.rb +51 -0
- data/lib/openactive/models/schema/geo_shape.rb +57 -0
- data/lib/openactive/models/schema/geospatial_geometry.rb +13 -0
- data/lib/openactive/models/schema/give_action.rb +21 -0
- data/lib/openactive/models/schema/golf_course.rb +13 -0
- data/lib/openactive/models/schema/government_building.rb +13 -0
- data/lib/openactive/models/schema/government_office.rb +13 -0
- data/lib/openactive/models/schema/government_organization.rb +13 -0
- data/lib/openactive/models/schema/government_permit.rb +13 -0
- data/lib/openactive/models/schema/government_service.rb +18 -0
- data/lib/openactive/models/schema/grant.rb +18 -0
- data/lib/openactive/models/schema/grocery_store.rb +13 -0
- data/lib/openactive/models/schema/hair_salon.rb +13 -0
- data/lib/openactive/models/schema/hardware_store.rb +13 -0
- data/lib/openactive/models/schema/health_and_beauty_business.rb +13 -0
- data/lib/openactive/models/schema/health_club.rb +13 -0
- data/lib/openactive/models/schema/health_insurance_plan.rb +54 -0
- data/lib/openactive/models/schema/health_plan_cost_sharing_specification.rb +39 -0
- data/lib/openactive/models/schema/health_plan_formulary.rb +30 -0
- data/lib/openactive/models/schema/health_plan_network.rb +29 -0
- data/lib/openactive/models/schema/health_topic_content.rb +19 -0
- data/lib/openactive/models/schema/high_school.rb +13 -0
- data/lib/openactive/models/schema/hindu_temple.rb +13 -0
- data/lib/openactive/models/schema/hobby_shop.rb +13 -0
- data/lib/openactive/models/schema/home_and_construction_business.rb +13 -0
- data/lib/openactive/models/schema/home_goods_store.rb +13 -0
- data/lib/openactive/models/schema/hospital.rb +13 -0
- data/lib/openactive/models/schema/hostel.rb +13 -0
- data/lib/openactive/models/schema/hotel.rb +13 -0
- data/lib/openactive/models/schema/hotel_room.rb +25 -0
- data/lib/openactive/models/schema/house.rb +20 -0
- data/lib/openactive/models/schema/house_painter.rb +13 -0
- data/lib/openactive/models/schema/how_to.rb +70 -0
- data/lib/openactive/models/schema/how_to_direction.rb +61 -0
- data/lib/openactive/models/schema/how_to_item.rb +21 -0
- data/lib/openactive/models/schema/how_to_section.rb +20 -0
- data/lib/openactive/models/schema/how_to_step.rb +13 -0
- data/lib/openactive/models/schema/how_to_supply.rb +19 -0
- data/lib/openactive/models/schema/how_to_tip.rb +13 -0
- data/lib/openactive/models/schema/how_to_tool.rb +13 -0
- data/lib/openactive/models/schema/hvacbusiness.rb +13 -0
- data/lib/openactive/models/schema/ice_cream_shop.rb +13 -0
- data/lib/openactive/models/schema/ignore_action.rb +13 -0
- data/lib/openactive/models/schema/image_gallery.rb +13 -0
- data/lib/openactive/models/schema/image_object.rb +36 -0
- data/lib/openactive/models/schema/individual_product.rb +18 -0
- data/lib/openactive/models/schema/inform_action.rb +18 -0
- data/lib/openactive/models/schema/insert_action.rb +18 -0
- data/lib/openactive/models/schema/install_action.rb +13 -0
- data/lib/openactive/models/schema/insurance_agency.rb +13 -0
- data/lib/openactive/models/schema/intangible.rb +13 -0
- data/lib/openactive/models/schema/integer.rb +13 -0
- data/lib/openactive/models/schema/interact_action.rb +13 -0
- data/lib/openactive/models/schema/interaction_counter.rb +30 -0
- data/lib/openactive/models/schema/internet_cafe.rb +13 -0
- data/lib/openactive/models/schema/investment_fund.rb +13 -0
- data/lib/openactive/models/schema/investment_or_deposit.rb +20 -0
- data/lib/openactive/models/schema/invite_action.rb +18 -0
- data/lib/openactive/models/schema/invoice.rb +107 -0
- data/lib/openactive/models/schema/item_list.rb +33 -0
- data/lib/openactive/models/schema/item_page.rb +13 -0
- data/lib/openactive/models/schema/jewelry_store.rb +13 -0
- data/lib/openactive/models/schema/job_posting.rb +175 -0
- data/lib/openactive/models/schema/join_action.rb +18 -0
- data/lib/openactive/models/schema/lake_body_of_water.rb +13 -0
- data/lib/openactive/models/schema/landform.rb +13 -0
- data/lib/openactive/models/schema/landmarks_or_historical_buildings.rb +13 -0
- data/lib/openactive/models/schema/language.rb +13 -0
- data/lib/openactive/models/schema/leave_action.rb +18 -0
- data/lib/openactive/models/schema/legal_service.rb +13 -0
- data/lib/openactive/models/schema/legislation.rb +81 -0
- data/lib/openactive/models/schema/legislation_object.rb +19 -0
- data/lib/openactive/models/schema/legislative_building.rb +13 -0
- data/lib/openactive/models/schema/lend_action.rb +18 -0
- data/lib/openactive/models/schema/library.rb +13 -0
- data/lib/openactive/models/schema/library_system.rb +13 -0
- data/lib/openactive/models/schema/like_action.rb +13 -0
- data/lib/openactive/models/schema/link_role.rb +18 -0
- data/lib/openactive/models/schema/liquor_store.rb +13 -0
- data/lib/openactive/models/schema/list_item.rb +35 -0
- data/lib/openactive/models/schema/listen_action.rb +13 -0
- data/lib/openactive/models/schema/literary_event.rb +13 -0
- data/lib/openactive/models/schema/live_blog_posting.rb +30 -0
- data/lib/openactive/models/schema/loan_or_credit.rb +65 -0
- data/lib/openactive/models/schema/local_business.rb +38 -0
- data/lib/openactive/models/schema/location_feature_specification.rb +32 -0
- data/lib/openactive/models/schema/locker_delivery.rb +13 -0
- data/lib/openactive/models/schema/locksmith.rb +13 -0
- data/lib/openactive/models/schema/lodging_business.rb +62 -0
- data/lib/openactive/models/schema/lodging_reservation.rb +53 -0
- data/lib/openactive/models/schema/lose_action.rb +18 -0
- data/lib/openactive/models/schema/manuscript.rb +13 -0
- data/lib/openactive/models/schema/map.rb +19 -0
- data/lib/openactive/models/schema/marry_action.rb +13 -0
- data/lib/openactive/models/schema/mass.rb +13 -0
- data/lib/openactive/models/schema/media_object.rb +109 -0
- data/lib/openactive/models/schema/media_subscription.rb +23 -0
- data/lib/openactive/models/schema/medical_organization.rb +24 -0
- data/lib/openactive/models/schema/meeting_room.rb +13 -0
- data/lib/openactive/models/schema/mens_clothing_store.rb +13 -0
- data/lib/openactive/models/schema/menu.rb +23 -0
- data/lib/openactive/models/schema/menu_item.rb +35 -0
- data/lib/openactive/models/schema/menu_section.rb +23 -0
- data/lib/openactive/models/schema/message.rb +74 -0
- data/lib/openactive/models/schema/middle_school.rb +13 -0
- data/lib/openactive/models/schema/mobile_application.rb +18 -0
- data/lib/openactive/models/schema/mobile_phone_store.rb +13 -0
- data/lib/openactive/models/schema/monetary_amount.rb +53 -0
- data/lib/openactive/models/schema/monetary_amount_distribution.rb +18 -0
- data/lib/openactive/models/schema/monetary_grant.rb +13 -0
- data/lib/openactive/models/schema/money_transfer.rb +19 -0
- data/lib/openactive/models/schema/mortgage_loan.rb +24 -0
- data/lib/openactive/models/schema/mosque.rb +13 -0
- data/lib/openactive/models/schema/motel.rb +13 -0
- data/lib/openactive/models/schema/motorcycle_dealer.rb +13 -0
- data/lib/openactive/models/schema/motorcycle_repair.rb +13 -0
- data/lib/openactive/models/schema/mountain.rb +13 -0
- data/lib/openactive/models/schema/move_action.rb +23 -0
- data/lib/openactive/models/schema/movie.rb +66 -0
- data/lib/openactive/models/schema/movie_clip.rb +13 -0
- data/lib/openactive/models/schema/movie_rental_store.rb +13 -0
- data/lib/openactive/models/schema/movie_series.rb +49 -0
- data/lib/openactive/models/schema/movie_theater.rb +19 -0
- data/lib/openactive/models/schema/moving_company.rb +13 -0
- data/lib/openactive/models/schema/museum.rb +13 -0
- data/lib/openactive/models/schema/music_album.rb +36 -0
- data/lib/openactive/models/schema/music_composition.rb +64 -0
- data/lib/openactive/models/schema/music_event.rb +13 -0
- data/lib/openactive/models/schema/music_group.rb +45 -0
- data/lib/openactive/models/schema/music_playlist.rb +30 -0
- data/lib/openactive/models/schema/music_recording.rb +45 -0
- data/lib/openactive/models/schema/music_release.rb +46 -0
- data/lib/openactive/models/schema/music_store.rb +13 -0
- data/lib/openactive/models/schema/music_venue.rb +13 -0
- data/lib/openactive/models/schema/music_video_object.rb +13 -0
- data/lib/openactive/models/schema/nail_salon.rb +13 -0
- data/lib/openactive/models/schema/news_article.rb +38 -0
- data/lib/openactive/models/schema/news_media_organization.rb +81 -0
- data/lib/openactive/models/schema/ngo.rb +13 -0
- data/lib/openactive/models/schema/night_club.rb +13 -0
- data/lib/openactive/models/schema/notary.rb +13 -0
- data/lib/openactive/models/schema/note_digital_document.rb +13 -0
- data/lib/openactive/models/schema/nutrition_information.rb +73 -0
- data/lib/openactive/models/schema/observation.rb +40 -0
- data/lib/openactive/models/schema/occupation.rb +60 -0
- data/lib/openactive/models/schema/ocean_body_of_water.rb +13 -0
- data/lib/openactive/models/schema/offer.rb +254 -0
- data/lib/openactive/models/schema/offer_catalog.rb +13 -0
- data/lib/openactive/models/schema/offer_for_lease.rb +13 -0
- data/lib/openactive/models/schema/offer_for_purchase.rb +13 -0
- data/lib/openactive/models/schema/office_equipment_store.rb +13 -0
- data/lib/openactive/models/schema/on_demand_event.rb +13 -0
- data/lib/openactive/models/schema/opening_hours_specification.rb +45 -0
- data/lib/openactive/models/schema/opinion_news_article.rb +13 -0
- data/lib/openactive/models/schema/order.rb +139 -0
- data/lib/openactive/models/schema/order_action.rb +19 -0
- data/lib/openactive/models/schema/order_item.rb +42 -0
- data/lib/openactive/models/schema/organization.rb +349 -0
- data/lib/openactive/models/schema/organization_role.rb +19 -0
- data/lib/openactive/models/schema/organize_action.rb +13 -0
- data/lib/openactive/models/schema/outlet_store.rb +13 -0
- data/lib/openactive/models/schema/ownership_info.rb +37 -0
- data/lib/openactive/models/schema/paint_action.rb +13 -0
- data/lib/openactive/models/schema/painting.rb +13 -0
- data/lib/openactive/models/schema/parcel_delivery.rb +79 -0
- data/lib/openactive/models/schema/parcel_service.rb +13 -0
- data/lib/openactive/models/schema/parent_audience.rb +25 -0
- data/lib/openactive/models/schema/park.rb +13 -0
- data/lib/openactive/models/schema/parking_facility.rb +13 -0
- data/lib/openactive/models/schema/pawn_shop.rb +13 -0
- data/lib/openactive/models/schema/pay_action.rb +21 -0
- data/lib/openactive/models/schema/payment_card.rb +31 -0
- data/lib/openactive/models/schema/payment_charge_specification.rb +25 -0
- data/lib/openactive/models/schema/payment_service.rb +13 -0
- data/lib/openactive/models/schema/people_audience.rb +47 -0
- data/lib/openactive/models/schema/perform_action.rb +18 -0
- data/lib/openactive/models/schema/performance_role.rb +18 -0
- data/lib/openactive/models/schema/performing_arts_theater.rb +13 -0
- data/lib/openactive/models/schema/performing_group.rb +13 -0
- data/lib/openactive/models/schema/periodical.rb +13 -0
- data/lib/openactive/models/schema/permit.rb +52 -0
- data/lib/openactive/models/schema/person.rb +339 -0
- data/lib/openactive/models/schema/pet_store.rb +13 -0
- data/lib/openactive/models/schema/pharmacy.rb +13 -0
- data/lib/openactive/models/schema/photograph.rb +13 -0
- data/lib/openactive/models/schema/photograph_action.rb +13 -0
- data/lib/openactive/models/schema/physician.rb +13 -0
- data/lib/openactive/models/schema/place.rb +247 -0
- data/lib/openactive/models/schema/place_of_worship.rb +13 -0
- data/lib/openactive/models/schema/plan_action.rb +19 -0
- data/lib/openactive/models/schema/play.rb +13 -0
- data/lib/openactive/models/schema/play_action.rb +23 -0
- data/lib/openactive/models/schema/playground.rb +13 -0
- data/lib/openactive/models/schema/plumber.rb +13 -0
- data/lib/openactive/models/schema/podcast_episode.rb +13 -0
- data/lib/openactive/models/schema/podcast_season.rb +13 -0
- data/lib/openactive/models/schema/podcast_series.rb +18 -0
- data/lib/openactive/models/schema/police_station.rb +13 -0
- data/lib/openactive/models/schema/pond.rb +13 -0
- data/lib/openactive/models/schema/post_office.rb +13 -0
- data/lib/openactive/models/schema/postal_address.rb +44 -0
- data/lib/openactive/models/schema/poster.rb +13 -0
- data/lib/openactive/models/schema/pre_order_action.rb +13 -0
- data/lib/openactive/models/schema/prepend_action.rb +13 -0
- data/lib/openactive/models/schema/preschool.rb +13 -0
- data/lib/openactive/models/schema/presentation_digital_document.rb +13 -0
- data/lib/openactive/models/schema/price_specification.rb +67 -0
- data/lib/openactive/models/schema/product.rb +218 -0
- data/lib/openactive/models/schema/product_model.rb +28 -0
- data/lib/openactive/models/schema/product_return_policy.rb +48 -0
- data/lib/openactive/models/schema/professional_service.rb +13 -0
- data/lib/openactive/models/schema/profile_page.rb +13 -0
- data/lib/openactive/models/schema/program_membership.rb +47 -0
- data/lib/openactive/models/schema/project.rb +13 -0
- data/lib/openactive/models/schema/property_value.rb +67 -0
- data/lib/openactive/models/schema/property_value_specification.rb +77 -0
- data/lib/openactive/models/schema/public_swimming_pool.rb +13 -0
- data/lib/openactive/models/schema/public_toilet.rb +13 -0
- data/lib/openactive/models/schema/publication_event.rb +30 -0
- data/lib/openactive/models/schema/publication_issue.rb +39 -0
- data/lib/openactive/models/schema/publication_volume.rb +39 -0
- data/lib/openactive/models/schema/qapage.rb +13 -0
- data/lib/openactive/models/schema/quantitative_value.rb +60 -0
- data/lib/openactive/models/schema/quantitative_value_distribution.rb +49 -0
- data/lib/openactive/models/schema/quantity.rb +13 -0
- data/lib/openactive/models/schema/question.rb +43 -0
- data/lib/openactive/models/schema/quotation.rb +19 -0
- data/lib/openactive/models/schema/quote_action.rb +13 -0
- data/lib/openactive/models/schema/radio_broadcast_service.rb +13 -0
- data/lib/openactive/models/schema/radio_channel.rb +13 -0
- data/lib/openactive/models/schema/radio_clip.rb +13 -0
- data/lib/openactive/models/schema/radio_episode.rb +13 -0
- data/lib/openactive/models/schema/radio_season.rb +13 -0
- data/lib/openactive/models/schema/radio_series.rb +86 -0
- data/lib/openactive/models/schema/radio_station.rb +13 -0
- data/lib/openactive/models/schema/rating.rb +50 -0
- data/lib/openactive/models/schema/react_action.rb +13 -0
- data/lib/openactive/models/schema/read_action.rb +13 -0
- data/lib/openactive/models/schema/real_estate_agent.rb +13 -0
- data/lib/openactive/models/schema/real_estate_listing.rb +20 -0
- data/lib/openactive/models/schema/receive_action.rb +26 -0
- data/lib/openactive/models/schema/recipe.rb +68 -0
- data/lib/openactive/models/schema/recycling_center.rb +13 -0
- data/lib/openactive/models/schema/register_action.rb +13 -0
- data/lib/openactive/models/schema/reject_action.rb +13 -0
- data/lib/openactive/models/schema/rent_action.rb +24 -0
- data/lib/openactive/models/schema/rental_car_reservation.rb +35 -0
- data/lib/openactive/models/schema/repayment_specification.rb +42 -0
- data/lib/openactive/models/schema/replace_action.rb +23 -0
- data/lib/openactive/models/schema/reply_action.rb +18 -0
- data/lib/openactive/models/schema/report.rb +18 -0
- data/lib/openactive/models/schema/reportage_news_article.rb +13 -0
- data/lib/openactive/models/schema/research_project.rb +13 -0
- data/lib/openactive/models/schema/reservation.rb +88 -0
- data/lib/openactive/models/schema/reservation_package.rb +18 -0
- data/lib/openactive/models/schema/reserve_action.rb +13 -0
- data/lib/openactive/models/schema/reservoir.rb +13 -0
- data/lib/openactive/models/schema/residence.rb +13 -0
- data/lib/openactive/models/schema/resort.rb +13 -0
- data/lib/openactive/models/schema/restaurant.rb +13 -0
- data/lib/openactive/models/schema/resume_action.rb +13 -0
- data/lib/openactive/models/schema/return_action.rb +21 -0
- data/lib/openactive/models/schema/review.rb +33 -0
- data/lib/openactive/models/schema/review_action.rb +18 -0
- data/lib/openactive/models/schema/review_news_article.rb +13 -0
- data/lib/openactive/models/schema/river_body_of_water.rb +13 -0
- data/lib/openactive/models/schema/role.rb +39 -0
- data/lib/openactive/models/schema/roofing_contractor.rb +13 -0
- data/lib/openactive/models/schema/room.rb +13 -0
- data/lib/openactive/models/schema/rsvp_action.rb +30 -0
- data/lib/openactive/models/schema/rvpark.rb +13 -0
- data/lib/openactive/models/schema/sale_event.rb +13 -0
- data/lib/openactive/models/schema/satirical_article.rb +13 -0
- data/lib/openactive/models/schema/schedule.rb +57 -0
- data/lib/openactive/models/schema/schedule_action.rb +13 -0
- data/lib/openactive/models/schema/scholarly_article.rb +13 -0
- data/lib/openactive/models/schema/school.rb +13 -0
- data/lib/openactive/models/schema/screening_event.rb +29 -0
- data/lib/openactive/models/schema/sculpture.rb +13 -0
- data/lib/openactive/models/schema/sea_body_of_water.rb +13 -0
- data/lib/openactive/models/schema/search_action.rb +18 -0
- data/lib/openactive/models/schema/search_results_page.rb +13 -0
- data/lib/openactive/models/schema/season.rb +13 -0
- data/lib/openactive/models/schema/seat.rb +35 -0
- data/lib/openactive/models/schema/self_storage.rb +13 -0
- data/lib/openactive/models/schema/sell_action.rb +23 -0
- data/lib/openactive/models/schema/send_action.rb +27 -0
- data/lib/openactive/models/schema/series.rb +13 -0
- data/lib/openactive/models/schema/service.rb +146 -0
- data/lib/openactive/models/schema/service_channel.rb +55 -0
- data/lib/openactive/models/schema/share_action.rb +13 -0
- data/lib/openactive/models/schema/sheet_music.rb +13 -0
- data/lib/openactive/models/schema/shoe_store.rb +13 -0
- data/lib/openactive/models/schema/shopping_center.rb +13 -0
- data/lib/openactive/models/schema/short_story.rb +13 -0
- data/lib/openactive/models/schema/single_family_residence.rb +25 -0
- data/lib/openactive/models/schema/site_navigation_element.rb +13 -0
- data/lib/openactive/models/schema/ski_resort.rb +13 -0
- data/lib/openactive/models/schema/social_event.rb +13 -0
- data/lib/openactive/models/schema/social_media_posting.rb +18 -0
- data/lib/openactive/models/schema/software_application.rb +142 -0
- data/lib/openactive/models/schema/software_source_code.rb +49 -0
- data/lib/openactive/models/schema/some_products.rb +18 -0
- data/lib/openactive/models/schema/speakable_specification.rb +23 -0
- data/lib/openactive/models/schema/sporting_goods_store.rb +13 -0
- data/lib/openactive/models/schema/sports_activity_location.rb +13 -0
- data/lib/openactive/models/schema/sports_club.rb +13 -0
- data/lib/openactive/models/schema/sports_event.rb +31 -0
- data/lib/openactive/models/schema/sports_organization.rb +19 -0
- data/lib/openactive/models/schema/sports_team.rb +30 -0
- data/lib/openactive/models/schema/spreadsheet_digital_document.rb +13 -0
- data/lib/openactive/models/schema/stadium_or_arena.rb +13 -0
- data/lib/openactive/models/schema/state.rb +13 -0
- data/lib/openactive/models/schema/statistical_population.rb +29 -0
- data/lib/openactive/models/schema/steering_position_value.rb +13 -0
- data/lib/openactive/models/schema/store.rb +13 -0
- data/lib/openactive/models/schema/structured_value.rb +13 -0
- data/lib/openactive/models/schema/subscribe_action.rb +13 -0
- data/lib/openactive/models/schema/subway_station.rb +13 -0
- data/lib/openactive/models/schema/suite.rb +32 -0
- data/lib/openactive/models/schema/suspend_action.rb +13 -0
- data/lib/openactive/models/schema/synagogue.rb +13 -0
- data/lib/openactive/models/schema/table.rb +13 -0
- data/lib/openactive/models/schema/take_action.rb +13 -0
- data/lib/openactive/models/schema/tattoo_parlor.rb +13 -0
- data/lib/openactive/models/schema/taxi.rb +13 -0
- data/lib/openactive/models/schema/taxi_reservation.rb +31 -0
- data/lib/openactive/models/schema/taxi_service.rb +13 -0
- data/lib/openactive/models/schema/taxi_stand.rb +13 -0
- data/lib/openactive/models/schema/tech_article.rb +23 -0
- data/lib/openactive/models/schema/television_channel.rb +13 -0
- data/lib/openactive/models/schema/television_station.rb +13 -0
- data/lib/openactive/models/schema/tennis_complex.rb +13 -0
- data/lib/openactive/models/schema/text_digital_document.rb +13 -0
- data/lib/openactive/models/schema/theater_event.rb +13 -0
- data/lib/openactive/models/schema/theater_group.rb +13 -0
- data/lib/openactive/models/schema/thing.rb +78 -0
- data/lib/openactive/models/schema/ticket.rb +60 -0
- data/lib/openactive/models/schema/tie_action.rb +13 -0
- data/lib/openactive/models/schema/tip_action.rb +21 -0
- data/lib/openactive/models/schema/tire_shop.rb +13 -0
- data/lib/openactive/models/schema/tourist_attraction.rb +25 -0
- data/lib/openactive/models/schema/tourist_destination.rb +18 -0
- data/lib/openactive/models/schema/tourist_information_center.rb +13 -0
- data/lib/openactive/models/schema/tourist_trip.rb +13 -0
- data/lib/openactive/models/schema/toy_store.rb +13 -0
- data/lib/openactive/models/schema/track_action.rb +19 -0
- data/lib/openactive/models/schema/trade_action.rb +30 -0
- data/lib/openactive/models/schema/train_reservation.rb +13 -0
- data/lib/openactive/models/schema/train_station.rb +13 -0
- data/lib/openactive/models/schema/train_trip.rb +43 -0
- data/lib/openactive/models/schema/transfer_action.rb +23 -0
- data/lib/openactive/models/schema/travel_action.rb +18 -0
- data/lib/openactive/models/schema/travel_agency.rb +13 -0
- data/lib/openactive/models/schema/trip.rb +54 -0
- data/lib/openactive/models/schema/tvclip.rb +18 -0
- data/lib/openactive/models/schema/tvepisode.rb +29 -0
- data/lib/openactive/models/schema/tvseason.rb +23 -0
- data/lib/openactive/models/schema/tvseries.rb +91 -0
- data/lib/openactive/models/schema/type_and_quantity_node.rb +42 -0
- data/lib/openactive/models/schema/un_register_action.rb +13 -0
- data/lib/openactive/models/schema/unit_price_specification.rb +40 -0
- data/lib/openactive/models/schema/update_action.rb +23 -0
- data/lib/openactive/models/schema/url.rb +13 -0
- data/lib/openactive/models/schema/use_action.rb +13 -0
- data/lib/openactive/models/schema/user_blocks.rb +13 -0
- data/lib/openactive/models/schema/user_checkins.rb +13 -0
- data/lib/openactive/models/schema/user_comments.rb +41 -0
- data/lib/openactive/models/schema/user_downloads.rb +13 -0
- data/lib/openactive/models/schema/user_interaction.rb +13 -0
- data/lib/openactive/models/schema/user_likes.rb +13 -0
- data/lib/openactive/models/schema/user_page_visits.rb +13 -0
- data/lib/openactive/models/schema/user_plays.rb +13 -0
- data/lib/openactive/models/schema/user_plus_ones.rb +13 -0
- data/lib/openactive/models/schema/user_review.rb +13 -0
- data/lib/openactive/models/schema/user_tweets.rb +13 -0
- data/lib/openactive/models/schema/vehicle.rb +161 -0
- data/lib/openactive/models/schema/video_gallery.rb +13 -0
- data/lib/openactive/models/schema/video_game.rb +72 -0
- data/lib/openactive/models/schema/video_game_clip.rb +13 -0
- data/lib/openactive/models/schema/video_game_series.rb +131 -0
- data/lib/openactive/models/schema/video_object.rb +65 -0
- data/lib/openactive/models/schema/view_action.rb +13 -0
- data/lib/openactive/models/schema/visual_arts_event.rb +13 -0
- data/lib/openactive/models/schema/visual_artwork.rb +62 -0
- data/lib/openactive/models/schema/volcano.rb +13 -0
- data/lib/openactive/models/schema/vote_action.rb +18 -0
- data/lib/openactive/models/schema/want_action.rb +13 -0
- data/lib/openactive/models/schema/warranty_promise.rb +24 -0
- data/lib/openactive/models/schema/watch_action.rb +13 -0
- data/lib/openactive/models/schema/waterfall.rb +13 -0
- data/lib/openactive/models/schema/wear_action.rb +13 -0
- data/lib/openactive/models/schema/web_api.rb +19 -0
- data/lib/openactive/models/schema/web_application.rb +18 -0
- data/lib/openactive/models/schema/web_content.rb +13 -0
- data/lib/openactive/models/schema/web_page.rb +68 -0
- data/lib/openactive/models/schema/web_page_element.rb +23 -0
- data/lib/openactive/models/schema/web_site.rb +18 -0
- data/lib/openactive/models/schema/wholesale_store.rb +13 -0
- data/lib/openactive/models/schema/win_action.rb +18 -0
- data/lib/openactive/models/schema/winery.rb +13 -0
- data/lib/openactive/models/schema/work_based_program.rb +18 -0
- data/lib/openactive/models/schema/workers_union.rb +13 -0
- data/lib/openactive/models/schema/wpad_block.rb +13 -0
- data/lib/openactive/models/schema/wpfooter.rb +13 -0
- data/lib/openactive/models/schema/wpheader.rb +13 -0
- data/lib/openactive/models/schema/wpside_bar.rb +13 -0
- data/lib/openactive/models/schema/write_action.rb +24 -0
- data/lib/openactive/models/schema/xpath_type.rb +13 -0
- data/lib/openactive/models/schema/zoo.rb +13 -0
- data/lib/openactive/models/session_series.rb +23 -0
- data/lib/openactive/models/short_answer_form_field_specification.rb +12 -0
- data/lib/openactive/models/showers.rb +17 -0
- data/lib/openactive/models/slot.rb +219 -0
- data/lib/openactive/models/sports_activity_location.rb +18 -0
- data/lib/openactive/models/tax_charge_specification.rb +43 -0
- data/lib/openactive/models/temporarily_unable_to_create_order_error.rb +11 -0
- data/lib/openactive/models/temporarily_unable_to_delete_order_error.rb +11 -0
- data/lib/openactive/models/temporarily_unable_to_produce_order_quote_error.rb +11 -0
- data/lib/openactive/models/temporarily_unable_to_update_order_error.rb +11 -0
- data/lib/openactive/models/terms.rb +27 -0
- data/lib/openactive/models/terms_of_use.rb +11 -0
- data/lib/openactive/models/toilets.rb +17 -0
- data/lib/openactive/models/too_many_requests_error.rb +11 -0
- data/lib/openactive/models/total_payment_due_mismatch_error.rb +11 -0
- data/lib/openactive/models/towels.rb +17 -0
- data/lib/openactive/models/unable_to_process_order_item_error.rb +11 -0
- data/lib/openactive/models/unacceptable_offer_error.rb +11 -0
- data/lib/openactive/models/unauthenticated_error.rb +11 -0
- data/lib/openactive/models/unavailable_opportunity_error.rb +11 -0
- data/lib/openactive/models/unknown_offer_error.rb +11 -0
- data/lib/openactive/models/unknown_opportunity_details_error.rb +11 -0
- data/lib/openactive/models/unknown_or_incorrect_endpoint_error.rb +11 -0
- data/lib/openactive/models/unknown_order_error.rb +11 -0
- data/lib/openactive/models/web_api.rb +57 -0
- data/lib/openactive/rpde/exceptions/deleted_items_data_exception.rb +11 -0
- data/lib/openactive/rpde/exceptions/first_time_after_change_number_exception.rb +13 -0
- data/lib/openactive/rpde/exceptions/first_time_after_timestamp_and_after_id_exception.rb +13 -0
- data/lib/openactive/rpde/exceptions/incomplete_items_data_exception.rb +11 -0
- data/lib/openactive/rpde/exceptions/modified_id_items_order_exception.rb +12 -0
- data/lib/openactive/rpde/exceptions/next_change_numbers_items_order_exception.rb +12 -0
- data/lib/openactive/rpde/exceptions/rpde_exception.rb +8 -0
- data/lib/openactive/rpde/rpde_body.rb +157 -0
- data/lib/openactive/rpde/rpde_item.rb +11 -0
- data/lib/openactive/rpde/rpde_kind.rb +19 -0
- data/lib/openactive/rpde/rpde_state.rb +8 -0
- data/lib/openactive/validators/array_of_validator.rb +45 -0
- data/lib/openactive/validators/array_validator.rb +13 -0
- data/lib/openactive/validators/base_model_validator.rb +17 -0
- data/lib/openactive/validators/base_validator.rb +79 -0
- data/lib/openactive/validators/bool_validator.rb +13 -0
- data/lib/openactive/validators/date_interval_validator.rb +38 -0
- data/lib/openactive/validators/date_time_validator.rb +40 -0
- data/lib/openactive/validators/enum_validator.rb +33 -0
- data/lib/openactive/validators/float_validator.rb +26 -0
- data/lib/openactive/validators/instance_validator.rb +19 -0
- data/lib/openactive/validators/int_validator.rb +26 -0
- data/lib/openactive/validators/null_validator.rb +13 -0
- data/lib/openactive/validators/number_validator.rb +26 -0
- data/lib/openactive/validators/string_validator.rb +26 -0
- data/lib/openactive/validators/time_validator.rb +29 -0
- data/lib/openactive/validators/uri_validator.rb +27 -0
- data/lib/openactive/version.rb +3 -0
- data/lib/openactive.rb +52 -0
- data/openactive.gemspec +35 -0
- data/yard_extensions/define_property_handler.rb +68 -0
- data/yard_extensions.rb +4 -0
- 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
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
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
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
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,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
|