openactive-dataset_site 0.1.1 → 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 27bda3050fa7bc5b745fe5f70a05bccd414031dc
4
- data.tar.gz: 67d724394a705936913b5cbcddcf18ef1b34146a
2
+ SHA256:
3
+ metadata.gz: 0d3e2a2d08572b7e27b405a0dc905409cac23c891bdf9f5abc3ac699bdba48d3
4
+ data.tar.gz: 967b8743bb67803f64219d5547424a7b2b93c92edad7b19f4ec934a134f69988
5
5
  SHA512:
6
- metadata.gz: ae03e4c8ef2033020fb154a9d0987a6b656007276c489632596cae4d81548780b44ac1fcfbe2db228a168176578f2bb9454187ec2d2bbf983acd0ce8668bb048
7
- data.tar.gz: 1078436fecde29e78b4ae0d77fb8892908278c57ad62f36050521348984c61c576a9dae043a10fa1549a729d088e6a22adae93b9e6569724eb794c90edddba3a
6
+ metadata.gz: a932ddad0242f2eb224fa6424258e0e42d99d48622b5f7e9d151d05142582cbe6dea0d995789c25c01904935292a341c9af771dbdb9f6c2671adcfc2b93bf4de
7
+ data.tar.gz: b188e7aeb892c75e5e7ab5ec27831a4cd0f7595cddfe45ac88aade37f323f01e9d2c12c2a0898918086b7c4e46f79d6d3736132236b70a108acc7d5ec326684d
@@ -0,0 +1,63 @@
1
+ name: Update Dataset Site Template
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ repository_dispatch:
6
+ types: [dataset-site-template-update]
7
+
8
+ jobs:
9
+ generate:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout
14
+ uses: actions/checkout@v2
15
+ with:
16
+ ref: master
17
+
18
+ - name: Setup Node.js 14.x
19
+ uses: actions/setup-node@v1
20
+ with:
21
+ node-version: 14.x
22
+
23
+ - name: Update dataset site template to latest version
24
+ run: npx @openactive/dataset-site-template@latest --raw "./lib/openactive/dataset_site/"
25
+ working-directory: ./
26
+
27
+ - name: git stash if material changes have not been made
28
+ # When considering whether it's worth making a PR, ignore the following:
29
+ # - The dataset-site-template minor or patch version number updating within the template in datasetsite.mustache and datasetsite-csp.mustache (affects one line)
30
+ # - Any updates to datasetsite-csp.static.zip
31
+ # git stashing if no material changes allows the next step to close the PR if one is already open
32
+ run: if [ "$(git diff --numstat | grep -vc '^1\s.*datasetsite\.mustache\|1\s.*datasetsite-csp\.mustache\|.*datasetsite-csp\.static\.zip$')" -eq "0" ]; then git stash; else echo "Material changes found"; fi
33
+ working-directory: ./
34
+
35
+ - name: Create Pull Request
36
+ id: cpr
37
+ uses: peter-evans/create-pull-request@v3
38
+ with:
39
+ path: ./
40
+ token: ${{ secrets.PUBLIC_REPO_ACCESS_TOKEN }}
41
+ commit-message: Update dataset site template
42
+ committer: openactive-bot <openactive-bot@users.noreply.github.com>
43
+ author: openactive-bot <openactive-bot@users.noreply.github.com>
44
+ signoff: false
45
+ branch: ci/update-data-models
46
+ delete-branch: true
47
+ title: 'Update dataset site template'
48
+ body: |
49
+ Update to the latest version of the [Dataset Site Template](https://github.com/openactive/dataset-site-template)
50
+
51
+ **Reviewer note:** Major version numbers of this library should match those of the `dataset-site-template` on which this library depends. Any updates to the dataset site template files or assets should always be a major version update in both libraries. Hence this PR, once merged, should be released with a major version bump to match its contents.
52
+
53
+ labels: |
54
+ automated pr
55
+ team-reviewers: |
56
+ owners
57
+ maintainers
58
+ draft: false
59
+
60
+ - name: Check outputs
61
+ run: |
62
+ echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
63
+ echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
@@ -0,0 +1,39 @@
1
+ name: Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ jobs:
7
+ release:
8
+
9
+ runs-on: ubuntu-latest
10
+
11
+ steps:
12
+ - name: Checkout
13
+ uses: actions/checkout@v2
14
+ with:
15
+ token: ${{ secrets.PUBLIC_REPO_ACCESS_TOKEN }}
16
+
17
+ - name: Identify
18
+ run: |
19
+ git config user.name OpenActive Bot
20
+ git config user.email hello@openactive.io
21
+
22
+ - name: Set up Ruby
23
+ uses: ruby/setup-ruby@v1
24
+ with:
25
+ ruby-version: 2.7
26
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
27
+
28
+ - name: Run tests
29
+ run: bundle exec rspec
30
+
31
+ - name: Publish to RubyGems
32
+ run: |
33
+ mkdir -p $HOME/.gem
34
+ touch $HOME/.gem/credentials
35
+ chmod 0600 $HOME/.gem/credentials
36
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
37
+ bundle exec rake release
38
+ env:
39
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_API_KEY}}"
@@ -0,0 +1,66 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ test:
11
+
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ ruby-version: ['2.6', '2.7']
16
+
17
+ steps:
18
+ - uses: actions/checkout@v2
19
+ - name: Set up Ruby
20
+ uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: ${{ matrix.ruby-version }}
23
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
24
+
25
+ - name: Run tests
26
+ run: bundle exec rspec
27
+
28
+ - name: Create output directory
29
+ run: mkdir -p ./output/
30
+
31
+ - name: Output rendering basic_example as an artifact
32
+ run: ruby examples/basic_example.rb > ./output/basic_example.html
33
+
34
+ - name: Output rendering basic_example_with_booking as an artifact
35
+ run: ruby examples/basic_example_with_booking.rb > ./output/basic_example_with_booking.html
36
+
37
+ - name: Output rendering basic_example_with_booking_minimal as an artifact
38
+ run: ruby examples/basic_example_with_booking_minimal.rb > ./output/basic_example_with_booking_minimal.html
39
+
40
+ - name: Output rendering basic_csp_example_with_booking as an artifact
41
+ run: ruby examples/basic_csp_example_with_booking.rb > ./output/basic_csp_example_with_booking.html
42
+
43
+ - name: Output rendering dataset_example as an artifact
44
+ run: ruby examples/dataset_example.rb > ./output/dataset_example.html
45
+
46
+ - name: Output rendering dataset_example_with_booking as an artifact
47
+ run: ruby examples/dataset_example_with_booking.rb > ./output/dataset_example_with_booking.html
48
+
49
+ - name: Output rendering dataset_csp_example_with_booking as an artifact
50
+ run: ruby examples/dataset_csp_example_with_booking.rb > ./output/dataset_csp_example_with_booking.html
51
+
52
+ - name: Output rendering dataset_patch as an artifact
53
+ run: ruby examples/dataset_patch.rb > ./output/dataset_patch.html
54
+
55
+ - name: Output rendering specific_feed_override_example as an artifact
56
+ run: ruby examples/specific_feed_override_example.rb > ./output/specific_feed_override_example.html
57
+
58
+ - name: Output rendering specific_feed_override_example2 as an artifact
59
+ run: ruby examples/specific_feed_override_example2.rb > ./output/specific_feed_override_example2.html
60
+
61
+ - name: Upload example renderings
62
+ uses: actions/upload-artifact@v2
63
+ if: ${{ success() || failure() }}
64
+ with:
65
+ name: example-rendering-ruby-${{ matrix.ruby-version }}
66
+ path: ./output/
data/README.md CHANGED
@@ -34,13 +34,21 @@ renderer = OpenActive::DatasetSite::TemplateRenderer.new(settings)
34
34
  puts renderer.render
