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
@@ -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
|
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
|
data/openactive.gemspec
ADDED
@@ -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
|
data/yard_extensions.rb
ADDED