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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5ad5229c15a12077f471c25fca3288c285b2c687
4
- data.tar.gz: aadeaab05a5ea105f5ad32d30fabbfd32c00cb6c
2
+ SHA256:
3
+ metadata.gz: '0687cb14bb063264a30307b10d9b6efcb49d8f4cbf77b711b15192fe35217048'
4
+ data.tar.gz: ece4ec24c39990c45bf02e44a564a6f9bc460af66348bdd5e97166319252612f
5
5
  SHA512:
6
- metadata.gz: 27e08f5cdc63de25d4cfcedfde96a4c8b06612adee3553c5d7ed43b5b37734ec70c609b9aaf1a3578f5b5d13769aa282460d4d8cb02af5ca49d16cf6c8b03053
7
- data.tar.gz: 6a055c9dbb973275dceb0e909e3abea22dc7513b8d633e8f97b1ee2cd3bc485040d973e64525f9d4e1f76087ffdaac372c2e40d219152cdda8c75ad51719aa28
6
+ metadata.gz: 55eaac7abd9b009155137ee6cbfa8a339296bab1fbeb409dca080921591c6e623921f3d3accb6981e3552f1029a7d1ee4b4ec1984944112e5a4d74e198aa856b
7
+ data.tar.gz: acb674cba783b53cfe924ac820b8b5a67af7db82c0d5f399aeb81c8faabe9a3eac6a39e03322fb1fb40ef090ee8f943db784098c7572dc191a0eadbd61f92d1c
data/.circleci/config.yml CHANGED
@@ -1,70 +1,45 @@
1
- version: 2 # use CircleCI 2.0
2
- jobs: # a collection of steps
3
- "ruby-2.3": # runs not using Workflows must have a `build` job as entry point
4
- docker: # run the steps with Docker
5
- - image: circleci/ruby:2.3
6
- environment: # environment variables for primary container
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: # a collection of executable commands
11
- - checkout # special step to check out source code to working directory
12
-
13
- # Restore bundle cache
25
+ steps:
26
+ - checkout
14
27
  - restore_cache:
15
28
  keys:
16
- - pco-url-bundle-v2-ruby23-{{ checksum "pco-url.gemspec" }}
17
- - pco-url-bundle-v2-ruby23-
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: Run rspec
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-ruby24-{{ checksum "pco-url.gemspec" }}
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
@@ -12,3 +12,5 @@
12
12
  *.o
13
13
  *.a
14
14
  mkmf.log
15
+ log
16
+ gemfiles/*.gemfile.lock
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.3
2
+ TargetRubyVersion: 2.5
3
3
 
4
4
  Style/StringLiterals:
5
5
  Enabled: true
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.7
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
@@ -1,5 +1,7 @@
1
1
  # PCO::URL
2
2
 
3
+ [![CircleCI](https://circleci.com/gh/ministrycentered/pco-url.svg?style=svg)](https://circleci.com/gh/ministrycentered/pco-url)
4
+
3
5
  Fetch the base URL for the current and other applications based on the current application environment.
4
6
 
5
7
  ## Usage
data/Rakefile CHANGED
@@ -1,2 +1,9 @@
1
- require "bundler/gem_tasks"
1
+ # frozen_string_literal: true
2
2
 
3
+ require "rspec/core"
4
+ require "rspec/core/rake_task"
5
+
6
+ desc "Run all specs in spec directory (excluding plugin specs)"
7
+ RSpec::Core::RakeTask.new(:spec)
8
+ task default: :spec
9
+ task test: :spec
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 5.2.0"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 6.0.0"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 6.1.0"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", git: "https://github.com/rails/rails.git", branch: "main"
6
+
7
+ gemspec path: "../"
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 "development", "test"
97
+ when "test"
98
+ "pco.test"
99
+ when "development"
88
100
  "pco.test"
89
101
  end
90
102
  end
@@ -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
@@ -1,5 +1,5 @@
1
1
  module PCO
2
2
  class URL
3
- VERSION = "2.0.0".freeze
3
+ VERSION = "3.0.0".freeze
4
4
  end
5
5
  end
data/pco-url.gemspec CHANGED
@@ -1,14 +1,15 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
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 'pco/url/version'
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 = %q{Generate URLs for PCO apps in all environments}
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 "bundler", "~> 1.7"
21
- spec.add_development_dependency "rake", "~> 10.0"
22
- spec.add_development_dependency "rspec", ">= 3.0.0", "< 4"
23
- spec.add_development_dependency "rubocop", "0.54.0"
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
@@ -0,0 +1,5 @@
1
+ gemfile = File.expand_path('../../../../Gemfile', __FILE__)
2
+ ENV['BUNDLE_GEMFILE'] = gemfile
3
+ require 'bundler'
4
+ Bundler.setup
5
+ $LOAD_PATH.unshift(File.expand_path('../../../../lib', __FILE__))
@@ -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: 2.0.0
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: 2018-09-24 00:00:00.000000000 Z
11
+ date: 2021-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
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: '1.7'
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: '1.7'
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: '10.0'
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: '10.0'
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: 3.0.0
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: 3.0.0
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: '4'
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.54.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.54.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
- rubyforge_project:
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