35
35
  ```
36
36
 
37
+ Or to render a [CSP-compatible template](https://developer.openactive.io/publishing-data/dataset-sites#template-hosting-options), first ensure that you are serving the [CSP compatible static assets](/lib/openactive/dataset_site/datasetsite-csp.static.zip) from this version of the Ruby gem at a URL, and then including the following:
38
+ ```ruby
39
+
40
+ # Render compiled CSP-compatible template with data
41
+ renderer = OpenActive::DatasetSite::TemplateRenderer.new(settings, "./path/to/assets")
42
+ puts renderer.render
43
+ ```
44
+
37
45
  Where `settings` could be defined like the following (as an example):
38
46
  ```ruby
39
47
  settings = OpenActive::DatasetSite::Settings.new(
40
48
  open_data_feed_base_url: "https://customer.example.com/feed/",
41
49
  dataset_site_url: "https://halo-odi.legendonlineservices.co.uk/openactive/",
42
50
  dataset_discussion_url: "https://github.com/gll-better/opendata",
43
- dataset_documentation_url: "https://docs.acmebooker.example.com/",
51
+ dataset_documentation_url: "https://permalink.openactive.io/dataset-site/open-data-documentation",
44
52
  dataset_languages: ["en-GB"],
45
53
  organisation_name: "Better",
46
54
  organisation_url: "https://www.better.org.uk/",
@@ -53,6 +61,12 @@ settings = OpenActive::DatasetSite::Settings.new(
53
61
  platform_software_version: "2.0",
54
62
  background_image_url: "https://data.better.org.uk/images/bg.jpg",
55
63
  date_first_published: "2019-10-28",
64
+ open_booking_api_base_url: "https://reference-implementation.openactive.io/api/openbooking",
65
+ open_booking_api_authentication_authority_url: "https://auth.reference-implementation.openactive.io",
66
+ open_booking_api_documentation_url: "https://permalink.openactive.io/dataset-site/open-booking-api-documentation",
67
+ open_booking_api_terms_service_url: "https://example.com/api-terms-page",
68
+ open_booking_api_registration_url: "https://example.com/api-landing-page",
69
+ test_suite_certificate_url: "https://certificates.reference-implementation.openactive.io/examples/all-features/controlled/",
56
70
  data_feed_types: [
57
71
  OpenActive::DatasetSite::FeedType::FACILITY_USE,
58
72
  OpenActive::DatasetSite::FeedType::SCHEDULED_SESSION,
@@ -110,9 +124,21 @@ settings = OpenActive::DatasetSite::Settings.new(
110
124
  ```ruby
111
125
  dataset = OpenActive::Models::Dataset.new(
112
126
  id: "http://example.com/dataset/",
127
+ url: "http://example.com/dataset/",
113
128
  description:
114
129
  "Near real-time availability and rich descriptions relating to the facilities and sessions available from Simpleweb",
115
- url: "http://example.com/dataset/",
130
+ access_service:
131
+ OpenActive::Models::WebAPI.new(
132
+ name: 'Open Booking API',
133
+ description: "API that allows for seamless booking experiences to be created for facilities and sessions available from Simpleweb",
134
+ documentation: "https://permalink.openactive.io/dataset-site/open-booking-api-documentation",
135
+ terms_of_service: "https://example.com/api-terms-page",
136
+ endpoint_url: "https://reference-implementation.openactive.io/api/openbooking",
137
+ authentication_authority: "https://auth.reference-implementation.openactive.io",
138
+ conforms_to: ["https://openactive.io/open-booking-api/EditorsDraft/"],
139
+ endpoint_description: "https://www.openactive.io/open-booking-api/EditorsDraft/swagger.json",
140
+ landing_page: "https://example.com/api-landing-page"
141
+ ),
116
142
  dateModified: "2019-12-09T15:36:15+00:00",
117
143
  keywords:
118
144
  ["Facilities",
@@ -170,8 +196,14 @@ dataset = OpenActive::Models::Dataset.new(
170
196
  url:
171
197
  "https://simpleweb.co.uk/wp-content/uploads/2017/06/IMG_8994-500x500-c-default.jpg",
172
198
  ),
173
- documentation: "https://developer.openactive.io/",
199
+ documentation: "https://permalink.openactive.io/dataset-site/open-data-documentation",
174
200
  name: "Simpleweb Facilities and Sessions",
201
+ booking_service:
202
+ OpenActive::Models::BookingService.new(
203
+ name: "SimpleWeb Booking",
204
+ url: "https://www.example.com/",
205
+ has_credential: "https://certificates.reference-implementation.openactive.io/examples/all-features/controlled/",
206
+ )
175
207
  )
176
208
 
177
209
  renderer = OpenActive::DatasetSite::TemplateRenderer.new(dataset)
@@ -203,35 +235,43 @@ Accepts a config hash containing the following keys:
203
235
 
204
236
  ##### Settings
205
237
 
206
- | Key | Type | Description |
207
- | --------------------------------------- | ----------- | ----------- |
208
- | `open_data_feed_base_url` | `string` | The the base URL for the open data feeds |
209
- | `dataset_site_url` | `string` | The URL where this dataset site is displayed (the page's own URL) |
210
- | `dataset_discussion_url` | `string` | The GitHub issues page for the dataset |
211
- | `dataset_documentation_url` | `string` | Any documentation specific to the dataset. Defaults to https://developer.openactive.io/ if not provided, which should be used if no documentation is available. |
212
- | `dataset_languages` | `string[]` | The languages available in the dataset, following the IETF BCP 47 standard. Defaults to `array("en-GB")`. |
213
- | `organisation_name` | `string` | The publishing organisation's name |
214
- | `organisation_url` | `string` | The publishing organisation's URL |
215
- | `organisation_legal_entity` | `string` | The legal name of the publishing organisation of this dataset |
216
- | `organisation_plain_text_description` | `string` | A plain text description of this organisation |
217
- | `organisation_logo_url` | `string` | An image URL of the publishing organisation's logo, ideally in PNG format |
218
- | `organisation_email` | `string` | The contact email of the publishing organisation of this dataset |
219
- | `platform_name` | `string` | The software platform's name. Only set this if different from the publishing organisation, otherwise leave as null to exclude platform metadata. |
220
- | `platform_url` | `string` | The software platform's website |
221
- | `platform_software_version` | `string` | The software platform's software version |
222
- | `background_image_url` | `string` | The background image to show on the Dataset Site page |
223
- | `date_first_published` | `string` | The date the dataset was first published |
224
- | `data_feed_types` | `FeedType[]`| A list of supported DataFeed types |
238
+ | Key | Type | Description |
239
+ | ----------------------------------------------- | ----------- | ----------- |
240
+ | `open_data_feed_base_url` | `string` | The the base URL for the open data feeds |
241
+ | `dataset_site_url` | `string` | The URL where this dataset site is displayed (the page's own URL) |
242
+ | `dataset_discussion_url` | `string` | The GitHub issues page for the dataset |
243
+ | `dataset_documentation_url` | `string` | Any documentation specific to the dataset. Defaults to https://permalink.openactive.io/dataset-site/open-data-documentation if not provided, which should be used if no documentation is available. |
244
+ | `dataset_languages` | `string[]` | The languages available in the dataset, following the IETF BCP 47 standard. Defaults to `array("en-GB")`. |
245
+ | `organisation_name` | `string` | The publishing organisation's name |
246
+ | `organisation_url` | `string` | The publishing organisation's URL |
247
+ | `organisation_legal_entity` | `string` | The legal name of the publishing organisation of this dataset |
248
+ | `organisation_plain_text_description` | `string` | A plain text description of this organisation |
249
+ | `organisation_logo_url` | `string` | An image URL of the publishing organisation's logo, ideally in PNG format |
250
+ | `organisation_email` | `string` | The contact email of the publishing organisation of this dataset |
251
+ | `platform_name` | `string` | The software platform's name. Only set this if different from the publishing organisation, otherwise leave as null to exclude platform metadata. |
252
+ | `platform_url` | `string` | The software platform's website |
253
+ | `platform_software_version` | `string` | The software platform's software version |
254
+ | `background_image_url` | `string` | The background image to show on the Dataset Site page |
255
+ | `date_first_published` | `string` | The date the dataset was first published |
256
+ | `open_booking_api_base_url` | `string` | The Base URI of this implementation of the Open Booking API |
257
+ | `open_booking_api_authentication_authority_url` | `string` | The location of the OpenID Provider that must be used to access the API |
258
+ | `open_booking_api_documentation_url` | `string` | The URL of documentation related to how to use the Open Booking API. Defaults to https://permalink.openactive.io/dataset-site/open-booking-api-documentation if not provided, which should be used if no system-specific documentation is available. |
259
+ | `open_booking_api_terms_service_url` | `string` | The URL of terms of service related to the use of this API |
260
+ | `open_booking_api_registration_url` | `string` | The URL of a web page that the Broker may use to obtain access to the API, e.g. via a web form |
261
+ | `test_suite_certificate_url` | `string` | The URL of the OpenActive Test Suite certificate for this booking system |
262
+ | `data_feed_types` | `FeedType[]`| A list of supported DataFeed types |
225
263
 
226
264
  And `data_feed_types` must be an array of `FeedType` constants, which auto-generates the metadata associated which each feed using best-practice values. See [available types](#feedtype)
227
265
 
228
- #### OpenActive::DatasetSite::TemplateRenderer.new(settings)
266
+ #### OpenActive::DatasetSite::TemplateRenderer.new(settings, static_assets_path_url = nil)
267
+
268
+ Accepts a [`settings`](#settings) or [`DataSet`](#dataset) object. This is a Mustache engine.
229
269
 
230
- Accepts a settings or a DataSet object. This is a Mustache engine.
270
+ If `static_assets_path_url` is provided, the [CSP-compatible template](https://developer.openactive.io/publishing-data/dataset-sites#template-hosting-options) is rendered. In this case you must ensure that you are serving the contents of the [CSP compatible static assets archive](/lib/openactive/dataset_site/datasetsite-csp.static.zip) at this location, using the assets archive in this version of the Ruby gem.
231
271
 
232
272
  ##### .render
233
273
 
234
- Returns a string corresponding to the compiled HTML, based on the `datasetsite.mustache`, the provided [`settings`](#settings)
274
+ Returns a string corresponding to the compiled HTML, based on the `datasetsite.mustache`, and the provided [`settings`](#settings) or [`DataSet`](#dataset) object
235
275
 
236
276
  #### `FeedType`
237
277
 
@@ -249,3 +289,9 @@ A class containing the supported distribution types:
249
289
  | `SCHEDULED_SESSION` | `ScheduledSession` |
250
290
  | `SESSION_SERIES` | `SessionSeries` |
251
291
  | `SLOT` | `Slot` |
292
+
293
+ ## Contribution
294
+
295
+ ### Release
296
+
297
+ Major version numbers of this library should match those of the `dataset-site-template` on which this library depends. Any updates to the dataset site template files or assets should always be a major version update in both libraries.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -0,0 +1,41 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require "openactive/dataset_site"
5
+
6
+ feed_types = [
7
+ OpenActive::DatasetSite::FeedType::FACILITY_USE,
8
+ OpenActive::DatasetSite::FeedType::SCHEDULED_SESSION,
9
+ OpenActive::DatasetSite::FeedType::SESSION_SERIES,
10
+ OpenActive::DatasetSite::FeedType::SLOT,
11
+ ]
12
+
13
+ settings = OpenActive::DatasetSite::Settings.new(
14
+ open_data_feed_base_url: "http://example.com/feed/",
15
+ dataset_site_url: "http://example.com/dataset/",
16
+ dataset_discussion_url: "https://github.com/simpleweb/sw-oa-php-test-site",
17
+ dataset_documentation_url: "https://permalink.openactive.io/dataset-site/open-data-documentation",
18
+ dataset_languages: ["en-GB"],
19
+ organisation_name: "Simpleweb",
20
+ organisation_url: "https://www.simpleweb.co.uk/",
21
+ organisation_legal_entity: "Simpleweb Ltd",
22
+ organisation_plain_text_description: "Simpleweb is a purpose driven software company that specialises in new "\
23
+ "technologies, product development, and human interaction.",
24
+ organisation_logo_url: "https://simpleweb.co.uk/wp-content/uploads/2015/07/facebook-default.png",
25
+ organisation_email: "spam@simpleweb.co.uk",
26
+ background_image_url: "https://simpleweb.co.uk/wp-content/uploads/2017/06/IMG_8994-500x500-c-default.jpg",
27
+ date_first_published: "2019-11-05",
28
+ platform_name: "AcmeBooker",
29
+ platform_url: "https://acmebooker.example.com/",
30
+ open_booking_api_base_url: "https://reference-implementation.openactive.io/api/openbooking",
31
+ open_booking_api_authentication_authority_url: "https://auth.reference-implementation.openactive.io",
32
+ open_booking_api_documentation_url: "https://permalink.openactive.io/dataset-site/open-booking-api-documentation",
33
+ open_booking_api_terms_service_url: "https://example.com/api-terms-page",
34
+ open_booking_api_registration_url: "https://example.com/api-landing-page",
35
+ test_suite_certificate_url: "https://certificates.reference-implementation.openactive.io/examples/all-features/controlled/",
36
+ data_feed_types: feed_types,
37
+ )
38
+
39
+ renderer = OpenActive::DatasetSite::TemplateRenderer.new(settings, "./path/to/assets")
40
+
41
+ puts renderer.render
@@ -14,7 +14,7 @@ settings = OpenActive::DatasetSite::Settings.new(
14
14
  open_data_feed_base_url: "http://example.com/feed/",
15
15
  dataset_site_url: "http://example.com/dataset/",
16
16
  dataset_discussion_url: "https://github.com/simpleweb/sw-oa-php-test-site",
17
- dataset_documentation_url: "https://developer.openactive.io/",
17
+ dataset_documentation_url: "https://permalink.openactive.io/dataset-site/open-data-documentation",
18
18
  dataset_languages: ["en-GB"],
19
19
  organisation_name: "Simpleweb",
20
20
  organisation_url: "https://www.simpleweb.co.uk/",
@@ -24,7 +24,7 @@ settings = OpenActive::DatasetSite::Settings.new(
24
24
  organisation_logo_url: "https://simpleweb.co.uk/wp-content/uploads/2015/07/facebook-default.png",
25
25
  organisation_email: "spam@simpleweb.co.uk",
26
26
  background_image_url: "https://simpleweb.co.uk/wp-content/uploads/2017/06/IMG_8994-500x500-c-default.jpg",
27
- date_first_published: "2019-11-05", # remember, remember the fifth of November...
27
+ date_first_published: "2019-11-05",
28
28
  data_feed_types: feed_types,
29
29
  )
30
30
 
@@ -0,0 +1,41 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require "openactive/dataset_site"
5
+
6
+ feed_types = [
7
+ OpenActive::DatasetSite::FeedType::FACILITY_USE,
8
+ OpenActive::DatasetSite::FeedType::SCHEDULED_SESSION,
9
+ OpenActive::DatasetSite::FeedType::SESSION_SERIES,
10
+ OpenActive::DatasetSite::FeedType::SLOT,
11
+ ]
12
+
13
+ settings = OpenActive::DatasetSite::Settings.new(
14
+ open_data_feed_base_url: "http://example.com/feed/",
15
+ dataset_site_url: "http://example.com/dataset/",
16
+ dataset_discussion_url: "https://github.com/simpleweb/sw-oa-php-test-site",
17
+ dataset_documentation_url: "https://permalink.openactive.io/dataset-site/open-data-documentation",
18
+ dataset_languages: ["en-GB"],
19
+ organisation_name: "Simpleweb",
20
+ organisation_url: "https://www.simpleweb.co.uk/",
21
+ organisation_legal_entity: "Simpleweb Ltd",
22
+ organisation_plain_text_description: "Simpleweb is a purpose driven software company that specialises in new "\
23
+ "technologies, product development, and human interaction.",
24
+ organisation_logo_url: "https://simpleweb.co.uk/wp-content/uploads/2015/07/facebook-default.png",
25
+ organisation_email: "spam@simpleweb.co.uk",
26
+ background_image_url: "https://simpleweb.co.uk/wp-content/uploads/2017/06/IMG_8994-500x500-c-default.jpg",
27
+ date_first_published: "2019-11-05",
28
+ platform_name: "AcmeBooker",
29
+ platform_url: "https://acmebooker.example.com/",
30
+ open_booking_api_base_url: "https://reference-implementation.openactive.io/api/openbooking",
31
+ open_booking_api_authentication_authority_url: "https://auth.reference-implementation.openactive.io",
32
+ open_booking_api_documentation_url: "https://permalink.openactive.io/dataset-site/open-booking-api-documentation",
33
+ open_booking_api_terms_service_url: "https://example.com/api-terms-page",
34
+ open_booking_api_registration_url: "https://example.com/api-landing-page",
35
+ test_suite_certificate_url: "https://certificates.reference-implementation.openactive.io/examples/all-features/controlled/",
36
+ data_feed_types: feed_types,
37
+ )
38
+
39
+ renderer = OpenActive::DatasetSite::TemplateRenderer.new(settings)
40
+
41
+ puts renderer.render
@@ -0,0 +1,35 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require "openactive/dataset_site"
5
+
6
+ feed_types = [
7
+ OpenActive::DatasetSite::FeedType::FACILITY_USE,
8
+ OpenActive::DatasetSite::FeedType::SCHEDULED_SESSION,
9
+ OpenActive::DatasetSite::FeedType::SESSION_SERIES,
10
+ OpenActive::DatasetSite::FeedType::SLOT,
11
+ ]
12
+
13
+ settings = OpenActive::DatasetSite::Settings.new(
14
+ open_data_feed_base_url: "http://example.com/feed/",
15
+ dataset_site_url: "http://example.com/dataset/",
16
+ dataset_discussion_url: "https://github.com/simpleweb/sw-oa-php-test-site",
17
+ dataset_languages: ["en-GB"],
18
+ organisation_name: "Simpleweb",
19
+ organisation_url: "https://www.simpleweb.co.uk/",
20
+ organisation_legal_entity: "Simpleweb Ltd",
21
+ organisation_plain_text_description: "Simpleweb is a purpose driven software company that specialises in new "\
22
+ "technologies, product development, and human interaction.",
23
+ organisation_logo_url: "https://simpleweb.co.uk/wp-content/uploads/2015/07/facebook-default.png",
24
+ organisation_email: "spam@simpleweb.co.uk",
25
+ background_image_url: "https://simpleweb.co.uk/wp-content/uploads/2017/06/IMG_8994-500x500-c-default.jpg",
26
+ date_first_published: "2019-11-05",
27
+ open_booking_api_base_url: "https://reference-implementation.openactive.io/api/openbooking",
28
+ open_booking_api_registration_url: "https://example.com/api-landing-page",
29
+ test_suite_certificate_url: "https://certificates.reference-implementation.openactive.io/examples/all-features/controlled/",
30
+ data_feed_types: feed_types,
31
+ )
32
+
33
+ renderer = OpenActive::DatasetSite::TemplateRenderer.new(settings)
34
+
35
+ puts renderer.render
@@ -0,0 +1,92 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require "openactive/dataset_site"
5
+
6
+ dataset = OpenActive::Models::Dataset.new(
7
+ id: "http://example.com/dataset/",
8
+ url: "http://example.com/dataset/",
9
+ description:
10
+ "Near real-time availability and rich descriptions relating to the facilities and sessions available from Simpleweb",
11
+ access_service:
12
+ OpenActive::Models::WebAPI.new(
13
+ name: 'Open Booking API',
14
+ description: "API that allows for seamless booking experiences to be created for facilities and sessions available from Simpleweb",
15
+ documentation: "https://permalink.openactive.io/dataset-site/open-booking-api-documentation",
16
+ terms_of_service: "https://example.com/api-terms-page",
17
+ endpoint_url: "https://reference-implementation.openactive.io/api/openbooking",
18
+ authentication_authority: "https://auth.reference-implementation.openactive.io",
19
+ conforms_to: ["https://openactive.io/open-booking-api/EditorsDraft/"],
20
+ endpoint_description: "https://www.openactive.io/open-booking-api/EditorsDraft/swagger.json",
21
+ landing_page: "https://example.com/api-landing-page"
22
+ ),
23
+ date_modified: "2019-12-09T15:36:15+00:00",
24
+ keywords:
25
+ ["Facilities",
26
+ "Sessions",
27
+ "Activities",
28
+ "Sports",
29
+ "Physical Activity",
30
+ "OpenActive"],
31
+ schema_version: "https://www.openactive.io/modelling-opportunity-data/2.0/",
32
+ license: "https://creativecommons.org/licenses/by/4.0/",
33
+ publisher:
34
+ OpenActive::Models::Organization.new(
35
+ name: "Simpleweb",
36
+ description:
37
+ "Simpleweb is a purpose driven software company that specialises in new technologies, product development, and human interaction.",
38
+ url: "https://www.simpleweb.co.uk/",
39
+ legalName: "Simpleweb Ltd",
40
+ logo:
41
+ OpenActive::Models::ImageObject.new(
42
+ url:
43
+ "https://simpleweb.co.uk/wp-content/uploads/2015/07/facebook-default.png",
44
+ ),
45
+ email: "spam@simpleweb.co.uk",
46
+ ),
47
+ discussion_url: "https://github.com/simpleweb/sw-oa-php-test-site",
48
+ date_published: "2019-11-05T00:00:00+00:00",
49
+ in_language: ["en-GB"],
50
+ distribution:
51
+ [OpenActive::Models::DataDownload.new(
52
+ name: "FacilityUse",
53
+ additional_type: "https://openactive.io/FacilityUse",
54
+ encoding_format: "application/vnd.openactive.rpde+json; version=1",
55
+ content_url: "http://example.com/feed/facility-uses",
56
+ ),
57
+ OpenActive::Models::DataDownload.new(
58
+ name: "ScheduledSession",
59
+ additional_type: "https://openactive.io/ScheduledSession",
60
+ encoding_format: "application/vnd.openactive.rpde+json; version=1",
61
+ content_url: "http://example.com/feed/scheduled-sessions",
62
+ ),
63
+ OpenActive::Models::DataDownload.new(
64
+ name: "SessionSeries",
65
+ additional_type: "https://openactive.io/SessionSeries",
66
+ encoding_format: "application/vnd.openactive.rpde+json; version=1",
67
+ content_url: "http://example.com/feed/session_series",
68
+ ),
69
+ OpenActive::Models::DataDownload.new(
70
+ name: "Slot",
71
+ additional_type: "https://openactive.io/Slot",
72
+ encoding_format: "application/vnd.openactive.rpde+json; version=1",
73
+ content_url: "http://example.com/feed/slots",
74
+ )],
75
+ background_image:
76
+ OpenActive::Models::ImageObject.new(
77
+ url:
78
+ "https://simpleweb.co.uk/wp-content/uploads/2017/06/IMG_8994-500x500-c-default.jpg",
79
+ ),
80
+ documentation: "https://permalink.openactive.io/dataset-site/open-data-documentation",
81
+ name: "Simpleweb Facilities and Sessions",
82
+ booking_service:
83
+ OpenActive::Models::BookingService.new(
84
+ name: "SimpleWeb Booking",
85
+ url: "https://www.example.com/",
86
+ has_credential: "https://certificates.reference-implementation.openactive.io/examples/all-features/controlled/",
87
+ ),
88
+ )
89
+
90
+ renderer = OpenActive::DatasetSite::TemplateRenderer.new(dataset, "./path/to/assets")
91
+
92
+ puts renderer.render
@@ -5,9 +5,9 @@ require "openactive/dataset_site"
5
5
 
6
6
  dataset = OpenActive::Models::Dataset.new(
7
7
  id: "http://example.com/dataset/",
8
+ url: "http://example.com/dataset/",
8
9
  description:
9
10
  "Near real-time availability and rich descriptions relating to the facilities and sessions available from Simpleweb",
10
- url: "http://example.com/dataset/",
11
11
  date_modified: "2019-12-09T15:36:15+00:00",
12
12
  keywords:
13
13
  ["Facilities",
@@ -65,8 +65,13 @@ dataset = OpenActive::Models::Dataset.new(
65
65
  url:
66
66
  "https://simpleweb.co.uk/wp-content/uploads/2017/06/IMG_8994-500x500-c-default.jpg",
67
67
  ),
68
- documentation: "https://developer.openactive.io/",
68
+ documentation: "https://permalink.openactive.io/dataset-site/open-data-documentation",
69
69
  name: "Simpleweb Facilities and Sessions",
70
+ booking_service:
71
+ OpenActive::Models::BookingService.new(
72
+ name: "SimpleWeb Booking",
73
+ url: "https://www.example.com/",
74
+ ),
70
75
  )
71
76
 
72
77
  renderer = OpenActive::DatasetSite::TemplateRenderer.new(dataset)