bridgetown_directus 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +40 -0
- data/.rubocop.yml +23 -0
- data/CHANGELOG.md +14 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +22 -0
- data/README.md +113 -0
- data/Rakefile +11 -0
- data/bridgetown.automation.rb +23 -0
- data/bridgetown_directus.gemspec +31 -0
- data/lib/bridgetown_directus/api_client.rb +49 -0
- data/lib/bridgetown_directus/builder.rb +45 -0
- data/lib/bridgetown_directus/utils.rb +9 -0
- data/lib/bridgetown_directus/version.rb +5 -0
- data/lib/bridgetown_directus.rb +25 -0
- data/package.json +16 -0
- metadata +203 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4b424ba8e007c294fa25eb29fbdd0276ab170d6161868fb5e8ece5dfec640a3a
|
4
|
+
data.tar.gz: ee0e007bc2cf19b6bf727409744b21b4ae51037381d448003ef544f3bf051958
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 444040c145212360d3f8055cec064dc062f56bb012c35264ad265e9db26257010f5b5ca6dab2591c6ac1a2969a7863a536f25e885bff598130a75470ea4111ed
|
7
|
+
data.tar.gz: 935a429e2b629b8d3b55a2df4cae44cd7fd753539b65c62a0de3d395a5f0bdb3e571296e2e9cd0651f4f9a69fc8e3769be8a42c9c91f9cdf29a39ef26d7e6dbf
|
data/.gitignore
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
/vendor
|
2
|
+
/.bundle/
|
3
|
+
/.yardoc
|
4
|
+
/Gemfile.lock
|
5
|
+
/_yardoc/
|
6
|
+
/coverage/
|
7
|
+
/doc/
|
8
|
+
/pkg/
|
9
|
+
/spec/reports/
|
10
|
+
/tmp/
|
11
|
+
*.bundle
|
12
|
+
*.so
|
13
|
+
*.o
|
14
|
+
*.a
|
15
|
+
mkmf.log
|
16
|
+
*.gem
|
17
|
+
Gemfile.lock
|
18
|
+
.bundle
|
19
|
+
.ruby-version
|
20
|
+
|
21
|
+
# Node
|
22
|
+
node_modules
|
23
|
+
.npm
|
24
|
+
.node_repl_history
|
25
|
+
|
26
|
+
# Yarn
|
27
|
+
yarn-error.log
|
28
|
+
yarn-debug.log*
|
29
|
+
.pnp/
|
30
|
+
.pnp.js
|
31
|
+
|
32
|
+
# Yarn Integrity file
|
33
|
+
.yarn-integrity
|
34
|
+
|
35
|
+
test/dest
|
36
|
+
.bridgetown-metadata
|
37
|
+
.bridgetown-cache
|
38
|
+
.bridgetown-webpack
|
39
|
+
|
40
|
+
.env
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require: rubocop-bridgetown
|
2
|
+
|
3
|
+
inherit_gem:
|
4
|
+
rubocop-bridgetown: .rubocop.yml
|
5
|
+
|
6
|
+
AllCops:
|
7
|
+
TargetRubyVersion: 2.7
|
8
|
+
|
9
|
+
Exclude:
|
10
|
+
- .gitignore
|
11
|
+
- .rubocop.yml
|
12
|
+
- "*.gemspec"
|
13
|
+
|
14
|
+
- Gemfile.lock
|
15
|
+
- CHANGELOG.md
|
16
|
+
- LICENSE.txt
|
17
|
+
- README.md
|
18
|
+
- Rakefile
|
19
|
+
- bridgetown.automation.rb
|
20
|
+
|
21
|
+
- script/**/*
|
22
|
+
- test/fixtures/**/*
|
23
|
+
- vendor/**/*
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
All notable changes to this project will be documented in this file.
|
4
|
+
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
|
+
|
8
|
+
## [Unreleased]
|
9
|
+
|
10
|
+
- ...
|
11
|
+
|
12
|
+
## [0.1.0] - 2024-09-27
|
13
|
+
|
14
|
+
- First version
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2020-present
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
# Bridgetown Directus Plugin
|
2
|
+
|
3
|
+
This Bridgetown plugin integrates with the [Directus](https://directus.io/) which is among other things a [headless CMS](https://en.wikipedia.org/wiki/Headless_content_management_system). The plugin allows Bridgetown to pull content from a Directus API during the build process and generate static content in your site. It currently supports fetching published posts, with future plans for more flexibility and features.
|
4
|
+
|
5
|
+
## Features
|
6
|
+
|
7
|
+
- Fetch **published posts** from Directus during the build process
|
8
|
+
- Simple setup and configuration
|
9
|
+
|
10
|
+
## Installation
|
11
|
+
|
12
|
+
Before installing the plugin make sure you have an [Auth Token](https://docs.directus.io/reference/authentication.html#access-tokens) in your Directus instance.
|
13
|
+
|
14
|
+
### Recommended Installation (Bridgetown Automation)
|
15
|
+
|
16
|
+
1. Run the plugin's automation setup:
|
17
|
+
```bash
|
18
|
+
bin/bridgetown apply https://github.com/munkun-estudio/bridgetown_directus
|
19
|
+
```
|
20
|
+
2. The setup will guide you to provide the Directus API URL and Auth Token, and configure the plugin automatically.
|
21
|
+
|
22
|
+
### Manual Installation
|
23
|
+
|
24
|
+
1. Add the gem to your Gemfile:
|
25
|
+
```ruby
|
26
|
+
bundle add "bridgetown_directus"
|
27
|
+
```
|
28
|
+
2. Run bundle install to install the gem.
|
29
|
+
3. Add the plugin configuration to your config/initializers.rb file:
|
30
|
+
```ruby
|
31
|
+
init :bridgetown_directus do
|
32
|
+
api_url "https://your-directus-instance.com"
|
33
|
+
token ENV['DIRECTUS_AUTH_TOKEN'] || "your_token"
|
34
|
+
end
|
35
|
+
```
|
36
|
+
|
37
|
+
## Configuration
|
38
|
+
|
39
|
+
To configure the plugin:
|
40
|
+
|
41
|
+
1. You can either use environment variables for the API URL and token:
|
42
|
+
```bash
|
43
|
+
export DIRECTUS_API_URL="https://your-directus-instance.com"
|
44
|
+
export DIRECTUS_AUTH_TOKEN="your-token"
|
45
|
+
```
|
46
|
+
|
47
|
+
2. Or hard-code the values directly in your initializer:
|
48
|
+
```ruby
|
49
|
+
init :bridgetown_directus do
|
50
|
+
api_url "https://your-directus-instance.com"
|
51
|
+
token "your_token"
|
52
|
+
end
|
53
|
+
```
|
54
|
+
## Usage
|
55
|
+
|
56
|
+
Once the plugin is installed and configured, it will fetch posts from your Directus instance during each build. These posts will be generated as in-memory resources, meaning they are not written to disk but are treated as normal posts by Bridgetown.
|
57
|
+
|
58
|
+
### Directus Setup
|
59
|
+
|
60
|
+
To use the plugin, ensure that you've set up a **posts** collection in your Directus instance with the following fields:
|
61
|
+
|
62
|
+
- **title**: The title of the post (Text field)
|
63
|
+
- **date**: The publish date (Datetime field)
|
64
|
+
- **body**: The content of the post (Rich Text or Text field)
|
65
|
+
- **slug**: A unique slug for the post (Text field)
|
66
|
+
- **status**: The status of the post (Option field, with values like "published", "draft", "archived", etc.)
|
67
|
+
|
68
|
+
Make sure the **status** field uses `"published"` for posts that you want to be visible on your site.
|
69
|
+
|
70
|
+
#### Image Permissions
|
71
|
+
|
72
|
+
If your posts contain images, and you want to display them in your Bridgetown site, you'll need to ensure that the **directus_files** collection has the appropriate permissions for public access.
|
73
|
+
|
74
|
+
1. **Public Role Configuration:**
|
75
|
+
- In Directus, navigate to **Settings** > **Roles & Permissions**.
|
76
|
+
- Select the **Public** role (or create a custom role if needed).
|
77
|
+
- Under the **Collections** tab, locate the **directus_files** collection.
|
78
|
+
- Set the **read** permission to **enabled** so that the images can be accessed publicly.
|
79
|
+
|
80
|
+
2. **Image Uploads and Management:**
|
81
|
+
- When users upload images to posts, ensure that the images are associated with the **directus_files** collection.
|
82
|
+
- By default, Directus will store image URLs, which the plugin can reference directly. Ensure that the **image** field or URL is added to the **body** field (or wherever applicable).
|
83
|
+
|
84
|
+
|
85
|
+
### Fetching Posts
|
86
|
+
|
87
|
+
Posts are fetched from Directus during each build and treated as Bridgetown resources. These resources are available in your site just like regular posts, and you can access them through your templates or layouts.
|
88
|
+
|
89
|
+
By default, only posts with a status of "published" are fetched from Directus.
|
90
|
+
|
91
|
+
## TODO List
|
92
|
+
|
93
|
+
Here are features that are planned for future versions of the plugin:
|
94
|
+
|
95
|
+
- [ ] Support for Additional Content Types: Extend the plugin to handle other Directus collections and custom content types.
|
96
|
+
- [ ] Custom Field Mapping via DSL: Implement a DSL for more advanced field mapping.
|
97
|
+
- [ ] Asset Handling: Add functionality to download and manage images and other assets.
|
98
|
+
- [ ] Caching & Incremental Builds: Implement caching to improve build performance when fetching content.
|
99
|
+
- [ ] Draft Previews: Add support for previewing unpublished (draft) posts.
|
100
|
+
|
101
|
+
## Testing
|
102
|
+
|
103
|
+
Testing isn’t fully set up yet, but contributions and improvements are welcome.
|
104
|
+
|
105
|
+
## Contributing
|
106
|
+
|
107
|
+
We welcome contributions to this project! To contribute:
|
108
|
+
|
109
|
+
1. Fork the repository
|
110
|
+
2. Create a new branch (git checkout -b feature-branch)
|
111
|
+
3. Make your changes
|
112
|
+
4. Push to the branch (git push origin feature-branch)
|
113
|
+
5. Open a Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
say_status :directus, "Installing the bridgetown_directus plugin..."
|
2
|
+
|
3
|
+
# Prompt the user for Directus API URL and Auth Token
|
4
|
+
api_url = ask("What's your Directus instance URL?")
|
5
|
+
auth_token = ask("What's your Directus API auth token? (Leave blank to use ENV['DIRECTUS_AUTH_TOKEN'])")
|
6
|
+
|
7
|
+
# Add the bridgetown_directus gem
|
8
|
+
add_gem "bridgetown_directus"
|
9
|
+
|
10
|
+
# Append the API URL and Auth Token to the config/initializers.rb file
|
11
|
+
append_to_file "config/initializers.rb" do
|
12
|
+
<<~RUBY
|
13
|
+
|
14
|
+
init :bridgetown_directus do
|
15
|
+
api_url "#{api_url}"
|
16
|
+
token "#{auth_token.present? ? auth_token : "<%= ENV['DIRECTUS_AUTH_TOKEN'] %>"}"
|
17
|
+
end
|
18
|
+
RUBY
|
19
|
+
end
|
20
|
+
|
21
|
+
# Finish with a success message
|
22
|
+
say_status :directus, "All set! Directus integration is complete. Review your configuration in config/initializers.rb."
|
23
|
+
say_status :directus, "You can refer to the plugin documentation for more details on how to customize your Directus integration."
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/bridgetown_directus/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "bridgetown_directus"
|
7
|
+
spec.version = BridgetownDirectus::VERSION
|
8
|
+
spec.author = "Munkun"
|
9
|
+
spec.email = "development@munkun.com"
|
10
|
+
spec.summary = "Use Directus as headless CMS for Bridgetown"
|
11
|
+
spec.homepage = "https://github.com/munkun-estudio/bridgetown_directus"
|
12
|
+
spec.license = "MIT"
|
13
|
+
|
14
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r!^(test|script|spec|features|frontend)/!) }
|
15
|
+
spec.test_files = spec.files.grep(%r!^test/!)
|
16
|
+
spec.require_paths = ["lib"]
|
17
|
+
|
18
|
+
spec.required_ruby_version = ">= 2.7.0"
|
19
|
+
|
20
|
+
spec.add_dependency "bridgetown", ">= 1.2.0", "< 2.0"
|
21
|
+
spec.add_dependency "faraday", "~> 2.12"
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
24
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
25
|
+
spec.add_development_dependency "rubocop-bridgetown", "~> 0.3"
|
26
|
+
spec.add_development_dependency "shoulda", "~> 3.0"
|
27
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
28
|
+
spec.add_development_dependency "minitest-profile", "~> 0.5"
|
29
|
+
spec.add_development_dependency "minitest-reporters", "~> 1.0"
|
30
|
+
spec.add_development_dependency "webmock", "~> 3.0"
|
31
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'faraday'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module BridgetownDirectus
|
7
|
+
class APIClient
|
8
|
+
def initialize(site)
|
9
|
+
@site = site
|
10
|
+
@api_url = site.config.bridgetown_directus.api_url
|
11
|
+
@api_token = site.config.bridgetown_directus.token
|
12
|
+
|
13
|
+
raise StandardError, "Invalid Directus configuration: missing API token or URL" if @api_token.nil? || @api_url.nil?
|
14
|
+
end
|
15
|
+
|
16
|
+
# Main method to fetch posts
|
17
|
+
def fetch_posts
|
18
|
+
Utils.log_directus "Request URL: #{@api_url}"
|
19
|
+
begin
|
20
|
+
response = connection.get("/items/posts") do |req|
|
21
|
+
req.params['filter'] = { status: { _eq: "published" } }.to_json
|
22
|
+
end
|
23
|
+
|
24
|
+
if response.success?
|
25
|
+
JSON.parse(response.body) # Return the parsed posts
|
26
|
+
elsif response.status == 401
|
27
|
+
raise RuntimeError, "Unauthorized access to Directus API"
|
28
|
+
else
|
29
|
+
raise "Error fetching posts: #{response.status} - #{response.body}"
|
30
|
+
end
|
31
|
+
rescue Faraday::TimeoutError
|
32
|
+
raise Faraday::TimeoutError, "The request to fetch posts timed out"
|
33
|
+
rescue JSON::ParserError
|
34
|
+
raise JSON::ParserError, "The response from Directus was not valid JSON"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# Setup Faraday connection with authorization headers
|
39
|
+
def connection
|
40
|
+
Faraday.new(url: @api_url) do |faraday|
|
41
|
+
faraday.options.timeout = 5 # seconds
|
42
|
+
faraday.options.open_timeout = 2 # seconds
|
43
|
+
faraday.headers['Authorization'] = "Bearer #{@api_token}"
|
44
|
+
faraday.headers['Content-Type'] = 'application/json'
|
45
|
+
faraday.adapter Faraday.default_adapter
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BridgetownDirectus
|
4
|
+
class Builder < Bridgetown::Builder
|
5
|
+
def build
|
6
|
+
return if site.ssr?
|
7
|
+
|
8
|
+
Utils.log_directus "Connecting to Directus API..."
|
9
|
+
posts_data = fetch_posts
|
10
|
+
|
11
|
+
Utils.log_directus "Fetched #{posts_data.size} posts from Directus."
|
12
|
+
|
13
|
+
create_documents(posts_data)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def fetch_posts
|
19
|
+
api_client = BridgetownDirectus::APIClient.new(site)
|
20
|
+
api_client.fetch_posts
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_documents(posts_data)
|
24
|
+
posts_array = posts_data["data"]
|
25
|
+
|
26
|
+
posts_array.each_with_index do |post, index|
|
27
|
+
next unless post["status"] == "published"
|
28
|
+
|
29
|
+
slug = Bridgetown::Utils.slugify(post["slug"] || post["title"])
|
30
|
+
date = post["date"] || Time.now.iso8601
|
31
|
+
|
32
|
+
Utils.log_directus "Generating post #{post['title']}"
|
33
|
+
|
34
|
+
add_resource :posts, "#{slug}.md" do
|
35
|
+
title post["title"]
|
36
|
+
date date
|
37
|
+
content post["body"]
|
38
|
+
layout "post"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
Utils.log_directus "Finished generating #{posts_array.size} posts."
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "bridgetown"
|
4
|
+
require_relative "bridgetown_directus/version"
|
5
|
+
require_relative "bridgetown_directus/utils"
|
6
|
+
require_relative "bridgetown_directus/api_client"
|
7
|
+
require_relative "bridgetown_directus/builder"
|
8
|
+
|
9
|
+
module BridgetownDirectus
|
10
|
+
# Bridgetown initializer for the plugin
|
11
|
+
Bridgetown.initializer :bridgetown_directus do |config, api_url:, token:|
|
12
|
+
config.bridgetown_directus ||= {}
|
13
|
+
config.bridgetown_directus.api_url ||= api_url || ENV.fetch("DIRECTUS_API_URL")
|
14
|
+
config.bridgetown_directus.token ||= token || ENV.fetch("DIRECTUS_API_TOKEN")
|
15
|
+
|
16
|
+
# Register the builder
|
17
|
+
config.builder BridgetownDirectus::Builder
|
18
|
+
|
19
|
+
# Validate Directus config before proceeding
|
20
|
+
unless config.bridgetown_directus.api_url && config.bridgetown_directus.token
|
21
|
+
Bridgetown.logger.error "Invalid Directus configuration detected. Please check your API URL and token."
|
22
|
+
raise "Directus configuration invalid"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/package.json
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"name": "bridgetown_directus",
|
3
|
+
"version": "0.1.0",
|
4
|
+
"main": "frontend/javascript/index.js",
|
5
|
+
"repository": {
|
6
|
+
"type": "git",
|
7
|
+
"url": "https://github.com/munkun-estudio/bridgetown_directus.git"
|
8
|
+
},
|
9
|
+
"author": "Munkun <development@munkun.com>",
|
10
|
+
"homepage": "https://www.munkun.com",
|
11
|
+
"license": "MIT",
|
12
|
+
"private": false,
|
13
|
+
"files": [
|
14
|
+
"frontend"
|
15
|
+
]
|
16
|
+
}
|
metadata
ADDED
@@ -0,0 +1,203 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bridgetown_directus
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Munkun
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-09-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bridgetown
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.2.0
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '2.0'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.2.0
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '2.0'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: faraday
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '2.12'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '2.12'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: bundler
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '2.0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '2.0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rake
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '13.0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '13.0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rubocop-bridgetown
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0.3'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0.3'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: shoulda
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '3.0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '3.0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: minitest
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '5.0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '5.0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: minitest-profile
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0.5'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0.5'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: minitest-reporters
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '1.0'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '1.0'
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: webmock
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - "~>"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '3.0'
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - "~>"
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '3.0'
|
159
|
+
description:
|
160
|
+
email: development@munkun.com
|
161
|
+
executables: []
|
162
|
+
extensions: []
|
163
|
+
extra_rdoc_files: []
|
164
|
+
files:
|
165
|
+
- ".gitignore"
|
166
|
+
- ".rubocop.yml"
|
167
|
+
- CHANGELOG.md
|
168
|
+
- Gemfile
|
169
|
+
- LICENSE.txt
|
170
|
+
- README.md
|
171
|
+
- Rakefile
|
172
|
+
- bridgetown.automation.rb
|
173
|
+
- bridgetown_directus.gemspec
|
174
|
+
- lib/bridgetown_directus.rb
|
175
|
+
- lib/bridgetown_directus/api_client.rb
|
176
|
+
- lib/bridgetown_directus/builder.rb
|
177
|
+
- lib/bridgetown_directus/utils.rb
|
178
|
+
- lib/bridgetown_directus/version.rb
|
179
|
+
- package.json
|
180
|
+
homepage: https://github.com/munkun-estudio/bridgetown_directus
|
181
|
+
licenses:
|
182
|
+
- MIT
|
183
|
+
metadata: {}
|
184
|
+
post_install_message:
|
185
|
+
rdoc_options: []
|
186
|
+
require_paths:
|
187
|
+
- lib
|
188
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - ">="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: 2.7.0
|
193
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
|
+
requirements:
|
195
|
+
- - ">="
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '0'
|
198
|
+
requirements: []
|
199
|
+
rubygems_version: 3.5.18
|
200
|
+
signing_key:
|
201
|
+
specification_version: 4
|
202
|
+
summary: Use Directus as headless CMS for Bridgetown
|
203
|
+
test_files: []
|