panda-core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +28 -0
- data/README.md +122 -0
- data/Rakefile +2 -0
- data/lib/generators/panda/core/install/install_generator.rb +145 -0
- data/lib/generators/panda/core/install/templates/initializer.rb +13 -0
- data/lib/generators/panda/core/templates_generator.rb +27 -0
- data/lib/panda/core/media.rb +28 -0
- data/lib/panda/core/railtie.rb +6 -0
- data/lib/panda/core/seo.rb +23 -0
- data/lib/panda/core/services/base_service.rb +21 -0
- data/lib/panda/core/sluggable.rb +18 -0
- data/lib/panda/core/version.rb +7 -0
- data/lib/panda/core.rb +20 -0
- metadata +901 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5df66d64cfcc8abacb8597eae42e3a53c4ecb74dddb809597b0c94f003dedb78
|
4
|
+
data.tar.gz: 499c541f80789df7ac35002871bbfbd9d306ed2299943d670227afab984b2ce1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3dfc2054028be1b0893b59a53dca55f41390f36c2f6b7632a59d2e7eb9310ad423ac87a00822353686cab25538d4130cc75ec7a33506048b9d5f74121ca54a5b
|
7
|
+
data.tar.gz: ff646003114bd1afdba6b98750a56d53256e3cc223ad736530949c8b70fc770bcd54738dac65b1b6972128163a9ddea965686f0a74858bfe18c064d914072934
|
data/LICENSE
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
BSD 3-Clause License
|
2
|
+
|
3
|
+
Copyright © 2024, Panda Software Limited, James Inman
|
4
|
+
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
7
|
+
|
8
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
list of conditions and the following disclaimer.
|
10
|
+
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
13
|
+
and/or other materials provided with the distribution.
|
14
|
+
|
15
|
+
3. Neither the name of the copyright holder nor the names of its
|
16
|
+
contributors may be used to endorse or promote products derived from
|
17
|
+
this software without specific prior written permission.
|
18
|
+
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
20
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
22
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
23
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
24
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
25
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
26
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
27
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
28
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.md
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
# Panda Core
|
2
|
+
|
3
|
+
Core functionality shared between Panda Software gems:
|
4
|
+
|
5
|
+
- Panda CMS (https://github.com/tastybamboo/panda_cms)
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```
|
12
|
+
gem 'panda_core'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
```
|
18
|
+
bundle install
|
19
|
+
```
|
20
|
+
|
21
|
+
## Setup
|
22
|
+
|
23
|
+
### 1. Run the Install Generator
|
24
|
+
|
25
|
+
This will:
|
26
|
+
|
27
|
+
- Add required gem dependencies
|
28
|
+
- Create an initializer
|
29
|
+
- Mount the engine in your routes
|
30
|
+
|
31
|
+
```
|
32
|
+
rails generate panda:core:install
|
33
|
+
```
|
34
|
+
|
35
|
+
### 2. Install Configuration Templates
|
36
|
+
|
37
|
+
Panda Core provides standard configuration files that can be used across all Panda gems to ensure consistency.
|
38
|
+
|
39
|
+
```
|
40
|
+
rails generate panda:core:templates
|
41
|
+
```
|
42
|
+
|
43
|
+
This will copy the following configuration files to your project:
|
44
|
+
|
45
|
+
- `.github/workflows/ci.yml` - GitHub Actions CI workflow
|
46
|
+
- `.github/dependabot.yml` - Dependabot configuration
|
47
|
+
- `.erb_lint.yml` - ERB linting rules
|
48
|
+
- `.eslintrc.js` - ESLint configuration
|
49
|
+
- `.gitattributes` - Git file handling rules
|
50
|
+
- `.gitignore` - Standard git ignore rules
|
51
|
+
- `.lefthook.yml` - Git hooks configuration
|
52
|
+
- `.rspec` - RSpec configuration
|
53
|
+
- `.standard.yml` - Ruby Standard configuration
|
54
|
+
|
55
|
+
### 3. Configure Dependencies
|
56
|
+
|
57
|
+
The following gems will be added to your Gemfile:
|
58
|
+
|
59
|
+
- `panda_core`
|
60
|
+
|
61
|
+
Make sure to follow the setup instructions for each of these gems.
|
62
|
+
|
63
|
+
## Development
|
64
|
+
|
65
|
+
After checking out the repo:
|
66
|
+
|
67
|
+
1. Run setup:
|
68
|
+
|
69
|
+
```
|
70
|
+
bin/setup
|
71
|
+
```
|
72
|
+
|
73
|
+
2. Run the test suite:
|
74
|
+
|
75
|
+
```
|
76
|
+
bundle exec rspec
|
77
|
+
```
|
78
|
+
|
79
|
+
3. Run the linter:
|
80
|
+
|
81
|
+
```
|
82
|
+
bundle exec standardrb
|
83
|
+
```
|
84
|
+
|
85
|
+
## Testing
|
86
|
+
|
87
|
+
The gem includes several types of tests:
|
88
|
+
|
89
|
+
- Generator tests for installation and template copying
|
90
|
+
- System tests using Capybara
|
91
|
+
- Unit tests for core functionality
|
92
|
+
|
93
|
+
To run specific test types:
|
94
|
+
|
95
|
+
```
|
96
|
+
# Run all tests
|
97
|
+
bundle exec rspec
|
98
|
+
```
|
99
|
+
|
100
|
+
```
|
101
|
+
# Run only generator tests
|
102
|
+
bundle exec rspec spec/generators
|
103
|
+
```
|
104
|
+
|
105
|
+
```
|
106
|
+
# Run only system tests
|
107
|
+
bundle exec rspec spec/system
|
108
|
+
```
|
109
|
+
|
110
|
+
## Contributing
|
111
|
+
|
112
|
+
1. Fork it
|
113
|
+
2. Create your feature branch (`git checkout -b feature/my-new-feature`)
|
114
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
115
|
+
4. Push to the branch (`git push origin feature/my-new-feature`)
|
116
|
+
5. Create new Pull Request
|
117
|
+
|
118
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/tastybamboo/panda_core.
|
119
|
+
|
120
|
+
## License
|
121
|
+
|
122
|
+
The gem is available as open source under the terms of the [BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause).
|
data/Rakefile
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
require "rails/generators"
|
2
|
+
|
3
|
+
module Panda
|
4
|
+
module Core
|
5
|
+
module Generators
|
6
|
+
class InstallGenerator < Rails::Generators::Base
|
7
|
+
source_root File.expand_path("templates", __dir__)
|
8
|
+
|
9
|
+
desc "Installs Panda::Core and its dependencies"
|
10
|
+
|
11
|
+
def install_dependencies
|
12
|
+
manage_gem_dependencies
|
13
|
+
end
|
14
|
+
|
15
|
+
def install_initializer
|
16
|
+
initializer_path = File.join(destination_root, "config/initializers/panda/core.rb")
|
17
|
+
|
18
|
+
if File.exist?(initializer_path)
|
19
|
+
append_missing_configurations(initializer_path)
|
20
|
+
else
|
21
|
+
begin
|
22
|
+
FileUtils.mkdir_p(File.dirname(initializer_path))
|
23
|
+
rescue Errno::EEXIST
|
24
|
+
# Directory already exists, that's fine
|
25
|
+
end
|
26
|
+
template "initializer.rb", initializer_path
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# def mount_engine
|
31
|
+
# inject_into_file File.join(destination_root, "config/routes.rb"),
|
32
|
+
# " mount Panda::Core::Engine => '/'\n",
|
33
|
+
# before: /^end/
|
34
|
+
# end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def gems_to_add
|
39
|
+
{
|
40
|
+
"panda_core" => {}
|
41
|
+
# "gem_name" => {version: "1.0.0"},
|
42
|
+
# "another_gem" => {git: "https://github.com/example/another_gem"}
|
43
|
+
# Add other gems as needed
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
def manage_gem_dependencies
|
48
|
+
if File.exist?(File.join(destination_root, "Gemfile"))
|
49
|
+
manage_gemfile_dependencies
|
50
|
+
elsif Dir.glob(File.join(destination_root, "*.gemspec")).any?
|
51
|
+
manage_gemspec_dependencies
|
52
|
+
else
|
53
|
+
create_file File.join(destination_root, "Gemfile") do
|
54
|
+
content = "source 'https://rubygems.org'\n\n"
|
55
|
+
gems_to_add.each do |gem_name, options|
|
56
|
+
content << if options[:git]
|
57
|
+
"gem '#{gem_name}', git: '#{options[:git]}'\n"
|
58
|
+
elsif options[:version]
|
59
|
+
"gem '#{gem_name}', '#{options[:version]}'\n"
|
60
|
+
else
|
61
|
+
"gem '#{gem_name}'\n"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
content
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def manage_gemfile_dependencies
|
70
|
+
gemfile_content = File.read(File.join(destination_root, "Gemfile"))
|
71
|
+
|
72
|
+
gems_to_add.each do |gem_name, options|
|
73
|
+
next if should_skip_gem?(gemfile_content, gem_name, options)
|
74
|
+
|
75
|
+
if options[:git]
|
76
|
+
append_to_file File.join(destination_root, "Gemfile"), "\ngem '#{gem_name}', git: '#{options[:git]}'"
|
77
|
+
elsif options[:version]
|
78
|
+
append_to_file File.join(destination_root, "Gemfile"), "\ngem '#{gem_name}', '#{options[:version]}'"
|
79
|
+
else
|
80
|
+
append_to_file File.join(destination_root, "Gemfile"), "\ngem '#{gem_name}'"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def manage_gemspec_dependencies
|
86
|
+
gemspec_file = Dir.glob(File.join(destination_root, "*.gemspec")).first
|
87
|
+
|
88
|
+
if File.exist?(gemspec_file)
|
89
|
+
content = File.read(gemspec_file)
|
90
|
+
|
91
|
+
gems_to_add.each do |gem_name, options|
|
92
|
+
next if content.include?("spec.add_dependency \"#{gem_name}\"")
|
93
|
+
|
94
|
+
dependency_line = if options[:version]
|
95
|
+
" spec.add_dependency \"#{gem_name}\", \"#{options[:version]}\"\n"
|
96
|
+
else
|
97
|
+
" spec.add_dependency \"#{gem_name}\"\n"
|
98
|
+
end
|
99
|
+
|
100
|
+
# Insert before the last 'end'
|
101
|
+
gsub_file gemspec_file, /end\s*\z/ do |match|
|
102
|
+
"#{dependency_line}#{match}"
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def should_skip_gem?(gemfile_content, gem_name, new_options)
|
109
|
+
gemfile_content.match?(/gem ['"]#{gem_name}['"]/)
|
110
|
+
end
|
111
|
+
|
112
|
+
def append_missing_configurations(path)
|
113
|
+
content = File.read(path)
|
114
|
+
missing_configs = []
|
115
|
+
|
116
|
+
unless content.include?("config.user_class")
|
117
|
+
missing_configs << " # Set the user class for authentication (e.g., 'User')"
|
118
|
+
missing_configs << " # config.user_class = nil"
|
119
|
+
end
|
120
|
+
|
121
|
+
unless content.include?("config.authentication_providers")
|
122
|
+
missing_configs << " # Configure authentication providers (e.g., [:devise, :jwt])"
|
123
|
+
missing_configs << " # config.authentication_providers = []"
|
124
|
+
end
|
125
|
+
|
126
|
+
unless content.include?("config.storage_provider")
|
127
|
+
missing_configs << " # Set the storage provider (:active_storage or :aws)"
|
128
|
+
missing_configs << " # config.storage_provider = :active_storage"
|
129
|
+
end
|
130
|
+
|
131
|
+
unless content.include?("config.cache_store")
|
132
|
+
missing_configs << " # Set the cache store (:memory_store, :redis_cache_store, etc.)"
|
133
|
+
missing_configs << " # config.cache_store = :memory_store"
|
134
|
+
end
|
135
|
+
|
136
|
+
if missing_configs.any?
|
137
|
+
inject_into_file path, before: /^end/ do
|
138
|
+
"\n#{missing_configs.join("\n")}\n"
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Panda::Core.configure do |config|
|
2
|
+
# Set the user class for authentication (e.g., 'User')
|
3
|
+
# config.user_class = nil
|
4
|
+
|
5
|
+
# Configure authentication providers (e.g., [:devise, :jwt])
|
6
|
+
# config.authentication_providers = []
|
7
|
+
|
8
|
+
# Set the storage provider (:active_storage or :aws)
|
9
|
+
# config.storage_provider = :active_storage
|
10
|
+
|
11
|
+
# Set the cache store (:memory_store, :redis_cache_store, etc.)
|
12
|
+
# config.cache_store = :memory_store
|
13
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require "rails/generators"
|
2
|
+
require "fileutils"
|
3
|
+
require "pathname"
|
4
|
+
|
5
|
+
module Panda
|
6
|
+
module Core
|
7
|
+
module Generators
|
8
|
+
class TemplatesGenerator < Rails::Generators::Base
|
9
|
+
include Thor::Actions
|
10
|
+
|
11
|
+
desc "Copies shared configuration templates from panda_core"
|
12
|
+
|
13
|
+
source_root File.expand_path("templates", __dir__)
|
14
|
+
|
15
|
+
def copy_templates
|
16
|
+
Dir.glob(File.join(self.class.source_root, "**/{.*,*}"), File::FNM_DOTMATCH).each do |file|
|
17
|
+
next if File.directory?(file)
|
18
|
+
next if File.basename(file) == "." || File.basename(file) == ".."
|
19
|
+
|
20
|
+
relative_path = Pathname.new(file).relative_path_from(Pathname.new(self.class.source_root)).to_s
|
21
|
+
copy_file relative_path
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Panda
|
2
|
+
module Core
|
3
|
+
module Media
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
has_one_attached :featured_image
|
8
|
+
has_many_attached :attachments
|
9
|
+
|
10
|
+
validates :featured_image, content_type: [:png, :jpg, :jpeg],
|
11
|
+
size: {less_than: 5.megabytes}
|
12
|
+
end
|
13
|
+
|
14
|
+
def image_url(variant: nil)
|
15
|
+
return nil unless featured_image.attached?
|
16
|
+
|
17
|
+
case variant
|
18
|
+
when :thumbnail
|
19
|
+
featured_image.variant(resize_to_fill: [200, 200]).processed
|
20
|
+
when :medium
|
21
|
+
featured_image.variant(resize_to_fill: [400, 400]).processed
|
22
|
+
else
|
23
|
+
featured_image
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Panda
|
2
|
+
module Core
|
3
|
+
module SEO
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
validates :meta_title, length: {maximum: 60}
|
8
|
+
validates :meta_description, length: {maximum: 160}
|
9
|
+
end
|
10
|
+
|
11
|
+
def structured_data
|
12
|
+
{
|
13
|
+
"@context": "https://schema.org",
|
14
|
+
"@type": self.class.name,
|
15
|
+
name: title,
|
16
|
+
description: meta_description,
|
17
|
+
datePublished: created_at,
|
18
|
+
dateModified: updated_at
|
19
|
+
}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Panda
|
2
|
+
module Core
|
3
|
+
module Services
|
4
|
+
class BaseService
|
5
|
+
def self.call(*args)
|
6
|
+
new(*args).call
|
7
|
+
end
|
8
|
+
|
9
|
+
private
|
10
|
+
|
11
|
+
def success(payload = {})
|
12
|
+
OpenStruct.new(success?: true, payload: payload)
|
13
|
+
end
|
14
|
+
|
15
|
+
def failure(errors)
|
16
|
+
OpenStruct.new(success?: false, errors: errors)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Panda
|
2
|
+
module Core
|
3
|
+
module Sluggable
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
before_validation :generate_slug
|
8
|
+
validates :slug, presence: true, uniqueness: true
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def generate_slug
|
14
|
+
self.slug ||= title.to_s.parameterize
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/panda/core.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "dry-configurable"
|
4
|
+
require_relative "core/version"
|
5
|
+
require "panda/core/railtie"
|
6
|
+
|
7
|
+
module Panda
|
8
|
+
module Core
|
9
|
+
extend Dry::Configurable
|
10
|
+
|
11
|
+
setting :user_class
|
12
|
+
setting :authentication_providers, default: []
|
13
|
+
setting :storage_provider, default: :active_storage
|
14
|
+
setting :cache_store, default: :memory_store
|
15
|
+
|
16
|
+
def self.root
|
17
|
+
File.expand_path("..", __dir__)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
metadata
ADDED
@@ -0,0 +1,901 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: panda-core
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Panda Software Limited
|
8
|
+
- James Inman
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2024-11-27 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activestorage-office-previewer
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: annotaterb
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: awesome_nested_set
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '3.7'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '3.7'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: aws-sdk-s3
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '1'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '1'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: better_errors
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: binding_of_caller
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: brakeman
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :runtime
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: bullet
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :runtime
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: bundler-audit
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
type: :runtime
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: capybara
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
type: :runtime
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: cuprite
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :runtime
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: danger-reek
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
type: :runtime
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - ">="
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: danger-rubocop
|
184
|
+
requirement: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '0'
|
189
|
+
type: :runtime
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - ">="
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: '0'
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: danger-simplecov_json
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - ">="
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '0'
|
203
|
+
type: :runtime
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - ">="
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '0'
|
210
|
+
- !ruby/object:Gem::Dependency
|
211
|
+
name: danger-todoist
|
212
|
+
requirement: !ruby/object:Gem::Requirement
|
213
|
+
requirements:
|
214
|
+
- - ">="
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: '0'
|
217
|
+
type: :runtime
|
218
|
+
prerelease: false
|
219
|
+
version_requirements: !ruby/object:Gem::Requirement
|
220
|
+
requirements:
|
221
|
+
- - ">="
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
version: '0'
|
224
|
+
- !ruby/object:Gem::Dependency
|
225
|
+
name: danger
|
226
|
+
requirement: !ruby/object:Gem::Requirement
|
227
|
+
requirements:
|
228
|
+
- - ">="
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: '0'
|
231
|
+
type: :runtime
|
232
|
+
prerelease: false
|
233
|
+
version_requirements: !ruby/object:Gem::Requirement
|
234
|
+
requirements:
|
235
|
+
- - ">="
|
236
|
+
- !ruby/object:Gem::Version
|
237
|
+
version: '0'
|
238
|
+
- !ruby/object:Gem::Dependency
|
239
|
+
name: dry-configurable
|
240
|
+
requirement: !ruby/object:Gem::Requirement
|
241
|
+
requirements:
|
242
|
+
- - "~>"
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: '1'
|
245
|
+
type: :runtime
|
246
|
+
prerelease: false
|
247
|
+
version_requirements: !ruby/object:Gem::Requirement
|
248
|
+
requirements:
|
249
|
+
- - "~>"
|
250
|
+
- !ruby/object:Gem::Version
|
251
|
+
version: '1'
|
252
|
+
- !ruby/object:Gem::Dependency
|
253
|
+
name: erb_lint
|
254
|
+
requirement: !ruby/object:Gem::Requirement
|
255
|
+
requirements:
|
256
|
+
- - ">="
|
257
|
+
- !ruby/object:Gem::Version
|
258
|
+
version: '0'
|
259
|
+
type: :runtime
|
260
|
+
prerelease: false
|
261
|
+
version_requirements: !ruby/object:Gem::Requirement
|
262
|
+
requirements:
|
263
|
+
- - ">="
|
264
|
+
- !ruby/object:Gem::Version
|
265
|
+
version: '0'
|
266
|
+
- !ruby/object:Gem::Dependency
|
267
|
+
name: factory_bot_rails
|
268
|
+
requirement: !ruby/object:Gem::Requirement
|
269
|
+
requirements:
|
270
|
+
- - ">="
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
version: '0'
|
273
|
+
type: :runtime
|
274
|
+
prerelease: false
|
275
|
+
version_requirements: !ruby/object:Gem::Requirement
|
276
|
+
requirements:
|
277
|
+
- - ">="
|
278
|
+
- !ruby/object:Gem::Version
|
279
|
+
version: '0'
|
280
|
+
- !ruby/object:Gem::Dependency
|
281
|
+
name: faker
|
282
|
+
requirement: !ruby/object:Gem::Requirement
|
283
|
+
requirements:
|
284
|
+
- - ">="
|
285
|
+
- !ruby/object:Gem::Version
|
286
|
+
version: '0'
|
287
|
+
type: :runtime
|
288
|
+
prerelease: false
|
289
|
+
version_requirements: !ruby/object:Gem::Requirement
|
290
|
+
requirements:
|
291
|
+
- - ">="
|
292
|
+
- !ruby/object:Gem::Version
|
293
|
+
version: '0'
|
294
|
+
- !ruby/object:Gem::Dependency
|
295
|
+
name: faraday-multipart
|
296
|
+
requirement: !ruby/object:Gem::Requirement
|
297
|
+
requirements:
|
298
|
+
- - "~>"
|
299
|
+
- !ruby/object:Gem::Version
|
300
|
+
version: '1'
|
301
|
+
type: :runtime
|
302
|
+
prerelease: false
|
303
|
+
version_requirements: !ruby/object:Gem::Requirement
|
304
|
+
requirements:
|
305
|
+
- - "~>"
|
306
|
+
- !ruby/object:Gem::Version
|
307
|
+
version: '1'
|
308
|
+
- !ruby/object:Gem::Dependency
|
309
|
+
name: faraday-retry
|
310
|
+
requirement: !ruby/object:Gem::Requirement
|
311
|
+
requirements:
|
312
|
+
- - "~>"
|
313
|
+
- !ruby/object:Gem::Version
|
314
|
+
version: '2'
|
315
|
+
type: :runtime
|
316
|
+
prerelease: false
|
317
|
+
version_requirements: !ruby/object:Gem::Requirement
|
318
|
+
requirements:
|
319
|
+
- - "~>"
|
320
|
+
- !ruby/object:Gem::Version
|
321
|
+
version: '2'
|
322
|
+
- !ruby/object:Gem::Dependency
|
323
|
+
name: faraday
|
324
|
+
requirement: !ruby/object:Gem::Requirement
|
325
|
+
requirements:
|
326
|
+
- - "~>"
|
327
|
+
- !ruby/object:Gem::Version
|
328
|
+
version: '2'
|
329
|
+
type: :runtime
|
330
|
+
prerelease: false
|
331
|
+
version_requirements: !ruby/object:Gem::Requirement
|
332
|
+
requirements:
|
333
|
+
- - "~>"
|
334
|
+
- !ruby/object:Gem::Version
|
335
|
+
version: '2'
|
336
|
+
- !ruby/object:Gem::Dependency
|
337
|
+
name: fasterer
|
338
|
+
requirement: !ruby/object:Gem::Requirement
|
339
|
+
requirements:
|
340
|
+
- - ">="
|
341
|
+
- !ruby/object:Gem::Version
|
342
|
+
version: '0'
|
343
|
+
type: :runtime
|
344
|
+
prerelease: false
|
345
|
+
version_requirements: !ruby/object:Gem::Requirement
|
346
|
+
requirements:
|
347
|
+
- - ">="
|
348
|
+
- !ruby/object:Gem::Version
|
349
|
+
version: '0'
|
350
|
+
- !ruby/object:Gem::Dependency
|
351
|
+
name: generator_spec
|
352
|
+
requirement: !ruby/object:Gem::Requirement
|
353
|
+
requirements:
|
354
|
+
- - ">="
|
355
|
+
- !ruby/object:Gem::Version
|
356
|
+
version: '0'
|
357
|
+
type: :runtime
|
358
|
+
prerelease: false
|
359
|
+
version_requirements: !ruby/object:Gem::Requirement
|
360
|
+
requirements:
|
361
|
+
- - ">="
|
362
|
+
- !ruby/object:Gem::Version
|
363
|
+
version: '0'
|
364
|
+
- !ruby/object:Gem::Dependency
|
365
|
+
name: image_processing
|
366
|
+
requirement: !ruby/object:Gem::Requirement
|
367
|
+
requirements:
|
368
|
+
- - "~>"
|
369
|
+
- !ruby/object:Gem::Version
|
370
|
+
version: '1.2'
|
371
|
+
type: :runtime
|
372
|
+
prerelease: false
|
373
|
+
version_requirements: !ruby/object:Gem::Requirement
|
374
|
+
requirements:
|
375
|
+
- - "~>"
|
376
|
+
- !ruby/object:Gem::Version
|
377
|
+
version: '1.2'
|
378
|
+
- !ruby/object:Gem::Dependency
|
379
|
+
name: importmap-rails
|
380
|
+
requirement: !ruby/object:Gem::Requirement
|
381
|
+
requirements:
|
382
|
+
- - "~>"
|
383
|
+
- !ruby/object:Gem::Version
|
384
|
+
version: '2'
|
385
|
+
type: :runtime
|
386
|
+
prerelease: false
|
387
|
+
version_requirements: !ruby/object:Gem::Requirement
|
388
|
+
requirements:
|
389
|
+
- - "~>"
|
390
|
+
- !ruby/object:Gem::Version
|
391
|
+
version: '2'
|
392
|
+
- !ruby/object:Gem::Dependency
|
393
|
+
name: listen
|
394
|
+
requirement: !ruby/object:Gem::Requirement
|
395
|
+
requirements:
|
396
|
+
- - ">="
|
397
|
+
- !ruby/object:Gem::Version
|
398
|
+
version: '0'
|
399
|
+
type: :runtime
|
400
|
+
prerelease: false
|
401
|
+
version_requirements: !ruby/object:Gem::Requirement
|
402
|
+
requirements:
|
403
|
+
- - ">="
|
404
|
+
- !ruby/object:Gem::Version
|
405
|
+
version: '0'
|
406
|
+
- !ruby/object:Gem::Dependency
|
407
|
+
name: lookbook
|
408
|
+
requirement: !ruby/object:Gem::Requirement
|
409
|
+
requirements:
|
410
|
+
- - "~>"
|
411
|
+
- !ruby/object:Gem::Version
|
412
|
+
version: '2'
|
413
|
+
type: :runtime
|
414
|
+
prerelease: false
|
415
|
+
version_requirements: !ruby/object:Gem::Requirement
|
416
|
+
requirements:
|
417
|
+
- - "~>"
|
418
|
+
- !ruby/object:Gem::Version
|
419
|
+
version: '2'
|
420
|
+
- !ruby/object:Gem::Dependency
|
421
|
+
name: omniauth-github
|
422
|
+
requirement: !ruby/object:Gem::Requirement
|
423
|
+
requirements:
|
424
|
+
- - "~>"
|
425
|
+
- !ruby/object:Gem::Version
|
426
|
+
version: '2.0'
|
427
|
+
type: :runtime
|
428
|
+
prerelease: false
|
429
|
+
version_requirements: !ruby/object:Gem::Requirement
|
430
|
+
requirements:
|
431
|
+
- - "~>"
|
432
|
+
- !ruby/object:Gem::Version
|
433
|
+
version: '2.0'
|
434
|
+
- !ruby/object:Gem::Dependency
|
435
|
+
name: omniauth-google-oauth2
|
436
|
+
requirement: !ruby/object:Gem::Requirement
|
437
|
+
requirements:
|
438
|
+
- - "~>"
|
439
|
+
- !ruby/object:Gem::Version
|
440
|
+
version: '1.1'
|
441
|
+
type: :runtime
|
442
|
+
prerelease: false
|
443
|
+
version_requirements: !ruby/object:Gem::Requirement
|
444
|
+
requirements:
|
445
|
+
- - "~>"
|
446
|
+
- !ruby/object:Gem::Version
|
447
|
+
version: '1.1'
|
448
|
+
- !ruby/object:Gem::Dependency
|
449
|
+
name: omniauth-microsoft_graph
|
450
|
+
requirement: !ruby/object:Gem::Requirement
|
451
|
+
requirements:
|
452
|
+
- - "~>"
|
453
|
+
- !ruby/object:Gem::Version
|
454
|
+
version: '2.0'
|
455
|
+
type: :runtime
|
456
|
+
prerelease: false
|
457
|
+
version_requirements: !ruby/object:Gem::Requirement
|
458
|
+
requirements:
|
459
|
+
- - "~>"
|
460
|
+
- !ruby/object:Gem::Version
|
461
|
+
version: '2.0'
|
462
|
+
- !ruby/object:Gem::Dependency
|
463
|
+
name: omniauth-rails_csrf_protection
|
464
|
+
requirement: !ruby/object:Gem::Requirement
|
465
|
+
requirements:
|
466
|
+
- - "~>"
|
467
|
+
- !ruby/object:Gem::Version
|
468
|
+
version: '1.0'
|
469
|
+
type: :runtime
|
470
|
+
prerelease: false
|
471
|
+
version_requirements: !ruby/object:Gem::Requirement
|
472
|
+
requirements:
|
473
|
+
- - "~>"
|
474
|
+
- !ruby/object:Gem::Version
|
475
|
+
version: '1.0'
|
476
|
+
- !ruby/object:Gem::Dependency
|
477
|
+
name: omniauth
|
478
|
+
requirement: !ruby/object:Gem::Requirement
|
479
|
+
requirements:
|
480
|
+
- - "~>"
|
481
|
+
- !ruby/object:Gem::Version
|
482
|
+
version: '2.1'
|
483
|
+
type: :runtime
|
484
|
+
prerelease: false
|
485
|
+
version_requirements: !ruby/object:Gem::Requirement
|
486
|
+
requirements:
|
487
|
+
- - "~>"
|
488
|
+
- !ruby/object:Gem::Version
|
489
|
+
version: '2.1'
|
490
|
+
- !ruby/object:Gem::Dependency
|
491
|
+
name: paper_trail
|
492
|
+
requirement: !ruby/object:Gem::Requirement
|
493
|
+
requirements:
|
494
|
+
- - "~>"
|
495
|
+
- !ruby/object:Gem::Version
|
496
|
+
version: '15'
|
497
|
+
type: :runtime
|
498
|
+
prerelease: false
|
499
|
+
version_requirements: !ruby/object:Gem::Requirement
|
500
|
+
requirements:
|
501
|
+
- - "~>"
|
502
|
+
- !ruby/object:Gem::Version
|
503
|
+
version: '15'
|
504
|
+
- !ruby/object:Gem::Dependency
|
505
|
+
name: pg
|
506
|
+
requirement: !ruby/object:Gem::Requirement
|
507
|
+
requirements:
|
508
|
+
- - "~>"
|
509
|
+
- !ruby/object:Gem::Version
|
510
|
+
version: '1.5'
|
511
|
+
type: :runtime
|
512
|
+
prerelease: false
|
513
|
+
version_requirements: !ruby/object:Gem::Requirement
|
514
|
+
requirements:
|
515
|
+
- - "~>"
|
516
|
+
- !ruby/object:Gem::Version
|
517
|
+
version: '1.5'
|
518
|
+
- !ruby/object:Gem::Dependency
|
519
|
+
name: propshaft
|
520
|
+
requirement: !ruby/object:Gem::Requirement
|
521
|
+
requirements:
|
522
|
+
- - "~>"
|
523
|
+
- !ruby/object:Gem::Version
|
524
|
+
version: '1.1'
|
525
|
+
type: :runtime
|
526
|
+
prerelease: false
|
527
|
+
version_requirements: !ruby/object:Gem::Requirement
|
528
|
+
requirements:
|
529
|
+
- - "~>"
|
530
|
+
- !ruby/object:Gem::Version
|
531
|
+
version: '1.1'
|
532
|
+
- !ruby/object:Gem::Dependency
|
533
|
+
name: puma
|
534
|
+
requirement: !ruby/object:Gem::Requirement
|
535
|
+
requirements:
|
536
|
+
- - ">="
|
537
|
+
- !ruby/object:Gem::Version
|
538
|
+
version: '0'
|
539
|
+
type: :runtime
|
540
|
+
prerelease: false
|
541
|
+
version_requirements: !ruby/object:Gem::Requirement
|
542
|
+
requirements:
|
543
|
+
- - ">="
|
544
|
+
- !ruby/object:Gem::Version
|
545
|
+
version: '0'
|
546
|
+
- !ruby/object:Gem::Dependency
|
547
|
+
name: rails
|
548
|
+
requirement: !ruby/object:Gem::Requirement
|
549
|
+
requirements:
|
550
|
+
- - ">="
|
551
|
+
- !ruby/object:Gem::Version
|
552
|
+
version: '7.1'
|
553
|
+
type: :runtime
|
554
|
+
prerelease: false
|
555
|
+
version_requirements: !ruby/object:Gem::Requirement
|
556
|
+
requirements:
|
557
|
+
- - ">="
|
558
|
+
- !ruby/object:Gem::Version
|
559
|
+
version: '7.1'
|
560
|
+
- !ruby/object:Gem::Dependency
|
561
|
+
name: rake
|
562
|
+
requirement: !ruby/object:Gem::Requirement
|
563
|
+
requirements:
|
564
|
+
- - ">="
|
565
|
+
- !ruby/object:Gem::Version
|
566
|
+
version: '0'
|
567
|
+
type: :runtime
|
568
|
+
prerelease: false
|
569
|
+
version_requirements: !ruby/object:Gem::Requirement
|
570
|
+
requirements:
|
571
|
+
- - ">="
|
572
|
+
- !ruby/object:Gem::Version
|
573
|
+
version: '0'
|
574
|
+
- !ruby/object:Gem::Dependency
|
575
|
+
name: redis
|
576
|
+
requirement: !ruby/object:Gem::Requirement
|
577
|
+
requirements:
|
578
|
+
- - ">="
|
579
|
+
- !ruby/object:Gem::Version
|
580
|
+
version: '0'
|
581
|
+
type: :runtime
|
582
|
+
prerelease: false
|
583
|
+
version_requirements: !ruby/object:Gem::Requirement
|
584
|
+
requirements:
|
585
|
+
- - ">="
|
586
|
+
- !ruby/object:Gem::Version
|
587
|
+
version: '0'
|
588
|
+
- !ruby/object:Gem::Dependency
|
589
|
+
name: rspec-core
|
590
|
+
requirement: !ruby/object:Gem::Requirement
|
591
|
+
requirements:
|
592
|
+
- - "~>"
|
593
|
+
- !ruby/object:Gem::Version
|
594
|
+
version: '3.13'
|
595
|
+
type: :runtime
|
596
|
+
prerelease: false
|
597
|
+
version_requirements: !ruby/object:Gem::Requirement
|
598
|
+
requirements:
|
599
|
+
- - "~>"
|
600
|
+
- !ruby/object:Gem::Version
|
601
|
+
version: '3.13'
|
602
|
+
- !ruby/object:Gem::Dependency
|
603
|
+
name: rspec-github
|
604
|
+
requirement: !ruby/object:Gem::Requirement
|
605
|
+
requirements:
|
606
|
+
- - ">="
|
607
|
+
- !ruby/object:Gem::Version
|
608
|
+
version: '0'
|
609
|
+
type: :runtime
|
610
|
+
prerelease: false
|
611
|
+
version_requirements: !ruby/object:Gem::Requirement
|
612
|
+
requirements:
|
613
|
+
- - ">="
|
614
|
+
- !ruby/object:Gem::Version
|
615
|
+
version: '0'
|
616
|
+
- !ruby/object:Gem::Dependency
|
617
|
+
name: rspec-rails
|
618
|
+
requirement: !ruby/object:Gem::Requirement
|
619
|
+
requirements:
|
620
|
+
- - "~>"
|
621
|
+
- !ruby/object:Gem::Version
|
622
|
+
version: '7.1'
|
623
|
+
type: :runtime
|
624
|
+
prerelease: false
|
625
|
+
version_requirements: !ruby/object:Gem::Requirement
|
626
|
+
requirements:
|
627
|
+
- - "~>"
|
628
|
+
- !ruby/object:Gem::Version
|
629
|
+
version: '7.1'
|
630
|
+
- !ruby/object:Gem::Dependency
|
631
|
+
name: ruby-lsp
|
632
|
+
requirement: !ruby/object:Gem::Requirement
|
633
|
+
requirements:
|
634
|
+
- - ">="
|
635
|
+
- !ruby/object:Gem::Version
|
636
|
+
version: '0'
|
637
|
+
type: :runtime
|
638
|
+
prerelease: false
|
639
|
+
version_requirements: !ruby/object:Gem::Requirement
|
640
|
+
requirements:
|
641
|
+
- - ">="
|
642
|
+
- !ruby/object:Gem::Version
|
643
|
+
version: '0'
|
644
|
+
- !ruby/object:Gem::Dependency
|
645
|
+
name: shoulda-matchers
|
646
|
+
requirement: !ruby/object:Gem::Requirement
|
647
|
+
requirements:
|
648
|
+
- - ">="
|
649
|
+
- !ruby/object:Gem::Version
|
650
|
+
version: '0'
|
651
|
+
type: :runtime
|
652
|
+
prerelease: false
|
653
|
+
version_requirements: !ruby/object:Gem::Requirement
|
654
|
+
requirements:
|
655
|
+
- - ">="
|
656
|
+
- !ruby/object:Gem::Version
|
657
|
+
version: '0'
|
658
|
+
- !ruby/object:Gem::Dependency
|
659
|
+
name: silencer
|
660
|
+
requirement: !ruby/object:Gem::Requirement
|
661
|
+
requirements:
|
662
|
+
- - "~>"
|
663
|
+
- !ruby/object:Gem::Version
|
664
|
+
version: '2.0'
|
665
|
+
type: :runtime
|
666
|
+
prerelease: false
|
667
|
+
version_requirements: !ruby/object:Gem::Requirement
|
668
|
+
requirements:
|
669
|
+
- - "~>"
|
670
|
+
- !ruby/object:Gem::Version
|
671
|
+
version: '2.0'
|
672
|
+
- !ruby/object:Gem::Dependency
|
673
|
+
name: simplecov_json_formatter
|
674
|
+
requirement: !ruby/object:Gem::Requirement
|
675
|
+
requirements:
|
676
|
+
- - ">="
|
677
|
+
- !ruby/object:Gem::Version
|
678
|
+
version: '0'
|
679
|
+
type: :runtime
|
680
|
+
prerelease: false
|
681
|
+
version_requirements: !ruby/object:Gem::Requirement
|
682
|
+
requirements:
|
683
|
+
- - ">="
|
684
|
+
- !ruby/object:Gem::Version
|
685
|
+
version: '0'
|
686
|
+
- !ruby/object:Gem::Dependency
|
687
|
+
name: simplecov_lcov_formatter
|
688
|
+
requirement: !ruby/object:Gem::Requirement
|
689
|
+
requirements:
|
690
|
+
- - ">="
|
691
|
+
- !ruby/object:Gem::Version
|
692
|
+
version: '0'
|
693
|
+
type: :runtime
|
694
|
+
prerelease: false
|
695
|
+
version_requirements: !ruby/object:Gem::Requirement
|
696
|
+
requirements:
|
697
|
+
- - ">="
|
698
|
+
- !ruby/object:Gem::Version
|
699
|
+
version: '0'
|
700
|
+
- !ruby/object:Gem::Dependency
|
701
|
+
name: simplecov-json
|
702
|
+
requirement: !ruby/object:Gem::Requirement
|
703
|
+
requirements:
|
704
|
+
- - ">="
|
705
|
+
- !ruby/object:Gem::Version
|
706
|
+
version: '0'
|
707
|
+
type: :runtime
|
708
|
+
prerelease: false
|
709
|
+
version_requirements: !ruby/object:Gem::Requirement
|
710
|
+
requirements:
|
711
|
+
- - ">="
|
712
|
+
- !ruby/object:Gem::Version
|
713
|
+
version: '0'
|
714
|
+
- !ruby/object:Gem::Dependency
|
715
|
+
name: simplecov-lcov
|
716
|
+
requirement: !ruby/object:Gem::Requirement
|
717
|
+
requirements:
|
718
|
+
- - ">="
|
719
|
+
- !ruby/object:Gem::Version
|
720
|
+
version: '0'
|
721
|
+
type: :runtime
|
722
|
+
prerelease: false
|
723
|
+
version_requirements: !ruby/object:Gem::Requirement
|
724
|
+
requirements:
|
725
|
+
- - ">="
|
726
|
+
- !ruby/object:Gem::Version
|
727
|
+
version: '0'
|
728
|
+
- !ruby/object:Gem::Dependency
|
729
|
+
name: simplecov
|
730
|
+
requirement: !ruby/object:Gem::Requirement
|
731
|
+
requirements:
|
732
|
+
- - "~>"
|
733
|
+
- !ruby/object:Gem::Version
|
734
|
+
version: '0.22'
|
735
|
+
type: :runtime
|
736
|
+
prerelease: false
|
737
|
+
version_requirements: !ruby/object:Gem::Requirement
|
738
|
+
requirements:
|
739
|
+
- - "~>"
|
740
|
+
- !ruby/object:Gem::Version
|
741
|
+
version: '0.22'
|
742
|
+
- !ruby/object:Gem::Dependency
|
743
|
+
name: standard-rails
|
744
|
+
requirement: !ruby/object:Gem::Requirement
|
745
|
+
requirements:
|
746
|
+
- - ">="
|
747
|
+
- !ruby/object:Gem::Version
|
748
|
+
version: '0'
|
749
|
+
type: :runtime
|
750
|
+
prerelease: false
|
751
|
+
version_requirements: !ruby/object:Gem::Requirement
|
752
|
+
requirements:
|
753
|
+
- - ">="
|
754
|
+
- !ruby/object:Gem::Version
|
755
|
+
version: '0'
|
756
|
+
- !ruby/object:Gem::Dependency
|
757
|
+
name: standard
|
758
|
+
requirement: !ruby/object:Gem::Requirement
|
759
|
+
requirements:
|
760
|
+
- - ">="
|
761
|
+
- !ruby/object:Gem::Version
|
762
|
+
version: '0'
|
763
|
+
type: :runtime
|
764
|
+
prerelease: false
|
765
|
+
version_requirements: !ruby/object:Gem::Requirement
|
766
|
+
requirements:
|
767
|
+
- - ">="
|
768
|
+
- !ruby/object:Gem::Version
|
769
|
+
version: '0'
|
770
|
+
- !ruby/object:Gem::Dependency
|
771
|
+
name: stimulus-rails
|
772
|
+
requirement: !ruby/object:Gem::Requirement
|
773
|
+
requirements:
|
774
|
+
- - "~>"
|
775
|
+
- !ruby/object:Gem::Version
|
776
|
+
version: '1.3'
|
777
|
+
type: :runtime
|
778
|
+
prerelease: false
|
779
|
+
version_requirements: !ruby/object:Gem::Requirement
|
780
|
+
requirements:
|
781
|
+
- - "~>"
|
782
|
+
- !ruby/object:Gem::Version
|
783
|
+
version: '1.3'
|
784
|
+
- !ruby/object:Gem::Dependency
|
785
|
+
name: tailwindcss-rails
|
786
|
+
requirement: !ruby/object:Gem::Requirement
|
787
|
+
requirements:
|
788
|
+
- - "~>"
|
789
|
+
- !ruby/object:Gem::Version
|
790
|
+
version: '3'
|
791
|
+
type: :runtime
|
792
|
+
prerelease: false
|
793
|
+
version_requirements: !ruby/object:Gem::Requirement
|
794
|
+
requirements:
|
795
|
+
- - "~>"
|
796
|
+
- !ruby/object:Gem::Version
|
797
|
+
version: '3'
|
798
|
+
- !ruby/object:Gem::Dependency
|
799
|
+
name: turbo-rails
|
800
|
+
requirement: !ruby/object:Gem::Requirement
|
801
|
+
requirements:
|
802
|
+
- - "~>"
|
803
|
+
- !ruby/object:Gem::Version
|
804
|
+
version: '2.0'
|
805
|
+
type: :runtime
|
806
|
+
prerelease: false
|
807
|
+
version_requirements: !ruby/object:Gem::Requirement
|
808
|
+
requirements:
|
809
|
+
- - "~>"
|
810
|
+
- !ruby/object:Gem::Version
|
811
|
+
version: '2.0'
|
812
|
+
- !ruby/object:Gem::Dependency
|
813
|
+
name: view_component
|
814
|
+
requirement: !ruby/object:Gem::Requirement
|
815
|
+
requirements:
|
816
|
+
- - "~>"
|
817
|
+
- !ruby/object:Gem::Version
|
818
|
+
version: '3'
|
819
|
+
type: :runtime
|
820
|
+
prerelease: false
|
821
|
+
version_requirements: !ruby/object:Gem::Requirement
|
822
|
+
requirements:
|
823
|
+
- - "~>"
|
824
|
+
- !ruby/object:Gem::Version
|
825
|
+
version: '3'
|
826
|
+
- !ruby/object:Gem::Dependency
|
827
|
+
name: yamllint
|
828
|
+
requirement: !ruby/object:Gem::Requirement
|
829
|
+
requirements:
|
830
|
+
- - ">="
|
831
|
+
- !ruby/object:Gem::Version
|
832
|
+
version: '0'
|
833
|
+
type: :runtime
|
834
|
+
prerelease: false
|
835
|
+
version_requirements: !ruby/object:Gem::Requirement
|
836
|
+
requirements:
|
837
|
+
- - ">="
|
838
|
+
- !ruby/object:Gem::Version
|
839
|
+
version: '0'
|
840
|
+
- !ruby/object:Gem::Dependency
|
841
|
+
name: yard-activerecord
|
842
|
+
requirement: !ruby/object:Gem::Requirement
|
843
|
+
requirements:
|
844
|
+
- - ">="
|
845
|
+
- !ruby/object:Gem::Version
|
846
|
+
version: '0'
|
847
|
+
type: :runtime
|
848
|
+
prerelease: false
|
849
|
+
version_requirements: !ruby/object:Gem::Requirement
|
850
|
+
requirements:
|
851
|
+
- - ">="
|
852
|
+
- !ruby/object:Gem::Version
|
853
|
+
version: '0'
|
854
|
+
description: Shared development tools, configurations, and utilities for Panda CMS
|
855
|
+
and its related projects
|
856
|
+
email:
|
857
|
+
- bamboo@pandacms.io
|
858
|
+
executables: []
|
859
|
+
extensions: []
|
860
|
+
extra_rdoc_files: []
|
861
|
+
files:
|
862
|
+
- LICENSE
|
863
|
+
- README.md
|
864
|
+
- Rakefile
|
865
|
+
- lib/generators/panda/core/install/install_generator.rb
|
866
|
+
- lib/generators/panda/core/install/templates/initializer.rb
|
867
|
+
- lib/generators/panda/core/templates_generator.rb
|
868
|
+
- lib/panda/core.rb
|
869
|
+
- lib/panda/core/media.rb
|
870
|
+
- lib/panda/core/railtie.rb
|
871
|
+
- lib/panda/core/seo.rb
|
872
|
+
- lib/panda/core/services/base_service.rb
|
873
|
+
- lib/panda/core/sluggable.rb
|
874
|
+
- lib/panda/core/version.rb
|
875
|
+
homepage: https://github.com/tastybamboo/panda-core
|
876
|
+
licenses:
|
877
|
+
- BSD-3-Clause
|
878
|
+
metadata:
|
879
|
+
homepage_uri: https://github.com/tastybamboo/panda-core
|
880
|
+
source_code_uri: https://github.com/tastybamboo/panda-core
|
881
|
+
changelog_uri: https://github.com/tastybamboo/panda-core/blob/main/CHANGELOG.md
|
882
|
+
post_install_message:
|
883
|
+
rdoc_options: []
|
884
|
+
require_paths:
|
885
|
+
- lib
|
886
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
887
|
+
requirements:
|
888
|
+
- - ">="
|
889
|
+
- !ruby/object:Gem::Version
|
890
|
+
version: 3.0.0
|
891
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
892
|
+
requirements:
|
893
|
+
- - ">="
|
894
|
+
- !ruby/object:Gem::Version
|
895
|
+
version: '0'
|
896
|
+
requirements: []
|
897
|
+
rubygems_version: 3.5.18
|
898
|
+
signing_key:
|
899
|
+
specification_version: 4
|
900
|
+
summary: Core libraries and development tools for Panda Software projects
|
901
|
+
test_files: []
|