pco-url 2.0.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.circleci/config.yml +31 -56
- data/.github/pull_request_template.md +15 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +1 -1
- data/.ruby-version +1 -1
- data/Appraisals +17 -0
- data/CHANGELOG.md +30 -0
- data/Guardfile +16 -0
- data/README.md +2 -0
- data/Rakefile +8 -1
- data/gemfiles/rails_5.2.gemfile +7 -0
- data/gemfiles/rails_6.0.gemfile +7 -0
- data/gemfiles/rails_6.1.gemfile +7 -0
- data/gemfiles/rails_edge.gemfile +7 -0
- data/lib/pco/url.rb +13 -1
- data/lib/pco/url/encryption.rb +6 -1
- data/lib/pco/url/engine.rb +19 -0
- data/lib/pco/url/engine/domain_middleware.rb +21 -0
- data/lib/pco/url/version.rb +1 -1
- data/pco-url.gemspec +12 -8
- data/spec/dummy/config/application.rb +38 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/pco/url/encryption_spec.rb +10 -0
- data/spec/requests/domain_middleware_spec.rb +62 -0
- data/spec/spec_helper.rb +4 -6
- metadata +74 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: '0687cb14bb063264a30307b10d9b6efcb49d8f4cbf77b711b15192fe35217048'
|
4
|
+
data.tar.gz: ece4ec24c39990c45bf02e44a564a6f9bc460af66348bdd5e97166319252612f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55eaac7abd9b009155137ee6cbfa8a339296bab1fbeb409dca080921591c6e623921f3d3accb6981e3552f1029a7d1ee4b4ec1984944112e5a4d74e198aa856b
|
7
|
+
data.tar.gz: acb674cba783b53cfe924ac820b8b5a67af7db82c0d5f399aeb81c8faabe9a3eac6a39e03322fb1fb40ef090ee8f943db784098c7572dc191a0eadbd61f92d1c
|
data/.circleci/config.yml
CHANGED
@@ -1,70 +1,45 @@
|
|
1
|
-
version: 2
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
version: 2
|
2
|
+
workflows:
|
3
|
+
version: 2
|
4
|
+
commit:
|
5
|
+
jobs:
|
6
|
+
- build
|
7
|
+
nightly:
|
8
|
+
triggers:
|
9
|
+
- schedule:
|
10
|
+
cron: "0 0 * * *"
|
11
|
+
filters:
|
12
|
+
branches:
|
13
|
+
only:
|
14
|
+
- master
|
15
|
+
jobs:
|
16
|
+
- build
|
17
|
+
jobs:
|
18
|
+
build:
|
19
|
+
docker:
|
20
|
+
- image: circleci/ruby:2.7
|
21
|
+
environment:
|
7
22
|
BUNDLE_JOBS: 3
|
8
23
|
BUNDLE_RETRY: 3
|
9
24
|
BUNDLE_PATH: vendor/bundle
|
10
|
-
steps:
|
11
|
-
- checkout
|
12
|
-
|
13
|
-
# Restore bundle cache
|
25
|
+
steps:
|
26
|
+
- checkout
|
14
27
|
- restore_cache:
|
15
28
|
keys:
|
16
|
-
- pco-url-bundle-v2-
|
17
|
-
- pco-url-bundle-v2-
|
18
|
-
|
29
|
+
- pco-url-bundle-v2-{{ checksum ".ruby-version" }}-{{ checksum "pco-url.gemspec" }}-{{ checksum "Appraisals" }}
|
30
|
+
- pco-url-bundle-v2-{{ checksum ".ruby-version" }}-{{ checksum "pco-url.gemspec" }}
|
31
|
+
- pco-url-bundle-v2-{{ checksum ".ruby-version" }}-
|
32
|
+
- pco-url-bundle-v2-
|
19
33
|
- run:
|
20
34
|
name: Bundle Install
|
21
35
|
command: bundle check || bundle install
|
22
|
-
|
23
|
-
# Store bundle cache
|
24
|
-
- save_cache:
|
25
|
-
key: pco-url-bundle-v2-ruby23-{{ checksum "pco-url.gemspec" }}
|
26
|
-
paths:
|
27
|
-
- vendor/bundle
|
28
|
-
|
29
36
|
- run:
|
30
|
-
name:
|
31
|
-
command:
|
32
|
-
bundle exec rspec --format progress
|
33
|
-
|
34
|
-
"ruby-2.4": # runs not using Workflows must have a `build` job as entry point
|
35
|
-
docker: # run the steps with Docker
|
36
|
-
- image: circleci/ruby:2.4
|
37
|
-
environment: # environment variables for primary container
|
38
|
-
BUNDLE_JOBS: 3
|
39
|
-
BUNDLE_RETRY: 3
|
40
|
-
BUNDLE_PATH: vendor/bundle
|
41
|
-
steps: # a collection of executable commands
|
42
|
-
- checkout # special step to check out source code to working directory
|
43
|
-
|
44
|
-
# Restore bundle cache
|
45
|
-
- restore_cache:
|
46
|
-
keys:
|
47
|
-
- pco-url-bundle-v2-ruby24-{{ checksum "pco-url.gemspec" }}
|
48
|
-
- pco-url-bundle-v2-ruby24-
|
49
|
-
|
50
|
-
- run:
|
51
|
-
name: Bundle Install
|
52
|
-
command: bundle check || bundle install
|
53
|
-
|
54
|
-
# Store bundle cache
|
37
|
+
name: Install appraisal dependencies
|
38
|
+
command: bundle exec appraisal bundle check || bundle exec appraisal bundle install
|
55
39
|
- save_cache:
|
56
|
-
key: pco-url-bundle-v2-
|
40
|
+
key: pco-url-bundle-v2-{{ checksum ".ruby-version" }}-{{ checksum "pco-url.gemspec" }}-{{ checksum "Appraisals" }}
|
57
41
|
paths:
|
58
42
|
- vendor/bundle
|
59
|
-
|
60
43
|
- run:
|
61
44
|
name: Run rspec
|
62
|
-
command:
|
63
|
-
bundle exec rspec --format progress
|
64
|
-
|
65
|
-
workflows:
|
66
|
-
version: 2
|
67
|
-
build:
|
68
|
-
jobs:
|
69
|
-
- "ruby-2.3"
|
70
|
-
- "ruby-2.4"
|
45
|
+
command: bundle exec appraisal rspec --format progress
|
@@ -0,0 +1,15 @@
|
|
1
|
+
### Summary
|
2
|
+
|
3
|
+
<!-- Provide a general description of the changes in your pull request -->
|
4
|
+
|
5
|
+
### Other Information
|
6
|
+
|
7
|
+
<!-- If there's anything else that's important and relevant to your pull
|
8
|
+
request, mention that information here. This could include
|
9
|
+
benchmarks, or other information. -->
|
10
|
+
|
11
|
+
<!-- Make sure you're familiar with the contributing guidelines: https://github.com/ministrycentered/knowledge-base/tree/master/gems#contributing
|
12
|
+
|
13
|
+
Before merging please have a +1 from a #platform team member, and another from a developer who's __not__ on your team. This will ensure that the changes are looked at by people who aren't directly working on the same application as you and can approach the changes with a fresh set of eyes.
|
14
|
+
|
15
|
+
When you're ready to merge, please follow the release process outlined here: https://github.com/ministrycentered/knowledge-base/tree/master/gems#release-process -->
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7
|
data/Appraisals
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
appraise "rails-5.2" do
|
4
|
+
gem "rails", "~> 5.2.0"
|
5
|
+
end
|
6
|
+
|
7
|
+
appraise "rails-6.0" do
|
8
|
+
gem "rails", "~> 6.0.0"
|
9
|
+
end
|
10
|
+
|
11
|
+
appraise "rails-6.1" do
|
12
|
+
gem "rails", "~> 6.1.0"
|
13
|
+
end
|
14
|
+
|
15
|
+
appraise "rails-edge" do
|
16
|
+
gem "rails", git: "https://github.com/rails/rails.git", branch: "main"
|
17
|
+
end
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,33 @@
|
|
1
|
+
# v3.0.0 (2021-02-25)
|
2
|
+
|
3
|
+
* Feature: add middleware in production/staging to maintain second-level domain, e.g. planningcenter.com when generating URLs
|
4
|
+
* Chore: test on more modern versions of Ruby and Rails
|
5
|
+
|
6
|
+
# v2.1.3 (2020-01-14)
|
7
|
+
|
8
|
+
* Chore: no code changes; just bumping the version and rebuilding the gem file with proper file permissions [Tim Morgan]
|
9
|
+
|
10
|
+
# v2.1.2 (2020-01-13)
|
11
|
+
|
12
|
+
* Fix: Always use pco.test in test environment [Tim Morgan]
|
13
|
+
|
14
|
+
# v2.1.1 (2019-12-10)
|
15
|
+
|
16
|
+
* Chore: A bunch of maintenance [Shane Bonham]
|
17
|
+
* Fix: `NameError` raised by `aci_delete_org` [Shane Bonham]
|
18
|
+
|
19
|
+
# v2.1.0 (2019-11-05)
|
20
|
+
|
21
|
+
* Feature: Add support in dev for any TLD [Tim Morgan]
|
22
|
+
|
23
|
+
# v2.0.2 (2019-01-21)
|
24
|
+
|
25
|
+
* Fix: Repair downcased encrypted params even better
|
26
|
+
|
27
|
+
# v2.0.1 (2013-01-21)
|
28
|
+
|
29
|
+
* Fix: Repair downcased encrypted params
|
30
|
+
|
1
31
|
# v2.0.0 (2018-09-21)
|
2
32
|
|
3
33
|
* Chore: inline URLcrypt for threadsafety
|
data/Guardfile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
guard :rspec, cmd: "bundle exec rspec" do
|
4
|
+
require "guard/rspec/dsl"
|
5
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
6
|
+
|
7
|
+
# RSpec files
|
8
|
+
rspec = dsl.rspec
|
9
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
10
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
11
|
+
watch(rspec.spec_files)
|
12
|
+
|
13
|
+
# Ruby files
|
14
|
+
ruby = dsl.ruby
|
15
|
+
dsl.watch_spec_files_for(ruby.lib_files)
|
16
|
+
end
|
data/README.md
CHANGED
data/Rakefile
CHANGED
data/lib/pco/url.rb
CHANGED
@@ -2,10 +2,18 @@ require_relative "url/version"
|
|
2
2
|
require_relative "url/church_center"
|
3
3
|
require_relative "url/get"
|
4
4
|
require_relative "url/encryption"
|
5
|
+
require_relative "url/engine"
|
5
6
|
require "uri"
|
6
7
|
|
7
8
|
module PCO
|
8
9
|
class URL
|
10
|
+
DOMAINS = {
|
11
|
+
'development' => %w[pco.test pco.codes],
|
12
|
+
'test' => %w[pco.test pco.codes],
|
13
|
+
'staging' => %w[planningcenteronline.com planningcenter.com],
|
14
|
+
'production' => %w[planningcenteronline.com planningcenter.com],
|
15
|
+
}.freeze
|
16
|
+
|
9
17
|
class << self
|
10
18
|
def decrypt_query_params(string)
|
11
19
|
Encryption.decrypt(string)
|
@@ -81,10 +89,14 @@ module PCO
|
|
81
89
|
def domain
|
82
90
|
return @domain if @domain
|
83
91
|
|
92
|
+
return PCO::URL::Engine.domain if PCO::URL::Engine.domain
|
93
|
+
|
84
94
|
case env
|
85
95
|
when "production", "staging"
|
86
96
|
"planningcenteronline.com"
|
87
|
-
when "
|
97
|
+
when "test"
|
98
|
+
"pco.test"
|
99
|
+
when "development"
|
88
100
|
"pco.test"
|
89
101
|
end
|
90
102
|
end
|
data/lib/pco/url/encryption.rb
CHANGED
@@ -75,7 +75,7 @@ module PCO
|
|
75
75
|
|
76
76
|
def decrypt(data, key: @default_key)
|
77
77
|
raise MissingKeyError, "default key or key: argument must be set" if key.nil?
|
78
|
-
iv, encrypted = data.split("Z").map { |part| decode(part) }
|
78
|
+
iv, encrypted = case_corrected(data).split("Z").map { |part| decode(part) }
|
79
79
|
raise DecryptError, "not a valid string to decrypt" unless iv && encrypted
|
80
80
|
decrypter = cipher(:decrypt, key: key)
|
81
81
|
decrypter.iv = iv
|
@@ -91,6 +91,11 @@ module PCO
|
|
91
91
|
|
92
92
|
private
|
93
93
|
|
94
|
+
def case_corrected(data)
|
95
|
+
return data unless data[26] == "z"
|
96
|
+
data.tr("a", "A").sub(/\A([#{TABLE}]{26})z/, '\1Z')
|
97
|
+
end
|
98
|
+
|
94
99
|
def chunks(str, size)
|
95
100
|
result = []
|
96
101
|
bytes = str.bytes
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require_relative "./engine/domain_middleware"
|
2
|
+
|
3
|
+
module PCO
|
4
|
+
class URL
|
5
|
+
class Engine < Rails::Engine
|
6
|
+
def self.domain
|
7
|
+
Thread.current[:pco_url_domain]
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.domain=(d)
|
11
|
+
Thread.current[:pco_url_domain] = d
|
12
|
+
end
|
13
|
+
|
14
|
+
initializer "pco_url.add_middleware" do |app|
|
15
|
+
app.middleware.use PCO::URL::Engine::DomainMiddleware
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/engine"
|
4
|
+
|
5
|
+
module PCO
|
6
|
+
class URL
|
7
|
+
class Engine < Rails::Engine
|
8
|
+
class DomainMiddleware
|
9
|
+
def initialize(app)
|
10
|
+
@app = app
|
11
|
+
end
|
12
|
+
|
13
|
+
def call(env)
|
14
|
+
domain = env["SERVER_NAME"].downcase.match(/[a-z0-9-]+\.[a-z]+$/).to_s
|
15
|
+
PCO::URL::Engine.domain = PCO::URL::DOMAINS[Rails.env].include?(domain) ? domain : nil
|
16
|
+
@app.call(env)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/pco/url/version.rb
CHANGED
data/pco-url.gemspec
CHANGED
@@ -1,14 +1,15 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
5
|
+
require "pco/url/version"
|
5
6
|
|
6
7
|
Gem::Specification.new do |spec|
|
7
8
|
spec.name = "pco-url"
|
8
9
|
spec.version = PCO::URL::VERSION
|
9
10
|
spec.authors = ["James Miller"]
|
10
11
|
spec.email = ["bensie@gmail.com"]
|
11
|
-
spec.summary =
|
12
|
+
spec.summary = "Generate URLs for PCO apps in all environments"
|
12
13
|
spec.homepage = "https://github.com/ministrycentered/pco-url"
|
13
14
|
spec.license = "MIT"
|
14
15
|
|
@@ -17,8 +18,11 @@ Gem::Specification.new do |spec|
|
|
17
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
19
|
spec.require_paths = ["lib"]
|
19
20
|
|
20
|
-
spec.add_development_dependency "
|
21
|
-
spec.add_development_dependency "
|
22
|
-
spec.add_development_dependency "
|
23
|
-
spec.add_development_dependency "
|
21
|
+
spec.add_development_dependency "appraisal"
|
22
|
+
spec.add_development_dependency "guard-rspec"
|
23
|
+
spec.add_development_dependency "rails"
|
24
|
+
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "rspec"
|
26
|
+
spec.add_development_dependency "rspec-rails"
|
27
|
+
spec.add_development_dependency "rubocop"
|
24
28
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "./boot"
|
4
|
+
require "action_controller/railtie"
|
5
|
+
|
6
|
+
require "pco/url"
|
7
|
+
|
8
|
+
module Dummy
|
9
|
+
class Application < Rails::Application
|
10
|
+
config.eager_load = false
|
11
|
+
if Rails::VERSION::MAJOR >= 6
|
12
|
+
config.hosts << "accounts.pco.test"
|
13
|
+
config.hosts << "accounts.pco.codes"
|
14
|
+
config.hosts << "accounts.planningcenteronline.com"
|
15
|
+
config.hosts << "accounts.planningcenter.com"
|
16
|
+
config.hosts << "accounts-staging.planningcenteronline.com"
|
17
|
+
config.hosts << "accounts-staging.planningcenter.com"
|
18
|
+
|
19
|
+
# We would obviously never have this in a real Rails app, but we need it here
|
20
|
+
# to test that PCO::URL cannot get tricked by a bad host, should an attacker
|
21
|
+
# somehow sneak one through by some other means.
|
22
|
+
config.hosts << "accounts.evilplanningcenter.com"
|
23
|
+
end
|
24
|
+
config.secret_key_base = "123abc"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
Dummy::Application.initialize!
|
29
|
+
|
30
|
+
class TestsController < ActionController::Base
|
31
|
+
def show
|
32
|
+
render plain: PCO::URL.people
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
Rails.application.routes.draw do
|
37
|
+
resource :test
|
38
|
+
end
|
@@ -30,6 +30,16 @@ describe PCO::URL::Encryption do
|
|
30
30
|
|
31
31
|
expect(described_class.decrypt(encrypted)).to eq("Horseman")
|
32
32
|
end
|
33
|
+
|
34
|
+
context "when the encrypted string gets downcased for some dumb reason" do
|
35
|
+
it "decrypts correctly" do
|
36
|
+
described_class.default_key = TEST_DEFAULT_KEY
|
37
|
+
encrypted = described_class.encrypt("Butterscotch").downcase
|
38
|
+
decrypted = described_class.decrypt(encrypted)
|
39
|
+
|
40
|
+
expect(decrypted).to eq("Butterscotch")
|
41
|
+
end
|
42
|
+
end
|
33
43
|
end
|
34
44
|
|
35
45
|
context "when no default key is set" do
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
describe PCO::URL::Engine::DomainMiddleware, type: :request do
|
6
|
+
context "in development" do
|
7
|
+
before do
|
8
|
+
ENV["DEPLOY_ENV"] = Rails.env = "development"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "sets the generated URL domain to be the same as the host" do
|
12
|
+
host! "accounts.pco.test"
|
13
|
+
get "/test"
|
14
|
+
expect(response.body).to eq("http://people.pco.test")
|
15
|
+
|
16
|
+
host! "accounts.pco.codes"
|
17
|
+
get "/test"
|
18
|
+
expect(response.body).to eq("http://people.pco.codes")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context "in staging" do
|
23
|
+
before do
|
24
|
+
ENV["DEPLOY_ENV"] = Rails.env = "staging"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "sets the generated URL domain to be the same as the host" do
|
28
|
+
host! "accounts-staging.planningcenteronline.com"
|
29
|
+
get "/test"
|
30
|
+
expect(response.body).to eq("https://people-staging.planningcenteronline.com")
|
31
|
+
|
32
|
+
host! "accounts-staging.planningcenter.com"
|
33
|
+
get "/test"
|
34
|
+
expect(response.body).to eq("https://people-staging.planningcenter.com")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context "in production" do
|
39
|
+
before do
|
40
|
+
ENV["DEPLOY_ENV"] = Rails.env = "production"
|
41
|
+
end
|
42
|
+
|
43
|
+
it "sets the generated URL domain to be the same as the host" do
|
44
|
+
host! "accounts.planningcenteronline.com"
|
45
|
+
get "/test"
|
46
|
+
expect(response.body).to eq("https://people.planningcenteronline.com")
|
47
|
+
|
48
|
+
host! "accounts.planningcenter.com"
|
49
|
+
get "/test"
|
50
|
+
expect(response.body).to eq("https://people.planningcenter.com")
|
51
|
+
end
|
52
|
+
|
53
|
+
context "when the host is something unrecognized" do
|
54
|
+
before { host! "accounts.evilplanningcenter.com" }
|
55
|
+
|
56
|
+
it "sets the generated URL domain to be .planningcenteronline.com" do
|
57
|
+
get "/test"
|
58
|
+
expect(response.body).to eq("https://people.planningcenteronline.com")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,8 @@
|
|
1
|
+
require "rails"
|
2
|
+
require File.expand_path("dummy/config/application", __dir__)
|
3
|
+
|
1
4
|
require "rspec"
|
5
|
+
require "rspec/rails"
|
2
6
|
require "pco/url"
|
3
7
|
|
4
8
|
RSpec.configure do |config|
|
@@ -11,9 +15,3 @@ RSpec.configure do |config|
|
|
11
15
|
PCO::URL::Encryption.remove_instance_variable(:@default_key)
|
12
16
|
end
|
13
17
|
end
|
14
|
-
|
15
|
-
class Rails
|
16
|
-
class << self
|
17
|
-
attr_accessor :env
|
18
|
-
end
|
19
|
-
end
|
metadata
CHANGED
@@ -1,77 +1,113 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pco-url
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Miller
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: appraisal
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: guard-rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
18
32
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
33
|
+
version: '0'
|
20
34
|
type: :development
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
|
-
- - "
|
38
|
+
- - ">="
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rails
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: rake
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|
30
58
|
requirements:
|
31
|
-
- - "
|
59
|
+
- - ">="
|
32
60
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
61
|
+
version: '0'
|
34
62
|
type: :development
|
35
63
|
prerelease: false
|
36
64
|
version_requirements: !ruby/object:Gem::Requirement
|
37
65
|
requirements:
|
38
|
-
- - "
|
66
|
+
- - ">="
|
39
67
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
68
|
+
version: '0'
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: rspec
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
44
72
|
requirements:
|
45
73
|
- - ">="
|
46
74
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
-
- - "<"
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: '4'
|
75
|
+
version: '0'
|
51
76
|
type: :development
|
52
77
|
prerelease: false
|
53
78
|
version_requirements: !ruby/object:Gem::Requirement
|
54
79
|
requirements:
|
55
80
|
- - ">="
|
56
81
|
- !ruby/object:Gem::Version
|
57
|
-
version:
|
58
|
-
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec-rails
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
59
88
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
61
97
|
- !ruby/object:Gem::Dependency
|
62
98
|
name: rubocop
|
63
99
|
requirement: !ruby/object:Gem::Requirement
|
64
100
|
requirements:
|
65
|
-
- -
|
101
|
+
- - ">="
|
66
102
|
- !ruby/object:Gem::Version
|
67
|
-
version: 0
|
103
|
+
version: '0'
|
68
104
|
type: :development
|
69
105
|
prerelease: false
|
70
106
|
version_requirements: !ruby/object:Gem::Requirement
|
71
107
|
requirements:
|
72
|
-
- -
|
108
|
+
- - ">="
|
73
109
|
- !ruby/object:Gem::Version
|
74
|
-
version: 0
|
110
|
+
version: '0'
|
75
111
|
description:
|
76
112
|
email:
|
77
113
|
- bensie@gmail.com
|
@@ -81,24 +117,36 @@ extra_rdoc_files: []
|
|
81
117
|
files:
|
82
118
|
- ".circleci/config.yml"
|
83
119
|
- ".editorconfig"
|
120
|
+
- ".github/pull_request_template.md"
|
84
121
|
- ".gitignore"
|
85
122
|
- ".rubocop.yml"
|
86
123
|
- ".ruby-version"
|
124
|
+
- Appraisals
|
87
125
|
- CHANGELOG.md
|
88
126
|
- Gemfile
|
127
|
+
- Guardfile
|
89
128
|
- LICENSE.txt
|
90
129
|
- README.md
|
91
130
|
- Rakefile
|
131
|
+
- gemfiles/rails_5.2.gemfile
|
132
|
+
- gemfiles/rails_6.0.gemfile
|
133
|
+
- gemfiles/rails_6.1.gemfile
|
134
|
+
- gemfiles/rails_edge.gemfile
|
92
135
|
- lib/pco/url.rb
|
93
136
|
- lib/pco/url/church_center.rb
|
94
137
|
- lib/pco/url/encryption.rb
|
138
|
+
- lib/pco/url/engine.rb
|
139
|
+
- lib/pco/url/engine/domain_middleware.rb
|
95
140
|
- lib/pco/url/get.rb
|
96
141
|
- lib/pco/url/version.rb
|
97
142
|
- pco-url.gemspec
|
98
143
|
- spec/.rubocop.yml
|
144
|
+
- spec/dummy/config/application.rb
|
145
|
+
- spec/dummy/config/boot.rb
|
99
146
|
- spec/pco/url/church_center_spec.rb
|
100
147
|
- spec/pco/url/encryption_spec.rb
|
101
148
|
- spec/pco_url_spec.rb
|
149
|
+
- spec/requests/domain_middleware_spec.rb
|
102
150
|
- spec/spec_helper.rb
|
103
151
|
homepage: https://github.com/ministrycentered/pco-url
|
104
152
|
licenses:
|
@@ -119,14 +167,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
167
|
- !ruby/object:Gem::Version
|
120
168
|
version: '0'
|
121
169
|
requirements: []
|
122
|
-
|
123
|
-
rubygems_version: 2.5.2.3
|
170
|
+
rubygems_version: 3.2.6
|
124
171
|
signing_key:
|
125
172
|
specification_version: 4
|
126
173
|
summary: Generate URLs for PCO apps in all environments
|
127
174
|
test_files:
|
128
175
|
- spec/.rubocop.yml
|
176
|
+
- spec/dummy/config/application.rb
|
177
|
+
- spec/dummy/config/boot.rb
|
129
178
|
- spec/pco/url/church_center_spec.rb
|
130
179
|
- spec/pco/url/encryption_spec.rb
|
131
180
|
- spec/pco_url_spec.rb
|
181
|
+
- spec/requests/domain_middleware_spec.rb
|
132
182
|
- spec/spec_helper.rb
|